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が提供されていることに注意してください.ただ、ドキュメントには と書かれていません. Golang: brew intall go
インストールの確認:
Curlバイナリファイルインストールcurl:macOSはすでにcurlをインストールして、brewをインストールするのはcurl を利用することを覚えています開発ディレクトリ の作成実行コマンドダウンロード
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
ちょっと待って、国内のネットなどはまだ長いですが、私が降りたときは途中で何度も中断しました.インストール後のチェックでは、次の7つのイメージが表示されます.
スクリプトの使用
スクリプトを使用するのはとても便利で、公式の文章の中で多くのステップは実はスクリプトの中で一歩一歩手動で実行します;ここで順番を変えました.開始
ていし
再起動
後で手動で実行しますが、実はスクリプトの解釈です.
cryptogenツールの使用
configtxgenツールの使用
configtxgenツールを使用してorderer創世ブロックとチャネル構成を生成します.ツールドキュメント
orderer創世ブロックの生成
orderer.blockの生成
チャンネル構成の生成
ここではチャンネル名をtestingに設定します
ネットワークの起動(No TLS)
docker-compose-no-tls.yamlファイルのcli構成のcommandコメントを自動的に起動させない
./scripts/script.shはcliがネットワークを起動するステップであるため、コメントを削除します.
ネットワークに必要なシステム変数の設定
channleの作成と追加
cli dockerミラーの起動
cliミラーコマンドプロンプトラインに正常にアクセスできるようになりました.
channleの作成
次の環境変数を設定します.
channleを作成する構文は次のとおりです.
したがって、完全なコマンド操作は次のとおりです.
このコマンドは、channelの使用に参加するために創世ブロック
かんきょうへんすう
次のcliのPEER 0に対するコマンドを有効にするには、次の4つの環境変数を設定する必要があります.
各ノードの環境変数はdocker-composeファイルに構成されており、詳細はこちら
channleに参加する
構文は次のとおりです.
4つのグローバル環境変数を入力する必要があるため、完全なコマンドは次のとおりです.
chaincodeのインストール
chaincodeソースコードをpeerのファイルシステムにインストールします.構文は次のとおりです.
完全なコマンドは次のとおりです.
インスタンスinstantiate
次にchaincodeコンテナを起動し、key-valueペアを初期化します.構文は次のとおりです.
注意パラメータ
完全なコマンド:
検索query
次の値を取得します:
完全なコマンド:
Invoke
私たちは10をaからbに移動し、この取引は新しいブロックを作成し、ステータスデータベースを変更します.構文は次のとおりです.
完全なコマンド:
Queryの検証
検証の結果:
公式文書の下にはCouchDB、トラブルシューティングを使った内容もありますが、興味のある方はご自身でご覧ください.
古い文書:
半日経ってやっと発見して、上のはすべて古いバージョンです:現在最新の1.0 alphaは以下の通りで、しかも更新が速くて、以下は基本的に翻訳で、macOSの上の配置の過程にすぎません.
準備とインストール
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
インストールの確認:
docker version
docker-compose version
go version
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、トラブルシューティングを使った内容もありますが、興味のある方はご自身でご覧ください.