我们已经在 Amazon Managed Blockchain 网络上配置了超级账本 Fabric 1.2。我们已按照 8 步指南managed-blockchain-get-started-tutorial来配置此设置。我们已经配置了网络、成员和对等点,并且还设置了 VPC 服务端点。Fabric Client VM 也在 AWS Linux 2 AMI 上配置,我们还能够安装/启动和调用示例链代码(如第7 集:安装和运行链代码中所述)。现在我们的障碍是如何将 API 公开为 REST,以便可以从 Fabric 客户端 VM 外部访问 API。我们从很多天开始苦苦挣扎。
根据 AWS 教程(步骤 7.4:调用链代码)我们正在使用以下命令调用链代码。
docker exec -e "CORE_PEER_TLS_ENABLED=true" -e "CORE_PEER_TLS_ROOTCERT_FILE=/opt/home/managedblockchain-tls-chain.pem" -e "CORE_PEER_ADDRESS=$PEER" -e "CORE_PEER_LOCALMSPID=$MSP" -e "CORE_PEER_MSPCONFIGPATH=$MSP_PATH" cli peer chaincode invoke -C mychannel -n mycc -c '{"Args":["invoke","a","b","10"]}' -o $ORDERER --cafile /opt/home/managedblockchain-tls-chain.pem --tls
我尝试在 ($PEER) 上从邮递员发送邮件请求
https://nd-NDNDNDNDND.m-MMMMMMMMMM-n-NNNNNNNNNN.managedblockchain.us-east-1.amazonaws.com:30003/mycc
带有有效负载:{"Args":["invoke","a","b","10"]}
但出现错误:无法获得任何响应连接到时出错
nd-NDNDNDNDND.m-MMMMMMMMMM-n-NNNNNNNNNN.managedblockchain.us-east-1.amazonaws.com:30003/mycc
我们如何使用这些参数调用此 API 作为来自此 VM 外部的 REST 调用。?
默认情况下安装了 Hyperledger 1.2 go SDK,你能告诉我们如何使用 go SDK 将 Chaincode API 公开为 REST 吗?我们知道前端和 Hyperledger Fabric 层之间的通信,其中一种方式是 gRPC 调用,但不知道如何为 Go 配置和使用 grpc。