Substrate 中的事件模式
Event pattern in Substrate
区块链解决方案中的事件模式是众所周知的,Substrate 团队 link 中的任何人都可以使用 Substrate 代码中的模式吗?
我只是想在 Substrate 框架和 Rust 语言的背景下理解模式。
在Substrate中使用事件的概念与最早普及该模式的以太坊类似。 on-chain 逻辑中的代码路径(Substrate 中的 pallet,Ethereum 中的合约)可能导致发出特定事件。可以从链下订阅这些事件,以更新 UI 或确认按预期执行的交易。
Substrate Recipes 演示了如何在 Substrate pallet 中使用事件 https://substrate.dev/recipes/2-appetizers/4-events.html
Substrate 使用 enum
来表示运行时中的事件。每个模块都可以使用 decl_event!
宏创建自己的 Events
枚举,并且运行时将所有这些单独的对象组合成一个单一的“外部枚举”,它捕获所有可能从您的运行时发出的事件。
然后,事件将被简单地存储到下一个块的开始。
前端逐块处理事件存储项,并可以使用其中提供的信息在发生某些操作时通知用户。
这是 Substrate 中的代码 walk-through,它跟随一个事件被发出然后被存储:
区块链解决方案中的事件模式是众所周知的,Substrate 团队 link 中的任何人都可以使用 Substrate 代码中的模式吗?
我只是想在 Substrate 框架和 Rust 语言的背景下理解模式。
在Substrate中使用事件的概念与最早普及该模式的以太坊类似。 on-chain 逻辑中的代码路径(Substrate 中的 pallet,Ethereum 中的合约)可能导致发出特定事件。可以从链下订阅这些事件,以更新 UI 或确认按预期执行的交易。
Substrate Recipes 演示了如何在 Substrate pallet 中使用事件 https://substrate.dev/recipes/2-appetizers/4-events.html
Substrate 使用 enum
来表示运行时中的事件。每个模块都可以使用 decl_event!
宏创建自己的 Events
枚举,并且运行时将所有这些单独的对象组合成一个单一的“外部枚举”,它捕获所有可能从您的运行时发出的事件。
然后,事件将被简单地存储到下一个块的开始。
前端逐块处理事件存储项,并可以使用其中提供的信息在发生某些操作时通知用户。
这是 Substrate 中的代码 walk-through,它跟随一个事件被发出然后被存储: