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