Hyperledger Fabric 事件交付保证

Hyperledger Fabric events delivery guarantee

我们正在构建一个项目,我们计划在其中使用事件来触发各种不同的任务。我的疑问是,由于某些情况,如果客户端出现故障,当我们恢复客户端时,客户端是否可以检索丢失的链代码事件?

是的,您可以使用事件检查点重播对等方发出的错过的事件。当块被提交时,事件由对等方发出。两种类型的事件支持检查点:

  1. 合同事件(也称为链代码事件)- 在要发出的交易中定义。例如。出售商业票据时发出的事件

  2. 块事件 - 提交块时发出。

检查点:

BaseCheckpoint class 是所有 Checkpoint classes 使用的接口。 fabric-network 有一个默认值 class,module:fabric-network~FileSystemCheckpointer 作为工厂导出到 module:fabric-network~CheckpointFactories。 FILE_SYSTEM_CHECKPOINTER 是默认检查点。

检查点工厂是一个函数,它returns一个以BaseCheckpointer作为父class的实例。这些 classes 实现了 async save(channelName, listenerName)async load() 功能。

BaseCheckpointer.save() 在给定事件侦听器的异步回调函数完成处理后调用。

您可以配置自定义检查点。

参考this看教程