使用Docker Toolbox的Hyperledger Fabric v0.6

时间:2017-01-03 06:11:00

标签: blockchain hyperledger hyperledger-fabric

我在Windows上使用Docker Toolbox运行Hyperledger Fabric v0.6。 Peer和CA已成功启动。 当我运行以下命令时:

CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02.

最终出现错误:

  

“尝试连接到本地对等方时出错:grpc:超时时   拨号“

我将0.0.0.0:7051更改为dockerfile_vp0_1 172.17.0.3 :7051的内部IP,但最终出现了同样的错误。

我按照https://github.com/hyperledger/fabric/blob/v0.6.1-preview/docs/Setup/Chaincode-setup.md的说明操作,并且我也在公司防火墙后面。

你能帮忙吗?

我知道CORE_PEER_ADDRESS是对等体的IP地址,那么什么是CORE_VM_ENDPOINT?

1 个答案:

答案 0 :(得分:2)

运行CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS=0.0.0.0:7051 ./chaincode_example02命令的位置似乎是关键因素。

我可以复制运行docker-compose,在Windows主机上获取chaincode_example02代码,在Windows上构建链代码,然后打开新的Docker Quickstart窗口所遇到的相同结果。我将目录更改为$ GOPATH / src / github.com / chaincode_example02目录,然后运行上面的命令。结果与问题中提到的结果相符。

从Docker容器中为对等图像运行命令应产生不同的结果。

  1. 根据docker-compose.yml文件运行docker-compose up后,打开另一个Docker快速入门窗口。
  2. 使用与此命令类似的命令导航到对等方的文件系统:docker exec -it <substitute container name>_vp0_1 bash。要查找容器名称,您可以先运行docker ps
  3. 进入对等文件系统后,您可以通过查看/opt/gopath/src/github.com/hyperledger/fabric/peer/core.yaml文件来检查正在使用的端口。对等体的“listenAddress”记为0.0.0.0:7051。
  4. netstat -an命令可用于检查端口7051是否处于侦听状态。
  5. 如果对等方似乎没有在端口7051上侦听,请确保peer node start --peer-chaincodedev命令已运行。这应该是docker-compose.yml文件的结果,因为它是该文件中的最后一个语句。
  6. 在对等文件系统中导航到/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02并运行go build
  7. 保持在相同的chaincode_example02目录中并运行CORE_CHAINCODE_ID_NAME=mycc CORE_PEER_ADDRESS:0.0.0.0.7051 ./chaincode_example02命令