我们已经在 Amazon Managed Blockchain 网络上配置了 hyperledger Fabric 1.2。我们遵循了 8 个步骤指南 managed-blockchain-get-started-tutorial配置此设置。 我们已经配置了网络、成员和对等点,并且还设置了 VPC 服务端点。 Fabric Client VM 也在 AWS Linux 2 AMI 上配置,我们还能够安装/启动和调用示例链代码(如 Set 7: Install and Run chaincode 中所述)。 现在我们的障碍是如何将 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) 上发送来自 postman 的邮寄请求
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
我们如何从该 VM 外部以 REST 调用的形式使用这些参数调用此 API?
默认安装了 Hyperledger 1.2 go SDK,您能告诉我们如何使用 go SDK 将 Chaincode API 公开为 REST 吗? 我们知道前端和 Hyperledger Fabric Layer 之间的通信,其中一种方式是 gRPC 调用,但不知道如何配置和使用 grpc for Go。
最佳答案
根据您的解释,您似乎已经正确设置了 hyperledger fabric 网络。因为您能够通过 CLI 安装、实例化和调用链代码。
那么,让我们来回答您的问题,Hyperledger Fabric 为我们提供了两种类型的操作机制,即通过 CLI 和通过 RPC(使用 grpc)。您可以使用 Hyperledger fabric SDK(Node SDK、Java SDK、GO SDK 等),它提供了为 Hyperledger 网络实现 RPC 方法的库。
因此,您可以使用任何支持的语言构建网络应用程序(Rest/Soap)。以下是 SDK 的链接:-
以下是 Hyperledger fabric web 应用程序的示例:-
我会建议您查看余额转账示例。
关于amazon-web-services - 如何使用 Hyperledger go SDK 将 Chaincode API 公开为 REST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54370227/