mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-06 02:08:02 +00:00
chore: reduce copy times for bytes in core-hashing (#13519)
* chore: reduce copy bytes for core-hashing * improve by suggestions and remove unused `xx_into` * chore: replace sha2 crate by `sp_core::hashing` for pallet-alliance * fix features * use sp-core-hashing directly * add to dev-dep
This commit is contained in:
Generated
+1
-1
@@ -5285,8 +5285,8 @@ dependencies = [
|
||||
"pallet-identity",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"sha2 0.10.6",
|
||||
"sp-core",
|
||||
"sp-core-hashing",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
|
||||
@@ -14,7 +14,6 @@ targets = ["x86_64-unknown-linux-gnu"]
|
||||
|
||||
[dependencies]
|
||||
array-bytes = { version = "4.1", optional = true }
|
||||
sha2 = { version = "0.10.1", default-features = false, optional = true }
|
||||
log = { version = "0.4.14", default-features = false }
|
||||
|
||||
codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
|
||||
@@ -22,6 +21,7 @@ scale-info = { version = "2.0.1", default-features = false, features = ["derive"
|
||||
|
||||
sp-std = { version = "5.0.0", default-features = false, path = "../../primitives/std" }
|
||||
sp-core = { version = "7.0.0", default-features = false, path = "../../primitives/core" }
|
||||
sp-core-hashing = { version = "5.0.0", default-features = false, path = "../../primitives/core/hashing", optional = true }
|
||||
sp-io = { version = "7.0.0", default-features = false, path = "../../primitives/io" }
|
||||
sp-runtime = { version = "7.0.0", default-features = false, path = "../../primitives/runtime" }
|
||||
|
||||
@@ -34,13 +34,14 @@ pallet-collective = { version = "4.0.0-dev", path = "../collective", default-fea
|
||||
|
||||
[dev-dependencies]
|
||||
array-bytes = "4.1"
|
||||
sha2 = "0.10.1"
|
||||
sp-core-hashing = { version = "5.0.0", default-features = false, path = "../../primitives/core/hashing" }
|
||||
pallet-balances = { version = "4.0.0-dev", path = "../balances" }
|
||||
pallet-collective = { version = "4.0.0-dev", path = "../collective" }
|
||||
|
||||
[features]
|
||||
default = ["std"]
|
||||
std = [
|
||||
"sp-core-hashing?/std",
|
||||
"pallet-collective?/std",
|
||||
"frame-benchmarking?/std",
|
||||
"log/std",
|
||||
@@ -56,7 +57,7 @@ std = [
|
||||
]
|
||||
runtime-benchmarks = [
|
||||
"array-bytes",
|
||||
"sha2",
|
||||
"sp-core-hashing",
|
||||
"frame-benchmarking/runtime-benchmarks",
|
||||
"sp-runtime/runtime-benchmarks",
|
||||
"frame-support/runtime-benchmarks",
|
||||
|
||||
@@ -40,11 +40,8 @@ fn assert_last_event<T: Config<I>, I: 'static>(generic_event: <T as Config<I>>::
|
||||
}
|
||||
|
||||
fn cid(input: impl AsRef<[u8]>) -> Cid {
|
||||
use sha2::{Digest, Sha256};
|
||||
let mut hasher = Sha256::new();
|
||||
hasher.update(input);
|
||||
let result = hasher.finalize();
|
||||
Cid::new_v0(&*result)
|
||||
let result = sp_core_hashing::sha2_256(input.as_ref());
|
||||
Cid::new_v0(result)
|
||||
}
|
||||
|
||||
fn rule(input: impl AsRef<[u8]>) -> Cid {
|
||||
|
||||
@@ -368,11 +368,8 @@ pub fn new_bench_ext() -> sp_io::TestExternalities {
|
||||
}
|
||||
|
||||
pub fn test_cid() -> Cid {
|
||||
use sha2::{Digest, Sha256};
|
||||
let mut hasher = Sha256::new();
|
||||
hasher.update(b"hello world");
|
||||
let result = hasher.finalize();
|
||||
Cid::new_v0(&*result)
|
||||
let result = sp_core_hashing::sha2_256(b"hello world");
|
||||
Cid::new_v0(result)
|
||||
}
|
||||
|
||||
pub fn make_remark_proposal(value: u64) -> (RuntimeCall, u32, H256) {
|
||||
|
||||
@@ -35,48 +35,22 @@ pub fn blake2_512_into(data: &[u8], dest: &mut [u8; 64]) {
|
||||
|
||||
/// Do a Blake2 512-bit hash and return result.
|
||||
pub fn blake2_512(data: &[u8]) -> [u8; 64] {
|
||||
let mut r = [0; 64];
|
||||
blake2_512_into(data, &mut r);
|
||||
r
|
||||
}
|
||||
|
||||
/// Do a Blake2 256-bit hash and place result in `dest`.
|
||||
pub fn blake2_256_into(data: &[u8], dest: &mut [u8; 32]) {
|
||||
type Blake2b256 = blake2::Blake2b<U32>;
|
||||
dest.copy_from_slice(Blake2b256::digest(data).as_slice());
|
||||
blake2::Blake2b512::digest(data).into()
|
||||
}
|
||||
|
||||
/// Do a Blake2 256-bit hash and return result.
|
||||
pub fn blake2_256(data: &[u8]) -> [u8; 32] {
|
||||
let mut r = [0; 32];
|
||||
blake2_256_into(data, &mut r);
|
||||
r
|
||||
}
|
||||
|
||||
/// Do a Blake2 128-bit hash and place result in `dest`.
|
||||
pub fn blake2_128_into(data: &[u8], dest: &mut [u8; 16]) {
|
||||
type Blake2b128 = blake2::Blake2b<U16>;
|
||||
dest.copy_from_slice(Blake2b128::digest(data).as_slice());
|
||||
blake2::Blake2b::<U32>::digest(data).into()
|
||||
}
|
||||
|
||||
/// Do a Blake2 128-bit hash and return result.
|
||||
pub fn blake2_128(data: &[u8]) -> [u8; 16] {
|
||||
let mut r = [0; 16];
|
||||
blake2_128_into(data, &mut r);
|
||||
r
|
||||
}
|
||||
|
||||
/// Do a Blake2 64-bit hash and place result in `dest`.
|
||||
pub fn blake2_64_into(data: &[u8], dest: &mut [u8; 8]) {
|
||||
type Blake2b64 = blake2::Blake2b<U8>;
|
||||
dest.copy_from_slice(Blake2b64::digest(data).as_slice());
|
||||
blake2::Blake2b::<U16>::digest(data).into()
|
||||
}
|
||||
|
||||
/// Do a Blake2 64-bit hash and return result.
|
||||
pub fn blake2_64(data: &[u8]) -> [u8; 8] {
|
||||
let mut r = [0; 8];
|
||||
blake2_64_into(data, &mut r);
|
||||
r
|
||||
blake2::Blake2b::<U8>::digest(data).into()
|
||||
}
|
||||
|
||||
/// Do a XX 64-bit hash and place result in `dest`.
|
||||
@@ -128,21 +102,15 @@ pub fn twox_256(data: &[u8]) -> [u8; 32] {
|
||||
|
||||
/// Do a keccak 256-bit hash and return result.
|
||||
pub fn keccak_256(data: &[u8]) -> [u8; 32] {
|
||||
let mut output = [0u8; 32];
|
||||
output.copy_from_slice(sha3::Keccak256::digest(data).as_slice());
|
||||
output
|
||||
sha3::Keccak256::digest(data).into()
|
||||
}
|
||||
|
||||
/// Do a keccak 512-bit hash and return result.
|
||||
pub fn keccak_512(data: &[u8]) -> [u8; 64] {
|
||||
let mut output = [0u8; 64];
|
||||
output.copy_from_slice(sha3::Keccak512::digest(data).as_slice());
|
||||
output
|
||||
sha3::Keccak512::digest(data).into()
|
||||
}
|
||||
|
||||
/// Do a sha2 256-bit hash and return result.
|
||||
pub fn sha2_256(data: &[u8]) -> [u8; 32] {
|
||||
let mut output = [0u8; 32];
|
||||
output.copy_from_slice(sha2::Sha256::digest(data).as_slice());
|
||||
output
|
||||
sha2::Sha256::digest(data).into()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user