问题描述
区块链解决方案中的事件模式是众所周知的,Substrate团队中的任何人都可以链接到Substrate代码中的模式吗?
我只想了解Substrate框架和Rust语言的上下文中的模式。
解决方法
Substrate使用enum
表示运行系统中的事件。每个模块都可以使用Events
宏创建自己的decl_event!
枚举,并且运行时将所有这些单独的对象组合到一个“外部枚举”中,该“外部枚举”捕获了运行时可能发出的所有可能的事件。 / p>
然后,将事件简单地存储在存储中,直到下一个块的开始为止。
前端会逐块处理事件存储项,并且可以使用其中提供的信息在发生某些操作时通知用户。
下面是在发生事件之后将其放到存储中的Substrate中的代码的逐步介绍:What is the cost of event storage in substrate?
,在Substrate中使用事件的概念与以太坊最初推广该模式的概念相似。链上逻辑中的代码路径(Substrate中的托盘,以太坊中的合同)可能导致发出特定事件。可以从链外订阅这些事件,以更新UI或确认按预期执行的事务。
底物食谱演示了如何使用底物托盘https://substrate.dev/recipes/2-appetizers/4-events.html
中的事件