Hyperledger Fabric v1.0で作業していて、 Getting Setup を複数のホストで機能させたい。現時点では、2が最適です。
これが私がやりたいことです:
3番目のステップに問題があります。チャネルの作成は機能すると思いますが、私のピアログでは3つのピアに同じ警告が表示されます。
Remote endpoint claims to be a different peer, expected [Host1 IP:8051] but got [172.17.0.4:7051]
Failed obtaining connection for 172.31.9.126:8051, PKIid:[49 55 50 ...] reason: Authentication failure
彼らは互いに通信できないようです。 問題がどこにあるか考えていますか?
私はまだステップ4を試しましたが、config.jsonからHost2:peer1を削除しない限り、ステップ4をデプロイできません。それでも、Host1:peer0ではなく、Host1:peer2からのみクエリを実行できます。
ネットワークのセットアップに使用するコマンドは次のとおりです。
Host1:Orderer
docker run --rm -it --name orderer -p 8050:7050
-e ORDERER_GENERAL_LEDGERTYPE=ram
-e ORDERER_GENERAL_BATCHTIMEOUT=10s
-e ORDERER_GENERAL_BATCHSIZE_MAXMESSAGECOUNT=10
-e ORDERER_GENERAL_MAXWINDOWSIZE=1000
-e ORDERER_GENERAL_ORDERERTYPE=solo
-e ORDERER_GENERAL_LOGLEVEL=debug
-e ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
-e ORDERER_GENERAL_LISTENPORT=7050
-e ORDERER_RAMLEDGER_HISTORY_SIZE=100
sfhackfest22017/fabric-orderer:x86_64-0.7.0-snapshot-c7b3fe0 orderer
Host1:Peer0
docker run --rm -it --name peer0 -p 8051:7051 -p 8053:7053
-v /var/run/:/Host/var/run/ -v $BASE_DIR/tmp/peer0:/etc/hyperledger/fabric/msp/sampleconfig
-e CORE_PEER_ADDRESSAUTODETECT=true
-e CORE_VM_ENDPOINT=unix:///Host/var/run/docker.sock
-e CORE_LOGGING_LEVEL=DEBUG
-e CORE_PEER_NETWORKID=peer0
-e CORE_NEXT=true
-e CORE_PEER_ENDORSER_ENABLED=true
-e CORE_PEER_ID=peer0
-e CORE_PEER_PROFILE_ENABLED=true
-e CORE_PEER_COMMITTER_LEDGER_ORDERER=$ORDERER_IP:7050
-e CORE_PEER_GOSSIP_ORGLEADER=true
-e CORE_PEER_GOSSIP_IGNORESECURITY=true
sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 peer node start --peer-defaultchain=false
Host1:Peer2
docker run --rm -it --name peer2 -p 8055:7051 -p 8057:7053
-v /var/run/:/Host/var/run/ -v $BASE_DIR/tmp/peer0:/etc/hyperledger/fabric/msp/sampleconfig
-e CORE_PEER_ID=peer2
[Other parameters are the same as Peer0]
sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 peer node start --peer-defaultchain=false
Host2:Peer1
docker run --rm -it --name peer1 -p 8051:7051
-v /var/run/:/Host/var/run/ -v $BASE_DIR/tmp/peer0:/etc/hyperledger/fabric/msp/sampleconfig
-e CORE_PEER_ID=peer1
[Other parameters are the same as Peer0]
sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 peer node start --peer-defaultchain=false
Host2:Cli
docker run --rm -it --name cli
-v /var/run/:/Host/var/run/ -v $BASE_DIR/tmp/peer3:/etc/hyperledger/fabric/msp/sampleconfig -v $BASE_DIR/src/github.com/example_cc/example_cc.go:/opt/gopath/src/github.com/hyperledger/fabric/examples/example_cc.go -v $BASE_DIR/channel_test.sh:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel_test.sh
--workdir /opt/gopath/src/github.com/hyperledger/fabric/peer
-e GOPATH=/opt/gopath
-e CORE_PEER_ADDRESSAUTODETECT=true
-e CORE_VM_ENDPOINT=unix:///Host/var/run/docker.sock
-e CORE_LOGGING_LEVEL=DEBUG
-e CORE_NEXT=true
-e CORE_PEER_ID=cli
-e CORE_PEER_ENDORSER_ENABLED=true
-e CORE_PEER_COMMITTER_LEDGER_ORDERER=$ORDERER_IP:8050
-e CORE_PEER_ADDRESS=$PEER0_IP:8051
sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 ./channel_test.sh
さらに情報が必要な場合は、お気軽にお問い合わせください。
注:私はドッカーにあまり詳しくありません、それを使用する方法の改善/アドバイスは大歓迎です:)
ドッカースウォームモードを使用して動作するように見える解決策を見つけました。
ネットワークを作成する(私の場合は「hyp-net」)
docker network create --attachable --driver overlay hyp-net
私がしなければならなかった変更:
使用される新しい環境変数todocker runコマンドを追加しました:
-e CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=hyp-net
これは私のために働くコマンドです:
注文者
docker run --rm -it --network="hyp-net" --name orderer -p 8050:7050
-e ORDERER_GENERAL_LEDGERTYPE=ram
-e ORDERER_GENERAL_BATCHTIMEOUT=10s
-e ORDERER_GENERAL_BATCHSIZE_MAXMESSAGECOUNT=10
-e ORDERER_GENERAL_MAXWINDOWSIZE=1000
-e ORDERER_GENERAL_ORDERERTYPE=solo
-e ORDERER_GENERAL_LOGLEVEL=debug
-e ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
-e ORDERER_GENERAL_LISTENPORT=7050
-e ORDERER_RAMLEDGER_HISTORY_SIZE=100
-e CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=hyp-net
sfhackfest22017/fabric-orderer:x86_64-0.7.0-snapshot-c7b3fe0 orderer
Peer0
docker run --rm -it --link orderer:orderer --network="hyp-net" --name peer0 -p 8051:7051 -p 8053:7053
-v /var/run/:/Host/var/run/ -v $BASE_DIR/tmp/peer0:/etc/hyperledger/fabric/msp/sampleconfig
-e CORE_PEER_ADDRESSAUTODETECT=true
-e CORE_VM_ENDPOINT=unix:///Host/var/run/docker.sock
-e CORE_LOGGING_LEVEL=DEBUG
-e CORE_PEER_NETWORKID=peer0
-e CORE_NEXT=true
-e CORE_PEER_ENDORSER_ENABLED=true
-e CORE_PEER_ID=peer0
-e CORE_PEER_PROFILE_ENABLED=true
-e CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer:7050
-e CORE_PEER_GOSSIP_ORGLEADER=true
-e CORE_PEER_GOSSIP_IGNORESECURITY=true
-e CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=hyp-net
sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 peer node start --peer-defaultchain=false
Peer1
docker run --rm -it --network="hyp-net" --link orderer:orderer --link peer0:peer0 [...] -e CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=hyp-net sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 peer node start --peer-defaultchain=false
Peer2
docker run --rm -it --network="hyp-net" --link orderer:orderer --link peer0:peer0 --link peer1:peer1 [...] -e CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=hyp-net sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 peer node start --peer-defaultchain=false
Cli
docker run --rm -it --network="hyp-net" --link orderer:orderer --link peer0:peer0 --link peer1:peer1 --link peer2:peer2 [...] -e CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=hyp-net sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 ./channel_test.sh
これにより、チェーンコードをデプロイ、呼び出し、クエリすることができます。
Docker Swarmモードを使用して、複数のマシンでハイパーレジャーファブリックネットワークをホストできました。スウォームモードは、ファブリックネットワークコンポーネントの通信のために、複数のホスト/マシンにまたがるネットワークを提供します。
この投稿では、展開プロセスについて説明します。それは、群れネットワークを作成し、他のすべてのマシンがネットワークに参加します。 https://medium.com/@wahabjawed/hyperledger-fabric-on-multiple-hosts-a33b08ef24f
ファブリック1.0以降で動作します