В среде субстрата у вас есть доступ к универсальному c типу T::Hashing
, определенному системой FRAME:
/// The hashing system (algorithm) being used in the runtime (e.g. Blake2).
type Hashing: Hash<Output = Self::Hash>;
Это означает, что у вас всегда есть доступ и API черты Hash
: https://substrate.dev/rustdocs/master/sp_runtime/traits/trait.Hash.html
fn hash(s: &[u8]) -> Self::Output
Produce the hash of some byte-slice.
Поэтому, если вы берете несколько произвольных байтов, вы всегда можете получить га sh, выполнив:
let data_hash = T::Hashing::hash(data);