mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 05:51:02 +00:00
Remove TransientValidationData (#2272)
* collation-generation: use persisted validation data * node: remote FullValidationData API * runtime: remove FullValidationData API * backing tests: use persisted validation data * FullCandidateReceipt: use persisted validation data This is not a big change since this type is not used anywhere * Remove ValidationData and TransientValidationData Also update the guide
This commit is contained in:
@@ -21,7 +21,7 @@ use sp_std::prelude::*;
|
||||
use sp_std::collections::btree_map::BTreeMap;
|
||||
use sp_runtime::traits::One;
|
||||
use primitives::v1::{
|
||||
ValidatorId, ValidatorIndex, GroupRotationInfo, CoreState, ValidationData,
|
||||
ValidatorId, ValidatorIndex, GroupRotationInfo, CoreState,
|
||||
Id as ParaId, OccupiedCoreAssumption, SessionIndex, ValidationCode,
|
||||
CommittedCandidateReceipt, ScheduledCore, OccupiedCore, CoreOccupied, CoreIndex,
|
||||
GroupIndex, CandidateEvent, PersistedValidationData, SessionInfo,
|
||||
@@ -193,30 +193,6 @@ fn with_assumption<Config, T, F>(
|
||||
}
|
||||
}
|
||||
|
||||
/// Implementation for the `full_validation_data` function of the runtime API.
|
||||
pub fn full_validation_data<T: initializer::Config>(
|
||||
para_id: ParaId,
|
||||
assumption: OccupiedCoreAssumption,
|
||||
) -> Option<ValidationData<T::BlockNumber>> {
|
||||
use parity_scale_codec::Decode as _;
|
||||
let relay_parent_number = <frame_system::Module<T>>::block_number();
|
||||
let relay_storage_root = Hash::decode(&mut &sp_io::storage::root()[..])
|
||||
.expect("storage root must decode to the Hash type; qed");
|
||||
with_assumption::<T, _, _>(para_id, assumption, || {
|
||||
Some(ValidationData {
|
||||
persisted: crate::util::make_persisted_validation_data::<T>(
|
||||
para_id,
|
||||
relay_parent_number,
|
||||
relay_storage_root,
|
||||
)?,
|
||||
transient: crate::util::make_transient_validation_data::<T>(
|
||||
para_id,
|
||||
relay_parent_number,
|
||||
)?,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
/// Implementation for the `persisted_validation_data` function of the runtime API.
|
||||
pub fn persisted_validation_data<T: initializer::Config>(
|
||||
para_id: ParaId,
|
||||
|
||||
@@ -17,8 +17,7 @@
|
||||
//! Utilities that don't belong to any particular module but may draw
|
||||
//! on all modules.
|
||||
|
||||
use sp_runtime::traits::Saturating;
|
||||
use primitives::v1::{Id as ParaId, PersistedValidationData, TransientValidationData, Hash};
|
||||
use primitives::v1::{Id as ParaId, PersistedValidationData, Hash};
|
||||
|
||||
use crate::{configuration, paras, dmp, hrmp};
|
||||
|
||||
@@ -42,36 +41,3 @@ pub fn make_persisted_validation_data<T: paras::Config + hrmp::Config>(
|
||||
max_pov_size: config.max_pov_size,
|
||||
})
|
||||
}
|
||||
|
||||
/// Make the transient validation data for a particular parachain and a specified relay-parent.
|
||||
///
|
||||
/// This ties together the storage of several modules.
|
||||
pub fn make_transient_validation_data<T: paras::Config + dmp::Config>(
|
||||
para_id: ParaId,
|
||||
relay_parent_number: T::BlockNumber,
|
||||
) -> Option<TransientValidationData<T::BlockNumber>> {
|
||||
let config = <configuration::Module<T>>::config();
|
||||
|
||||
let freq = config.validation_upgrade_frequency;
|
||||
let delay = config.validation_upgrade_delay;
|
||||
|
||||
let last_code_upgrade = <paras::Module<T>>::last_code_upgrade(para_id, true);
|
||||
let can_upgrade_code = last_code_upgrade.map_or(
|
||||
true,
|
||||
|l| { l <= relay_parent_number && relay_parent_number.saturating_sub(l) >= freq },
|
||||
);
|
||||
|
||||
let code_upgrade_allowed = if can_upgrade_code {
|
||||
Some(relay_parent_number + delay)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
Some(TransientValidationData {
|
||||
max_code_size: config.max_code_size,
|
||||
max_head_data_size: config.max_head_data_size,
|
||||
balance: 0,
|
||||
code_upgrade_allowed,
|
||||
dmq_length: <dmp::Module<T>>::dmq_length(para_id),
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user