Substrate运行时模块支持哪些哈希算法?

时间:2019-05-28 11:26:18

标签: rust substrate

构建Substrate运行时模块时可以访问哪些哈希算法?

我可以导入其他哈希算法以在Substrate运行时模块中使用吗?

1 个答案:

答案 0 :(得分:0)

撰写本文时,Substrate在core/sr-io板条箱中提供了background: linear-gradient(to right, lightblue 25%, lightcoral 75%)特征,该特征提供以下哈希函数:

HashingApi

因为这些函数是为运行时编写的,必须根据Wasm构建,所以它们必须在不使用标准Rust库(export_api! { pub(crate) trait HashingApi { /// Conduct a 256-bit Keccak hash. fn keccak_256(data: &[u8]) -> [u8; 32] ; /// Conduct a 128-bit Blake2 hash. fn blake2_128(data: &[u8]) -> [u8; 16]; /// Conduct a 256-bit Blake2 hash. fn blake2_256(data: &[u8]) -> [u8; 32]; /// Conduct four XX hashes to give a 256-bit result. fn twox_256(data: &[u8]) -> [u8; 32]; /// Conduct two XX hashes to give a 128-bit result. fn twox_128(data: &[u8]) -> [u8; 16]; /// Conduct two XX hashes to give a 64-bit result. fn twox_64(data: &[u8]) -> [u8; 8]; } } )的情况下进行编译。

如果要在Substrate运行时中引入新的哈希算法或任何新库,则必须确保也可以在没有std的情况下进行构建,但是除此之外,我相信天空是极限。