Каковы поддерживаемые алгоритмы хеширования в модуле времени выполнения субстрата? - PullRequest
0 голосов
/ 28 мая 2019

К каким алгоритмам хеширования у меня есть доступ при создании модуля среды выполнения Substrate?

Могу ли я импортировать другие алгоритмы хеширования для использования в модуле времени выполнения субстрата?

1 Ответ

0 голосов
/ 28 мая 2019

На момент написания этого поста Substrate предоставляет черту HashingApi в ящике core/sr-io, которая предоставляет следующие хеш-функции:

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];
    }
}

Поскольку эти функции написаны дляСреда выполнения, которая должна собираться в Wasm, должна компилироваться без использования стандартной библиотеки Rust (std).

Если вы хотите ввести новые алгоритмы хеширования или любую новую библиотеку в среду выполнения Substrate, выЯ должен убедиться, что он тоже может быть построен без std, но, кроме этого, я считаю, что небо - это предел.

...