Skip to content
Snippets Groups Projects
Commit 6608d61a authored by Amar Singh's avatar Amar Singh Committed by GitHub
Browse files

Add babe randomness to relay state proof (#1083)

* add new babe keys to relay storage proof

* persist relay state proof and make pub super to expose to runtime

* use sp trie StorageProof instead of sp state machine Storage Proof

* fmt
parent c5d68877
No related merge requests found
......@@ -310,7 +310,7 @@ pub mod pallet {
let relay_state_proof = RelayChainStateProof::new(
T::SelfParaId::get(),
vfp.relay_parent_storage_root,
relay_chain_state,
relay_chain_state.clone(),
)
.expect("Invalid relay chain state proof");
......@@ -352,6 +352,7 @@ pub mod pallet {
.expect("Invalid messaging state in relay chain state proof");
<ValidationData<T>>::put(&vfp);
<RelayStateProof<T>>::put(relay_chain_state);
<RelevantMessagingState<T>>::put(relevant_messaging_state.clone());
<HostConfiguration<T>>::put(host_config);
......@@ -484,6 +485,16 @@ pub mod pallet {
pub(super) type UpgradeRestrictionSignal<T: Config> =
StorageValue<_, Option<relay_chain::v2::UpgradeRestriction>, ValueQuery>;
/// The state proof for the last relay parent block.
///
/// This field is meant to be updated each block with the validation data inherent. Therefore,
/// before processing of the inherent, e.g. in `on_initialize` this data may be stale.
///
/// This data is also absent from the genesis.
#[pallet::storage]
#[pallet::getter(fn relay_state_proof)]
pub(super) type RelayStateProof<T: Config> = StorageValue<_, sp_trie::StorageProof>;
/// The snapshot of some state related to messaging relevant to the current parachain as per
/// the relay parent.
///
......
......@@ -93,6 +93,9 @@ async fn collect_relay_storage_proof(
.unwrap_or_default();
let mut relevant_keys = Vec::new();
relevant_keys.push(relay_well_known_keys::CURRENT_BLOCK_RANDOMNESS.to_vec());
relevant_keys.push(relay_well_known_keys::ONE_EPOCH_AGO_RANDOMNESS.to_vec());
relevant_keys.push(relay_well_known_keys::TWO_EPOCHS_AGO_RANDOMNESS.to_vec());
relevant_keys.push(relay_well_known_keys::CURRENT_SLOT.to_vec());
relevant_keys.push(relay_well_known_keys::ACTIVE_CONFIG.to_vec());
relevant_keys.push(relay_well_known_keys::dmq_mqc_head(para_id));
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment