Hyperledger结构对等节点是否有调用受信任的外部API的解决方法



我知道不建议执行从Chaincode到非确定性服务的API调用。比方说,我们有一个值得信赖的API,该调用不需要得到网络中所有对等方的认可。实现这种场景的最佳设计模式是什么?

即使背书策略中需要多个对等方,从链代码联系外部服务也没有问题。

唯一的限制是,您需要所有对等方对相同的结果进行签名,因此请确保跨所有对等方的链代码调用产生相同的负载(相同的读取集、相同的写入集、相同结果(。

这取决于你如何实现它。如果你的外部服务是不确定的,并且你必须将其结果包括在分类帐中,那么你可以有一个代理,它将缓存每个事务标识符的结果,然后为具有相同事务标识符的所有API调用返回相同的结果。

以下是一些类似的问题,您可以参考:

调用Hyperledger Fabric Chaincode上的外部数据(外部数据作为业务逻辑中的输入(

访问HyperLedger结构中的外部Api

看来Hyperledger Fabric Chaincode更适合";Ledgering";(记录事务(而不是像应用程序或";智能合约;其中包括业务逻辑。这是因为外部数据可能是不确定的。

最佳实践:您应该在Hyperledger Fabric之外有一个实现业务逻辑(存款、转账等(的应用程序。然后,这个应用程序调用链代码(就像使用SDK一样(来记录事务。或者听一下这里提到的事件:

https://lists.hyperledger.org/g/fabric/message/2501

最新更新