Pallet中T代表什么?

Wee*_*ezy 4 substrate

因此,每种托盘类型都有或多或少相同的声明:pub struct Pallet<T>(_)pub struct Pallet<T>(PhantomData<T>)where T: Config。我的问题是T代表什么?有人提到 代表T基质运行时,这让我产生疑问,如果一个节点有多个运行的托盘,它们是否都共享相同的定义T

Sha*_*izi 6

T是一个通用类型,代表链的整个运行时配置。

Substrate 设计为模块化和可配置的,因此我们允许每个托盘都根据您的需求进行完全配置。

一个简单的例子是,我们不对您的链的区块号使用什么类型进行假设。在整个代码中,块号类型是通用的,可以通过T::Number类型引用。

在某些时候,需要具体定义该泛型类型,这发生在运行时配置中。这个T通用类型被传递到所有托盘,以便共享这些具体类型的实际内容,并使一切最终正常工作。

查看此存储库,了解如何将具体类型转换为泛型类型的有用示例,然后T语法的形成方式就会显而易见:

https://www.youtube.com/watch?v=6cp10jVWNl4

https://github.com/shawntabrizi/substrate-trait-tutorial