Hyperledger Fabric v 1.0 alpha macOS導入開発者環境

11411 ワード

リファレンス
古い文書:
  • Hyperledger Fabric V 1.0–開発者クイックエントリー
  • fabric setup

  • 半日経ってやっと発見して、上のはすべて古いバージョンです:現在最新の1.0 alphaは以下の通りで、しかも更新が速くて、以下は基本的に翻訳で、macOSの上の配置の過程にすぎません.
  • getting_started

  • 準備とインストール
  • Docker私がインストールした公式GUIバージョンdocker-ce-desktop-macドキュメントは、公式にもzsh completionが提供されていることに注意してください.ただ、ドキュメントには
  • と書かれていません.
    ln -s /Applications/Docker.app/Contents/Resources/etc/docker.zsh-completion /usr/local/share/zsh-completions/_docker
    ln -s /Applications/Docker.app/Contents/Resources/etc/docker-machine.zsh-completion /usr/local/share/zsh-completions/_docker-machine
    ln -s /Applications/Docker.app/Contents/Resources/etc/docker-compose.zsh-completion /usr/local/share/zsh-completions/_docker-compose
    
  • Golang: brew intall go

  • インストールの確認:
    docker version
    docker-compose version
    go version
    

    Curlバイナリファイル
  • インストールcurl:macOSはすでにcurlをインストールして、brewをインストールするのはcurl
  • を利用することを覚えています
  • 開発ディレクトリ
  • の作成
    mkdir fabric-sample
    cd fabric-sample
    
  • 実行コマンドダウンロード
  • curl -L https://logs.hyperledger.org/sandbox/vex-yul-hyp-jenkins-2/fabric-binaries/release.tar.gz -o release.tar.gz 2> /dev/null;  tar -xvf release.tar.gz 
    

    dockerミラーのインストール
    dockerミラーをインストールします.この文書を書くときはalpha:hyperledger/fabric-peer:x 86_64-1.0.0-alpha
    注意:darwin-amd 64はmacです.他のシステムの場合は、対応するディレクトリの下に移動してください.公式ドキュメントは次のセクションで説明します.ほとんどの経験のある開発者は、自分のシステムをもう一度調べる必要はありません.https://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html#using-the-cryptogen-tool
    cd release
    cd darwin-amd64/install
    ./get-docker-images.sh
    

    ちょっと待って、国内のネットなどはまだ長いですが、私が降りたときは途中で何度も中断しました.インストール後のチェックでは、次の7つのイメージが表示されます.
    ⇒  docker images
    REPOSITORY                     TAG                  IMAGE ID            CREATED             SIZE
    hyperledger/fabric-couchdb     x86_64-1.0.0-alpha   f3ce31e25872        7 weeks ago         1.51 GB
    hyperledger/fabric-kafka       x86_64-1.0.0-alpha   589dad0b93fc        7 weeks ago         1.3 GB
    hyperledger/fabric-zookeeper   x86_64-1.0.0-alpha   9a51f5be29c1        7 weeks ago         1.31 GB
    hyperledger/fabric-orderer     x86_64-1.0.0-alpha   5685fd77ab7c        7 weeks ago         182 MB
    hyperledger/fabric-peer        x86_64-1.0.0-alpha   784c5d41ac1d        7 weeks ago         184 MB
    hyperledger/fabric-javaenv     x86_64-1.0.0-alpha   a08f85d8f0a9        7 weeks ago         1.42 GB
    hyperledger/fabric-ccenv       x86_64-1.0.0-alpha   91792014b61f        7 weeks ago         1.29 GB
    

    スクリプトの使用release/samples/e2eディレクトリに切り替え、スクリプトはこのディレクトリの下にあります.
    スクリプトを使用するのはとても便利で、公式の文章の中で多くのステップは実はスクリプトの中で一歩一歩手動で実行します;ここで順番を変えました.開始
    ./network_setup.sh up 
    

    ていし
    ./network_setup.sh down
    

    再起動
    ./network_setup.sh restart
    

    後で手動で実行しますが、実はスクリプトの解釈です.
    cryptogenツールの使用release/samples/e2eディレクトリに切り替え、crypto-config.yamlファイルにはネットワークの定義と構造、証明書を生成するコンポーネントリスト実行コマンドが含まれています:../../darwin-amd64/bin/cryptogen generate --config=./crypto-config.yamlディレクトリの下にcrypto-configディレクトリが生成され、生成された証明書はこのディレクトリの下にあります.
    configtxgenツールの使用
    configtxgenツールを使用してorderer創世ブロックとチャネル構成を生成します.ツールドキュメント
    orderer創世ブロックの生成
    #       
    export FABRIC_CFG_PATH=$PWD
    ../../darwin-amd64/bin/configtxgen -profile TwoOrgs -outputBlock orderer.block
    

    orderer.blockの生成
    チャンネル構成の生成
    ここではチャンネル名をtestingに設定します
    ../../darwin-amd64/bin/configtxgen -profile TwoOrgs -outputCreateChannelTx channel.tx -channelID testing
    

    ネットワークの起動(No TLS)
    docker-compose-no-tls.yamlファイルのcli構成のcommandコメントを自動的に起動させない
    ./scripts/script.shはcliがネットワークを起動するステップであるため、コメントを削除します.
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    #command: /bin/bash -c './scripts/script.sh ${CHANNEL_NAME}; '
    volumes:
    

    ネットワークに必要なシステム変数の設定
    # this sets our OS;         ,     ;
    # export ARCH_TAG=$(uname -m)
    export ARCH_TAG=darwin-amd64
    # this starts the network in "detached" mode; enter the appropriate value for the CHANNEL_NAME parm; 
    #    -d          
    CHANNEL_NAME= docker-compose -f docker-compose-no-tls.yaml up -d
    

    channleの作成と追加
    cli dockerミラーの起動
    docker exec -it cli bash
    

    cliミラーコマンドプロンプトラインに正常にアクセスできるようになりました.
    root@bb5e894d9668:/opt/gopath/src/github.com/hyperledger/fabric/peer#
    

    channleの作成
    次の環境変数を設定します.
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com
    CORE_PEER_LOCALMSPID="OrdererMSP"
    CHANNEL_NAME=
    

    channleを作成する構文は次のとおりです.
    peer channel create -o :7050 -c  -f channel.tx
    

    したがって、完全なコマンド操作は次のとおりです.
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com CORE_PEER_LOCALMSPID="OrdererMSP" peer channel create -o orderer.example.com:7050 -c mychannel -f channel.tx
    

    このコマンドは、channelの使用に参加するために創世ブロックmychannle.blockに戻る.
    かんきょうへんすうscripts/script.shスクリプトには、すべてのコマンドの使用が表示されます.
    次のcliのPEER 0に対するコマンドを有効にするには、次の4つの環境変数を設定する必要があります.
    # Environment variables for PEER0
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com
    CORE_PEER_ADDRESS=peer0.org1.example.com:7051
    CORE_PEER_LOCALMSPID="Org0MSP"
    CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/cacerts/org1.example.com-cert.pem
    

    各ノードの環境変数はdocker-composeファイルに構成されており、詳細はこちら
    channleに参加する
    構文は次のとおりです.
    peer channel join -b .block
    

    4つのグローバル環境変数を入力する必要があるため、完全なコマンドは次のとおりです.
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com CORE_PEER_ADDRESS=peer0.org1.example.com:7051 CORE_PEER_LOCALMSPID="Org0MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/cacerts/org1.example.com-cert.pem peer channel join -b mychannel.block
    
    

    chaincodeのインストール
    chaincodeソースコードをpeerのファイルシステムにインストールします.構文は次のとおりです.
    peer chaincode install -n  -v  -p 
    

    完全なコマンドは次のとおりです.
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com CORE_PEER_ADDRESS=peer0.org1.example.com:7051 CORE_PEER_LOCALMSPID="Org0MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/cacerts/org1.example.com-cert.pem peer chaincode install -n mycc -v 1.0 -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 >&log.txt
    

    インスタンスinstantiate
    次にchaincodeコンテナを起動し、key-valueペアを初期化します.構文は次のとおりです.
    peer chaincode instantiate -o :7050 -C  -n  -v  -c '{"Args":["init","key","value"]}' -P "OR/AND (CHAINCODE_POLICY)"
    

    注意パラメータ-Pは、私たちの戦略には裏書きの組織が必要であることを示しています.-P "OR ('Org0MSP.member','Org1MSP.member')"は、Org 0 OR Org 1の裏書が必要であることを意味する.ANDに変更すると、両方が必要になることを示します.
    完全なコマンド:
    # we instantiate with the following key value pairs: "a","100","b","200"
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com CORE_PEER_ADDRESS=peer0.org1.example.com:7051 CORE_PEER_LOCALMSPID="Org0MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/cacerts/org1.example.com-cert.pem peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "OR ('Org0MSP.member','Org1MSP.member')"
    

    検索query
    次の値を取得します:"a"、chaincodeの初期化に成功したことを検証して、ステータスデータベースはすでに伝播しました.query構文は次のとおりです.
    peer chaincode query -C  -n  -c '{"Args":["query","key"]}'
    

    完全なコマンド:
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com CORE_PEER_ADDRESS=peer0.org1.example.com:7051 CORE_PEER_LOCALMSPID="Org0MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/cacerts/org1.example.com-cert.pem peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
    

    Invoke
    私たちは10をaからbに移動し、この取引は新しいブロックを作成し、ステータスデータベースを変更します.構文は次のとおりです.
    peer chaincode invoke -o :7050 -C  -n  -c '{"Args":["invoke","key","key","value"]}'
    

    完全なコマンド:
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com CORE_PEER_ADDRESS=peer0.org1.example.com:7051 CORE_PEER_LOCALMSPID="Org0MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/cacerts/org1.example.com-cert.pem peer chaincode invoke -o orderer.example.com:7050 -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}'
    

    Queryの検証
    検証の結果:
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com CORE_PEER_ADDRESS=peer0.org1.example.com:7051 CORE_PEER_LOCALMSPID="Org0MSP" CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/cacerts/org1.example.com-cert.pem peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'
    

    公式文書の下にはCouchDB、トラブルシューティングを使った内容もありますが、興味のある方はご自身でご覧ください.