T在Pallet中代表什么?

What does T represent in a Pallet?

所以每个托盘类型都有或多或少相同的声明:pub struct Pallet<T>(_)pub struct Pallet<T>(PhantomData<T>) 其中 T: Config。我的问题是 T 代表什么?有人提到 T 表示 substrate runtime 这让我产生了疑问,如果一个节点有多个 运行 pallets,它们是否都共享相同的 T 定义?

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

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

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

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

查看此存储库以获取有关如何将具体类型转换为泛型类型的有用示例,然后很明显 T 语法是如何形成的:

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

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