【问题标题】:Hyperledger Fabric - Send notifications from chaincodeHyperledger Fabric - 从链码发送通知
【发布时间】:2018-10-07 05:49:09
【问题描述】:
我想知道如何从结构网络的链码发送通知。
我想做的是每次新交易成功提交到分类帐时向外部遗留系统发送通知。
为了实现这一点,我想到了两种不同的方法:
-
HTTP 请求 - 可以直接从
链码?如果是,是否可以向
旧系统的端点通知交易?
-
事件 - 我知道有可能创建
链码中的事件。可以不听这些事件
使用 Fabric SDK(我无法将 SDK 集成到旧
系统)?
您对这两种方法有何考虑?
你有什么建议吗?
【问题讨论】:
标签:
hyperledger-fabric
hyperledger
【解决方案1】:
HTTP 请求
是的,这可能,但绝对不推荐。链码用于对交易提案进行背书,但一个对等方对交易提案的背书并不一定意味着交易本身将被提交。从链码执行发送请求还为时过早。你可以阅读更多关于交易流程here和here
此外,链代码不一定(也不应该)只在一个对等点上执行。如果您有从链代码发送的请求,并且您有 10 个对等点执行链代码,那么您将有 10 个请求进入您的旧系统。
活动
您可以在链码中设置自定义事件,但您不需要它们,因为每个 sdk 都支持交易提交通知。虽然我理解将 sdk 嵌入到您的旧服务中是不合理的,但 sdk 很可能是您监听事件的最佳位置。
对等通道事件服务
从 1.3 开始,peer 将拥有一个特定的channel event service。我不会讨论这个,因为我还没有使用它,我假设如果您的旧系统无法集成 sdk,它很可能不支持对对等服务进行 grpc 调用。
解决方案
您可能需要将 HTTP 请求和事件解决方案拼凑在一起。有一个单独的服务使用 sdk 发送交易建议并监听交易承诺的通知。提交事务后,使用此服务向旧系统的端点发送请求。