mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-09 22:17:29 +00:00
a30092ab42
* Add markdown linting - add linter default rules - adapt rules to current code - fix the code for linting to pass - add CI check fix #1243 * Fix markdown for Substrate * Fix tooling install * Fix workflow * Add documentation * Remove trailing spaces * Update .github/.markdownlint.yaml Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix mangled markdown/lists * Fix captalization issues on known words
2.0 KiB
2.0 KiB
DMP Pallet
A module responsible for Downward Message Processing (DMP). See Messaging Overview for more details.
Storage
Storage layout required for implementation of DMP.
/// The downward messages addressed for a certain para.
DownwardMessageQueues: map ParaId => Vec<InboundDownwardMessage>;
/// A mapping that stores the downward message queue MQC head for each para.
///
/// Each link in this chain has a form:
/// `(prev_head, B, H(M))`, where
/// - `prev_head`: is the previous head hash or zero if none.
/// - `B`: is the relay-chain block number in which a message was appended.
/// - `H(M)`: is the hash of the message being appended.
DownwardMessageQueueHeads: map ParaId => Hash;
Initialization
No initialization routine runs for this module.
Routines
Candidate Acceptance Function:
check_processed_downward_messages(P: ParaId, relay_parent_number: BlockNumber, processed_downward_messages: u32):- Checks that
processed_downward_messagesis at least 1 ifDownwardMessageQueuesforPis not empty at the givenrelay_parent_number. - Checks that
DownwardMessageQueuesforPis at leastprocessed_downward_messageslong.
- Checks that
Candidate Enactment:
prune_dmq(P: ParaId, processed_downward_messages: u32):- Remove the first
processed_downward_messagesfrom theDownwardMessageQueuesofP.
- Remove the first
Utility routines.
queue_downward_message(P: ParaId, M: DownwardMessage): 1. Check if the size of M exceeds the
config.max_downward_message_size. If so, return an error. 1. Wrap M into InboundDownwardMessage using the
current block number for sent_at. 1. Obtain a new MQC link for the resulting InboundDownwardMessage and replace
DownwardMessageQueueHeads for P with the resulting hash. 1. Add the resulting InboundDownwardMessage into
DownwardMessageQueues for P.
Session Change
- For each
Pinoutgoing_paras(generated byParas::on_new_session):- Remove all
DownwardMessageQueuesofP. - Remove
DownwardMessageQueueHeadsforP.
- Remove all