无法调用超级账本结构中的链码

时间:2019-07-14 04:17:05

标签: java hyperledger-fabric hyperledger chaincode

我正在学习如何使用Hyperledger架构和Chaincode。基本上,我遵循此link在Hyperledger架构中创建Java链代码,但无法在cli / channel中调用链代码。

我使用了Hyperledger fabric官方指南中的BYFN.sh建立了Fabric网络,并跟随博客制作了Gradle&Java Chaincode。

我尝试用

调用它之后
peer chaincode invoke -o orderer.example.com:7050 --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C $CHANNEL_NAME -n mycc --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses peer0.org2.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"Args":["createWallet","tom","100"]}'

我收到此错误:

  

错误:获取代言人客户端调用时出错:代言人客户端无法连接到peer0.org2.example.com:7051:无法创建新连接:连接错误:desc =“传输:拨号时出错:拨打tcp 172.21。 0.4:7051:连接:连接被拒绝”

如果有人可以指出一个方向并告诉我什么可能是错误的,这将非常有帮助。我试图用Google搜索它,但是找不到任何有用的信息。


更新:

原来是端口号问题。我进入对等方的一个容器,结果发现端口号是9051,而不是7051。因此,我在chaincode invoke命令中更改了端口号,一切正常。

2 个答案:

答案 0 :(得分:0)

您可以在https://www.chaincoder.org上查看免费工具Chaincoder,这对于初学者来说是一个不错的开始。它使用标准CLI来在IDE内用于结构网络,链码,通道...。

答案 1 :(得分:0)

您在命令中为peer0.0rg1.example.com和peer0.0rg2.example.com指定了相同的端口号。如果您是使用byfn拓扑创建的网络,则peer0.org2会侦听端口9051。此外,在询问此类问题时,最好提供您的配置,即docker-compose.yaml文件。在理解问题时非常有用。

在您的compose.yaml文件中,您可能没有将Org2的端口号映射到其他端口号。

您可以尝试以下任何一种方式-

  1. 查看docker yaml文件中定义的端口号,然后在命令中使用该端口号调用链代码。每个同行的情况应该有所不同。

  2. 修改yaml文件,以便7051重定向到新的端口号,例如9051。 像下面的

    环境:

    • CORE_PEER_ID = peer0.org2.example.com
    • CORE_PEER_ADDRESS = peer0.org2.example.com:7051
    • CORE_PEER_GOSSIP_EXTERNALENDPOINT = peer0.org2.example.com:7051
    • CORE_PEER_GOSSIP_BOOTSTRAP = peer1.org2.example.com:7051
    • CORE_PEER_LOCALMSPID = Org2MSP 数量:
      • / var / run /:/ host / var / run /
      • ../ crypto-config / peerOrganizations / org2.example.com / peers / peer0.org2.example.com / msp:/ etc / hyperledger / fabric / msp
      • ../ crypto-config / peerOrganizations / org2.example.com / peers / peer0.org2.example.com / tls:/ etc / hyperledger / fabric / tls
      • peer0.org2.example.com:/var/hyperledger/production 端口:
    • 9051:7051
    • 9053:7053`。

查看端口号7051映射到9051的末尾。