无法注册Chaincode&成功启动区块链网络

时间:2017-05-12 02:53:15

标签: docker docker-compose blockchain hyperledger hyperledger-fabric

我正在关注hyperledger fabric教程,并且无法注册我的链码并可能启动docker镜像: https://www.ibm.com/developerworks/library/j-chaincode-for-java-developers/

以下是我尝试注册我的链码时出现的错误:

$ ./Example
Hello world! starting [Ljava.lang.String;@5fd0d5ae
May 10, 2017 9:40:34 PM example.Example main
INFO: starting
May 10, 2017 9:40:34 PM io.grpc.internal.TransportSet$1 call
INFO: Created transport io.grpc.netty.NettyClientTransport@7269e694(/127.0.0.1:7051) for /127.0.0.1:7051
May 10, 2017 9:40:36 PM io.grpc.internal.TransportSet$TransportListener transportShutdown
INFO: Transport io.grpc.netty.NettyClientTransport@7269e694(/127.0.0.1:7051) for /127.0.0.1:7051 is being shutdown
May 10, 2017 9:40:36 PM io.grpc.internal.TransportSet$TransportListener transportTerminated
INFO: Transport io.grpc.netty.NettyClientTransport@7269e694(/127.0.0.1:7051) for /127.0.0.1:7051 is terminated
May 10, 2017 9:40:36 PM org.hyperledger.java.shim.ChaincodeBase$1 onError
SEVERE: Unable to connect to peer server: UNAVAILABLE

我的区块链网络通过docker启动并运行,但最后一条日志消息与预期的日志消息不同(它表示已连接到:[],我认为它是空的):

05:47:30.205 [peer] chatWithSomePeers -> DEBU 02f Starting up the first peer of a new network
05:47:30.205 [nodeCmd] serve -> INFO 030 Starting peer with ID=name:"vp0" , network ID=dev, address=172.17.0.3:7051, rootnodes=, validator=true
05:47:30.206 [consensus/statetransfer] verifyAndRecoverBlockchain -> DEBU 031 Validating existing blockchain, highest validated block is 0, valid through 0
05:47:30.206 [consensus/statetransfer] blockThread -> INFO 032 Validated blockchain to the genesis block
05:47:30.206 [consensus/handler] 1 -> DEBU 033 Starting up message thread for consenter
05:47:30.207 [peer] ensureConnected -> DEBU 034 Starting Peer reconnect service (touch service), with period = 6s
05:47:30.207 [rest] StartOpenchainRESTServer -> INFO 035 Initializing the REST service on 0.0.0.0:7050, TLS is disabled.
05:47:36.209 [peer] ensureConnected -> DEBU 036 Touch service indicates no dropped connections
05:47:36.209 [peer] ensureConnected -> DEBU 037 Connected to: []
05:47:36.209 [peer] ensureConnected -> DEBU 038 Discovery knows about: []

当我检查正在运行docker的容器显示我们两个都已启动时,请参见下文:

CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
7dec77752d52        hyperledger/fabric-peer         "sh -c 'sleep 5; peer"   20 minutes ago      Up 20 minutes       0.0.0.0:7050-7051->7050-7051/tcp, 0.0.0.0:7053->7053/tcp   blockchain_vp0_1
ac91e9bc1b0e        hyperledger/fabric-membersrvc   "membersrvc"             24 hours ago        Up 20 minutes       0.0.0.0:7054->7054/tcp                                     blockchain_membersrvc_1

使用了以下git命令: git clone https://github.com/hyperledger/fabric.git -b v0.6

我复制并粘贴了docker-compose.yml的确切值,见下文:

membersrvc:
  image: hyperledger/fabric-membersrvc
  ports:
    - "7054:7054"
  command: membersrvc
vp0:
  image: hyperledger/fabric-peer
  ports:
    - "7050:7050"
    - "7051:7051"
    - "7053:7053"
  environment:
    - CORE_PEER_ADDRESSAUTODETECT=true
    - CORE_VM_ENDPOINT=unix:///var/run/docker.sock
    - CORE_LOGGING_LEVEL=DEBUG
    - CORE_PEER_ID=vp0
    - CORE_PEER_PKI_ECA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TCA_PADDR=membersrvc:7054
    - CORE_PEER_PKI_TLSCA_PADDR=membersrvc:7054
    - CORE_SECURITY_ENABLED=false
    - CORE_SECURITY_ENROLLID=test_vp0
    - CORE_SECURITY_ENROLLSECRET=MwYpmSRjupbT
  links:
    - membersrvc
  command: sh -c "sleep 5; peer node start --peer-chaincodedev"

我在这里缺少什么吗?感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:2)

似乎您正在使用Windows环境,并且除了没有定义任何端口转发到Oracle VM虚拟框之外,一切正常。你必须配置 Oracle VM VirtualBox Manager - >设置 - >网络 - >进展 - >端口转发 - 并根据附加图像定义,运行和享受.... enter image description here

快乐的编码!