docker - 无法注册链码并成功启动区 block 链网络

标签 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的区块链网络已启动并正在运行,但是最后一条日志消息与预期的日志消息不同(它显示Connected to:[],我认为是null):
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"

我在这里缺少什么吗?任何帮助表示赞赏,谢谢。

最佳答案

似乎您在Windows环境中工作,并且除未定义将任何端口转发到Oracle VM虚拟框中外,其他所有操作都正确。您将需要配置
Oracle VM VirtualBox Manager->设置->网络->高级->端口转发-并根据附加的镜像进行定义,运行并享受...。enter image description here

编码愉快!

关于docker - 无法注册链码并成功启动区 block 链网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43928542/

相关文章:

docker - Circleci 2.0 基于 Dockerfile 构建

python - 如何在没有任何路径或环境相关问题的情况下通过 nextflow 无缝地在 docker 容器中运行 python 脚本?

azure - 重新启动 Azure 容器实例

Mac M1 上的 Docker 给出 : "The requested image' s platform (linux/amd64) does not match the detected host platform"

namespaces - 是否可以将 ipc namespeces 与 docker compose 连接起来

java - 无法从 Java SDK 为 Fabric 中的 BYFN 执行调用事务

docker - 在 Docker 上启动 HDP 沙盒代理时端口上的权限被拒绝 (Windows 10)

blockchain - 如何在solidity 0.5.2版本中调用另一个合约中的合约?

blockchain - 如何从以太坊区 block 链中检索数据?

docker - Traefik v2 反向代理到 Docker 外部的本地服务器