mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-18 18:45:41 +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",
|
"pallet-identity",
|
||||||
"parity-scale-codec",
|
"parity-scale-codec",
|
||||||
"scale-info",
|
"scale-info",
|
||||||
"sha2 0.10.6",
|
|
||||||
"sp-core",
|
"sp-core",
|
||||||
|
"sp-core-hashing",
|
||||||
"sp-io",
|
"sp-io",
|
||||||
"sp-runtime",
|
"sp-runtime",
|
||||||
"sp-std",
|
"sp-std",
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ targets = ["x86_64-unknown-linux-gnu"]
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
array-bytes = { version = "4.1", optional = true }
|
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 }
|
log = { version = "0.4.14", default-features = false }
|
||||||
|
|
||||||
codec = { package = "parity-scale-codec", version = "3.2.2", default-features = false, features = ["derive"] }
|
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-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 = { 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-io = { version = "7.0.0", default-features = false, path = "../../primitives/io" }
|
||||||
sp-runtime = { version = "7.0.0", default-features = false, path = "../../primitives/runtime" }
|
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]
|
[dev-dependencies]
|
||||||
array-bytes = "4.1"
|
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-balances = { version = "4.0.0-dev", path = "../balances" }
|
||||||
pallet-collective = { version = "4.0.0-dev", path = "../collective" }
|
pallet-collective = { version = "4.0.0-dev", path = "../collective" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std"]
|
default = ["std"]
|
||||||
std = [
|
std = [
|
||||||
|
"sp-core-hashing?/std",
|
||||||
"pallet-collective?/std",
|
"pallet-collective?/std",
|
||||||
"frame-benchmarking?/std",
|
"frame-benchmarking?/std",
|
||||||
"log/std",
|
"log/std",
|
||||||
@@ -56,7 +57,7 @@ std = [
|
|||||||
]
|
]
|
||||||
runtime-benchmarks = [
|
runtime-benchmarks = [
|
||||||
"array-bytes",
|
"array-bytes",
|
||||||
"sha2",
|
"sp-core-hashing",
|
||||||
"frame-benchmarking/runtime-benchmarks",
|
"frame-benchmarking/runtime-benchmarks",
|
||||||
"sp-runtime/runtime-benchmarks",
|
"sp-runtime/runtime-benchmarks",
|
||||||
"frame-support/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 {
|
fn cid(input: impl AsRef<[u8]>) -> Cid {
|
||||||
use sha2::{Digest, Sha256};
|
let result = sp_core_hashing::sha2_256(input.as_ref());
|
||||||
let mut hasher = Sha256::new();
|
Cid::new_v0(result)
|
||||||
hasher.update(input);
|
|
||||||
let result = hasher.finalize();
|
|
||||||
Cid::new_v0(&*result)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn rule(input: impl AsRef<[u8]>) -> Cid {
|
fn rule(input: impl AsRef<[u8]>) -> Cid {
|
||||||
|
|||||||
@@ -368,11 +368,8 @@ pub fn new_bench_ext() -> sp_io::TestExternalities {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn test_cid() -> Cid {
|
pub fn test_cid() -> Cid {
|
||||||
use sha2::{Digest, Sha256};
|
let result = sp_core_hashing::sha2_256(b"hello world");
|
||||||
let mut hasher = Sha256::new();
|
Cid::new_v0(result)
|
||||||
hasher.update(b"hello world");
|
|
||||||
let result = hasher.finalize();
|
|
||||||
Cid::new_v0(&*result)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn make_remark_proposal(value: u64) -> (RuntimeCall, u32, H256) {
|
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.
|
/// Do a Blake2 512-bit hash and return result.
|
||||||
pub fn blake2_512(data: &[u8]) -> [u8; 64] {
|
pub fn blake2_512(data: &[u8]) -> [u8; 64] {
|
||||||
let mut r = [0; 64];
|
blake2::Blake2b512::digest(data).into()
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Do a Blake2 256-bit hash and return result.
|
/// Do a Blake2 256-bit hash and return result.
|
||||||
pub fn blake2_256(data: &[u8]) -> [u8; 32] {
|
pub fn blake2_256(data: &[u8]) -> [u8; 32] {
|
||||||
let mut r = [0; 32];
|
blake2::Blake2b::<U32>::digest(data).into()
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Do a Blake2 128-bit hash and return result.
|
/// Do a Blake2 128-bit hash and return result.
|
||||||
pub fn blake2_128(data: &[u8]) -> [u8; 16] {
|
pub fn blake2_128(data: &[u8]) -> [u8; 16] {
|
||||||
let mut r = [0; 16];
|
blake2::Blake2b::<U16>::digest(data).into()
|
||||||
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());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Do a Blake2 64-bit hash and return result.
|
/// Do a Blake2 64-bit hash and return result.
|
||||||
pub fn blake2_64(data: &[u8]) -> [u8; 8] {
|
pub fn blake2_64(data: &[u8]) -> [u8; 8] {
|
||||||
let mut r = [0; 8];
|
blake2::Blake2b::<U8>::digest(data).into()
|
||||||
blake2_64_into(data, &mut r);
|
|
||||||
r
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Do a XX 64-bit hash and place result in `dest`.
|
/// 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.
|
/// Do a keccak 256-bit hash and return result.
|
||||||
pub fn keccak_256(data: &[u8]) -> [u8; 32] {
|
pub fn keccak_256(data: &[u8]) -> [u8; 32] {
|
||||||
let mut output = [0u8; 32];
|
sha3::Keccak256::digest(data).into()
|
||||||
output.copy_from_slice(sha3::Keccak256::digest(data).as_slice());
|
|
||||||
output
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Do a keccak 512-bit hash and return result.
|
/// Do a keccak 512-bit hash and return result.
|
||||||
pub fn keccak_512(data: &[u8]) -> [u8; 64] {
|
pub fn keccak_512(data: &[u8]) -> [u8; 64] {
|
||||||
let mut output = [0u8; 64];
|
sha3::Keccak512::digest(data).into()
|
||||||
output.copy_from_slice(sha3::Keccak512::digest(data).as_slice());
|
|
||||||
output
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Do a sha2 256-bit hash and return result.
|
/// Do a sha2 256-bit hash and return result.
|
||||||
pub fn sha2_256(data: &[u8]) -> [u8; 32] {
|
pub fn sha2_256(data: &[u8]) -> [u8; 32] {
|
||||||
let mut output = [0u8; 32];
|
sha2::Sha256::digest(data).into()
|
||||||
output.copy_from_slice(sha2::Sha256::digest(data).as_slice());
|
|
||||||
output
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user