mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-15 16:11:05 +00:00
Companion for paritytech/substrate#12795 (#6374)
* Begin removing `parity-util-mem`; remove `collect_memory_stats`
* Update some dependencies that were using `parity-util-mem`
* Remove `trie-memory-tracker` feature
* Update Cargo.lock
* Update `kvdb-shared-tests`
* Add back jemalloc
* Add missing license header
* update lockfile for {"substrate"}
Co-authored-by: parity-processbot <>
Co-authored-by: Andronik <write@reusable.software>
This commit is contained in:
@@ -47,8 +47,6 @@ pub use polkadot_parachain::primitives::{
|
||||
LOWEST_PUBLIC_ID, LOWEST_USER_ID,
|
||||
};
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
use parity_util_mem::{MallocSizeOf, MallocSizeOfOps};
|
||||
#[cfg(feature = "std")]
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@@ -77,16 +75,6 @@ mod collator_app {
|
||||
/// Identity that collators use.
|
||||
pub type CollatorId = collator_app::Public;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl MallocSizeOf for CollatorId {
|
||||
fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize {
|
||||
0
|
||||
}
|
||||
fn constant_size() -> Option<usize> {
|
||||
Some(0)
|
||||
}
|
||||
}
|
||||
|
||||
/// A Parachain collator keypair.
|
||||
#[cfg(feature = "std")]
|
||||
pub type CollatorPair = collator_app::Pair;
|
||||
@@ -94,16 +82,6 @@ pub type CollatorPair = collator_app::Pair;
|
||||
/// Signature on candidate's block data by a collator.
|
||||
pub type CollatorSignature = collator_app::Signature;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl MallocSizeOf for CollatorSignature {
|
||||
fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize {
|
||||
0
|
||||
}
|
||||
fn constant_size() -> Option<usize> {
|
||||
Some(0)
|
||||
}
|
||||
}
|
||||
|
||||
/// The key type ID for a parachain validator key.
|
||||
pub const PARACHAIN_KEY_TYPE_ID: KeyTypeId = KeyTypeId(*b"para");
|
||||
|
||||
@@ -118,16 +96,6 @@ mod validator_app {
|
||||
/// so we define it to be the same type as `SessionKey`. In the future it may have different crypto.
|
||||
pub type ValidatorId = validator_app::Public;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl MallocSizeOf for ValidatorId {
|
||||
fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize {
|
||||
0
|
||||
}
|
||||
fn constant_size() -> Option<usize> {
|
||||
Some(0)
|
||||
}
|
||||
}
|
||||
|
||||
/// Trait required for type specific indices e.g. `ValidatorIndex` and `GroupIndex`
|
||||
pub trait TypeIndex {
|
||||
/// Returns the index associated to this value.
|
||||
@@ -136,7 +104,7 @@ pub trait TypeIndex {
|
||||
|
||||
/// Index of the validator is used as a lightweight replacement of the `ValidatorId` when appropriate.
|
||||
#[derive(Eq, Ord, PartialEq, PartialOrd, Copy, Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Hash, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize, Hash))]
|
||||
pub struct ValidatorIndex(pub u32);
|
||||
|
||||
// We should really get https://github.com/paritytech/polkadot/issues/2403 going ..
|
||||
@@ -163,16 +131,6 @@ application_crypto::with_pair! {
|
||||
/// so we define it to be the same type as `SessionKey`. In the future it may have different crypto.
|
||||
pub type ValidatorSignature = validator_app::Signature;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl MallocSizeOf for ValidatorSignature {
|
||||
fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize {
|
||||
0
|
||||
}
|
||||
fn constant_size() -> Option<usize> {
|
||||
Some(0)
|
||||
}
|
||||
}
|
||||
|
||||
/// A declarations of storage keys where an external observer can find some interesting data.
|
||||
pub mod well_known_keys {
|
||||
use super::{HrmpChannelId, Id};
|
||||
@@ -406,16 +364,6 @@ application_crypto::with_pair! {
|
||||
pub type AssignmentPair = assignment_app::Pair;
|
||||
}
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl MallocSizeOf for AssignmentId {
|
||||
fn size_of(&self, _ops: &mut MallocSizeOfOps) -> usize {
|
||||
0
|
||||
}
|
||||
fn constant_size() -> Option<usize> {
|
||||
Some(0)
|
||||
}
|
||||
}
|
||||
|
||||
/// The index of the candidate in the list of candidates fully included as-of the block.
|
||||
pub type CandidateIndex = u32;
|
||||
|
||||
@@ -465,7 +413,7 @@ fn check_collator_signature<H: AsRef<[u8]>>(
|
||||
|
||||
/// A unique descriptor of the candidate receipt.
|
||||
#[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(Hash, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(Hash))]
|
||||
pub struct CandidateDescriptor<H = Hash> {
|
||||
/// The ID of the para this is a candidate for.
|
||||
pub para_id: Id,
|
||||
@@ -507,7 +455,6 @@ impl<H: AsRef<[u8]>> CandidateDescriptor<H> {
|
||||
|
||||
/// A candidate-receipt.
|
||||
#[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(MallocSizeOf))]
|
||||
pub struct CandidateReceipt<H = Hash> {
|
||||
/// The descriptor of the candidate.
|
||||
pub descriptor: CandidateDescriptor<H>,
|
||||
@@ -544,7 +491,7 @@ pub struct FullCandidateReceipt<H = Hash, N = BlockNumber> {
|
||||
|
||||
/// A candidate-receipt with commitments directly included.
|
||||
#[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(Hash, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(Hash))]
|
||||
pub struct CommittedCandidateReceipt<H = Hash> {
|
||||
/// The descriptor of the candidate.
|
||||
pub descriptor: CandidateDescriptor<H>,
|
||||
@@ -625,7 +572,7 @@ impl Ord for CommittedCandidateReceipt {
|
||||
/// The `PersistedValidationData` should be relatively lightweight primarily because it is constructed
|
||||
/// during inclusion for each candidate and therefore lies on the critical path of inclusion.
|
||||
#[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(Default, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(Default))]
|
||||
pub struct PersistedValidationData<H = Hash, N = BlockNumber> {
|
||||
/// The parent head-data.
|
||||
pub parent_head: HeadData,
|
||||
@@ -646,7 +593,7 @@ impl<H: Encode, N: Encode> PersistedValidationData<H, N> {
|
||||
|
||||
/// Commitments made in a `CandidateReceipt`. Many of these are outputs of validation.
|
||||
#[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(Hash, MallocSizeOf, Default))]
|
||||
#[cfg_attr(feature = "std", derive(Hash, Default))]
|
||||
pub struct CandidateCommitments<N = BlockNumber> {
|
||||
/// Messages destined to be interpreted by the Relay chain itself.
|
||||
pub upward_messages: Vec<UpwardMessage>,
|
||||
@@ -787,7 +734,7 @@ pub fn check_candidate_backing<H: AsRef<[u8]> + Clone + Encode>(
|
||||
#[derive(
|
||||
Encode, Decode, Default, PartialOrd, Ord, Eq, PartialEq, Clone, Copy, TypeInfo, RuntimeDebug,
|
||||
)]
|
||||
#[cfg_attr(feature = "std", derive(Hash, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(Hash))]
|
||||
pub struct CoreIndex(pub u32);
|
||||
|
||||
impl From<u32> for CoreIndex {
|
||||
@@ -804,7 +751,7 @@ impl TypeIndex for CoreIndex {
|
||||
|
||||
/// The unique (during session) index of a validator group.
|
||||
#[derive(Encode, Decode, Default, Clone, Copy, Debug, PartialEq, Eq, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(Hash, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(Hash))]
|
||||
pub struct GroupIndex(pub u32);
|
||||
|
||||
impl From<u32> for GroupIndex {
|
||||
@@ -846,7 +793,7 @@ pub enum CoreOccupied {
|
||||
|
||||
/// A helper data-type for tracking validator-group rotations.
|
||||
#[derive(Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub struct GroupRotationInfo<N = BlockNumber> {
|
||||
/// The block number where the session started.
|
||||
pub session_start_block: N,
|
||||
@@ -934,7 +881,7 @@ impl<N: Saturating + BaseArithmetic + Copy> GroupRotationInfo<N> {
|
||||
|
||||
/// Information about a core which is currently occupied.
|
||||
#[derive(Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub struct OccupiedCore<H = Hash, N = BlockNumber> {
|
||||
// NOTE: this has no ParaId as it can be deduced from the candidate descriptor.
|
||||
/// If this core is freed by availability, this is the assignment that is next up on this
|
||||
@@ -951,7 +898,6 @@ pub struct OccupiedCore<H = Hash, N = BlockNumber> {
|
||||
/// A bitfield with 1 bit for each validator in the set. `1` bits mean that the corresponding
|
||||
/// validators has attested to availability on-chain. A 2/3+ majority of `1` bits means that
|
||||
/// this will be available.
|
||||
#[cfg_attr(feature = "std", ignore_malloc_size_of = "outside type")]
|
||||
pub availability: BitVec<u8, bitvec::order::Lsb0>,
|
||||
/// The group assigned to distribute availability pieces of this candidate.
|
||||
pub group_responsible: GroupIndex,
|
||||
@@ -970,7 +916,7 @@ impl<H, N> OccupiedCore<H, N> {
|
||||
|
||||
/// Information about a core which is currently occupied.
|
||||
#[derive(Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub struct ScheduledCore {
|
||||
/// The ID of a para scheduled.
|
||||
pub para_id: Id,
|
||||
@@ -980,7 +926,7 @@ pub struct ScheduledCore {
|
||||
|
||||
/// The state of a particular availability core.
|
||||
#[derive(Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub enum CoreState<H = Hash, N = BlockNumber> {
|
||||
/// The core is currently occupied.
|
||||
#[codec(index = 0)]
|
||||
@@ -1031,7 +977,7 @@ pub enum OccupiedCoreAssumption {
|
||||
|
||||
/// An even concerning a candidate.
|
||||
#[derive(Clone, Encode, Decode, TypeInfo, RuntimeDebug)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub enum CandidateEvent<H = Hash> {
|
||||
/// This candidate receipt was backed in the most recent block.
|
||||
/// This includes the core index the candidate is now occupying.
|
||||
@@ -1050,7 +996,7 @@ pub enum CandidateEvent<H = Hash> {
|
||||
|
||||
/// Scraped runtime backing votes and resolved disputes.
|
||||
#[derive(Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub struct ScrapedOnChainVotes<H: Encode + Decode = Hash> {
|
||||
/// The session in which the block was included.
|
||||
pub session: SessionIndex,
|
||||
@@ -1239,7 +1185,6 @@ impl From<ConsensusLog> for runtime_primitives::DigestItem {
|
||||
///
|
||||
/// Statements are either in favor of the candidate's validity or against it.
|
||||
#[derive(Encode, Decode, Clone, PartialEq, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(MallocSizeOf))]
|
||||
pub enum DisputeStatement {
|
||||
/// A valid statement, of the given kind.
|
||||
#[codec(index = 0)]
|
||||
@@ -1320,7 +1265,6 @@ impl DisputeStatement {
|
||||
|
||||
/// Different kinds of statements of validity on a candidate.
|
||||
#[derive(Encode, Decode, Copy, Clone, PartialEq, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(MallocSizeOf))]
|
||||
pub enum ValidDisputeStatementKind {
|
||||
/// An explicit statement issued as part of a dispute.
|
||||
#[codec(index = 0)]
|
||||
@@ -1338,7 +1282,6 @@ pub enum ValidDisputeStatementKind {
|
||||
|
||||
/// Different kinds of statements of invalidity on a candidate.
|
||||
#[derive(Encode, Decode, Copy, Clone, PartialEq, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(MallocSizeOf))]
|
||||
pub enum InvalidDisputeStatementKind {
|
||||
/// An explicit statement issued as part of a dispute.
|
||||
#[codec(index = 0)]
|
||||
@@ -1367,7 +1310,6 @@ impl ExplicitDisputeStatement {
|
||||
|
||||
/// A set of statements about a specific candidate.
|
||||
#[derive(Encode, Decode, Clone, PartialEq, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(MallocSizeOf))]
|
||||
pub struct DisputeStatementSet {
|
||||
/// The candidate referenced by this set.
|
||||
pub candidate_hash: CandidateHash,
|
||||
@@ -1432,22 +1374,6 @@ pub struct DisputeState<N = BlockNumber> {
|
||||
pub concluded_at: Option<N>,
|
||||
}
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl MallocSizeOf for DisputeState {
|
||||
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize {
|
||||
// destructuring to make sure no new fields are added to the struct without modifying this function
|
||||
let Self { validators_for, validators_against, start, concluded_at } = self;
|
||||
|
||||
// According to the documentation `.capacity()` might not return a byte aligned value, so just in case:
|
||||
let align_eight = |d: usize| (d + 7) / 8;
|
||||
|
||||
align_eight(validators_for.capacity()) +
|
||||
align_eight(validators_against.capacity()) +
|
||||
start.size_of(ops) +
|
||||
concluded_at.size_of(ops)
|
||||
}
|
||||
}
|
||||
|
||||
/// Parachains inherent-data passed into the runtime by a block author
|
||||
#[derive(Encode, Decode, Clone, PartialEq, RuntimeDebug, TypeInfo)]
|
||||
pub struct InherentData<HDR: HeaderT = Header> {
|
||||
@@ -1464,7 +1390,6 @@ pub struct InherentData<HDR: HeaderT = Header> {
|
||||
/// An either implicit or explicit attestation to the validity of a parachain
|
||||
/// candidate.
|
||||
#[derive(Clone, Eq, PartialEq, Decode, Encode, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(MallocSizeOf))]
|
||||
pub enum ValidityAttestation {
|
||||
/// Implicit validity attestation by issuing.
|
||||
/// This corresponds to issuance of a `Candidate` statement.
|
||||
@@ -1600,7 +1525,7 @@ impl CompactStatement {
|
||||
|
||||
/// `IndexedVec` struct indexed by type specific indices.
|
||||
#[derive(Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub struct IndexedVec<K, V>(Vec<V>, PhantomData<fn(K) -> K>);
|
||||
|
||||
impl<K, V> Default for IndexedVec<K, V> {
|
||||
@@ -1679,7 +1604,7 @@ pub fn supermajority_threshold(n: usize) -> usize {
|
||||
|
||||
/// Information about validator sets of a session.
|
||||
#[derive(Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub struct SessionInfo {
|
||||
/****** New in v2 *******/
|
||||
/// All the validators actively participating in parachain consensus.
|
||||
@@ -1705,7 +1630,6 @@ pub struct SessionInfo {
|
||||
/// `validators`, afterwards any remaining authorities can be found. This is any authorities not
|
||||
/// participating in parachain consensus - see
|
||||
/// [`max_validators`](https://github.com/paritytech/polkadot/blob/a52dca2be7840b23c19c153cf7e110b1e3e475f8/runtime/parachains/src/configuration.rs#L148)
|
||||
#[cfg_attr(feature = "std", ignore_malloc_size_of = "outside type")]
|
||||
pub discovery_keys: Vec<AuthorityDiscoveryId>,
|
||||
/// The assignment keys for validators.
|
||||
///
|
||||
@@ -1765,7 +1689,7 @@ impl PvfCheckStatement {
|
||||
/// Old, v1-style info about session info. Only needed for limited
|
||||
/// backwards-compatibility.
|
||||
#[derive(Clone, Encode, Decode, RuntimeDebug, TypeInfo)]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq, MallocSizeOf))]
|
||||
#[cfg_attr(feature = "std", derive(PartialEq))]
|
||||
pub struct OldV1SessionInfo {
|
||||
/// Validators in canonical ordering.
|
||||
///
|
||||
@@ -1781,7 +1705,6 @@ pub struct OldV1SessionInfo {
|
||||
/// `validators`, afterwards any remaining authorities can be found. This is any authorities not
|
||||
/// participating in parachain consensus - see
|
||||
/// [`max_validators`](https://github.com/paritytech/polkadot/blob/a52dca2be7840b23c19c153cf7e110b1e3e475f8/runtime/parachains/src/configuration.rs#L148)
|
||||
#[cfg_attr(feature = "std", ignore_malloc_size_of = "outside type")]
|
||||
pub discovery_keys: Vec<AuthorityDiscoveryId>,
|
||||
/// The assignment keys for validators.
|
||||
///
|
||||
|
||||
Reference in New Issue
Block a user