我有什么理由使用Hash
抽象sr-primitives
而不是使用substrate_primitives::hash
andsubstrate_primitives::hashing
模块?
H256
只是在我的代码中包含(并使用相应的散列函数)似乎比使用Hash
特征更容易。
我有什么理由使用Hash
抽象sr-primitives
而不是使用substrate_primitives::hash
andsubstrate_primitives::hashing
模块?
H256
只是在我的代码中包含(并使用相应的散列函数)似乎比使用Hash
特征更容易。
Substrate 被构建为通用且高度可定制的。当您围绕Hash
trait 编写模块和运行时逻辑时,您将获得模块通用而Hash
不是运行时中使用的特定类型的好处。
在这种情况下,您不需要依赖运行时中的特定类型,例如H256
. 相反,您可以编写仅依赖于 Trait 属性的运行时逻辑。这意味着,如果在以后的某个时间点,您想要实现一个不同的散列函数,从而产生不同的Hash
类型,您就不必重写任何代码。
此外,如果您计划与他人共享您开发的模块,您将希望使您的模块尽可能通用,以免最终区块链开发人员遵守您的标准。
这些抽象确实增加了一些复杂性,并且并不是使事情正常工作所必需的。但是,这是最佳实践,从长远来看,您可能会发现某些东西会带来红利。