Kagome
Polkadot Runtime Engine in C++17
parachain_host_types.hpp File Reference
#include <scale/bitvec.hpp>
#include "common/blob.hpp"
#include "common/unused.hpp"
#include "primitives/authority_discovery_id.hpp"
#include "primitives/block_id.hpp"
#include "primitives/common.hpp"
#include "primitives/parachain_host.hpp"
Include dependency graph for parachain_host_types.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kagome::runtime::ScheduledCore
 Information about a core which is currently occupied. More...
 
struct  kagome::runtime::CandidateDescriptor
 
struct  kagome::runtime::OccupiedCore
 Information about a core which is currently occupied. More...
 
struct  kagome::runtime::PersistedValidationData
 
struct  kagome::runtime::OutboundHrmpMessage
 
struct  kagome::runtime::CandidateCommitments
 
struct  kagome::runtime::CommittedCandidateReceipt
 
struct  kagome::runtime::CandidateReceipt
 
struct  kagome::runtime::Candidate
 
struct  kagome::runtime::CandidateBacked
 
struct  kagome::runtime::CandidateIncluded
 
struct  kagome::runtime::CandidateTimedOut
 
struct  kagome::runtime::SessionInfo
 
struct  kagome::runtime::InboundDownwardMessage
 
struct  kagome::runtime::InboundHrmpMessage
 

Namespaces

 kagome::runtime
 

Typedefs

using kagome::runtime::Buffer = common::Buffer
 
using kagome::runtime::ValidatorId = primitives::parachain::ValidatorId
 
using kagome::runtime::DutyRoster = primitives::parachain::DutyRoster
 
using kagome::runtime::ParachainId = primitives::parachain::ParaId
 
using kagome::runtime::GroupIndex = uint32_t
 
using kagome::runtime::CollatorId = common::Blob< 32 >
 
using kagome::runtime::Hash = common::Hash256
 
using kagome::runtime::CollatorSignature = common::Hash256
 
using kagome::runtime::ValidationCodeHash = common::Hash256
 
using kagome::runtime::BlockNumber = primitives::BlockNumber
 
using kagome::runtime::CandidateHash = common::Hash256
 
using kagome::runtime::HeadData = Buffer
 
using kagome::runtime::GroupRotatePeriod = uint32_t
 
using kagome::runtime::UpwardMessage = Buffer
 
using kagome::runtime::ValidationCode = Buffer
 
using kagome::runtime::SessionIndex = uint32_t
 
using kagome::runtime::CoreIndex = uint32_t
 
using kagome::runtime::GroupDescriptor = std::tuple< BlockNumber, GroupRotatePeriod, BlockNumber >
 
using kagome::runtime::ValidatorGroup = std::tuple< std::vector< ValidatorId >, GroupDescriptor >
 
using kagome::runtime::CoreState = boost::variant< OccupiedCore, ScheduledCore, Unused< 2 >>
 
using kagome::runtime::CandidateEvent = boost::variant< CandidateBacked, CandidateIncluded, CandidateTimedOut >
 
using kagome::runtime::ValidatorIndex = uint32_t
 
using kagome::runtime::AssignmentId = common::Blob< 32 >
 
using kagome::runtime::DownwardMessage = Buffer
 

Enumerations

enum  kagome::runtime::OccupiedCoreAssumption { kagome::runtime::OccupiedCoreAssumption::Included, kagome::runtime::OccupiedCoreAssumption::TimedOut, kagome::runtime::OccupiedCoreAssumption::Unused }
 

Class Documentation

struct kagome::runtime::ScheduledCore

Information about a core which is currently occupied.

Definition at line 39 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::ScheduledCore:
Class Members
optional< CollatorId > collator The collator required to author the block, if any.
ParachainId para_id The ID of a para scheduled.
struct kagome::runtime::CandidateDescriptor

Definition at line 46 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::CandidateDescriptor:
Class Members
CollatorId collator The collator's sr25519 public key.
Hash erasure_root The root of a block's erasure encoding Merkle tree.
Hash para_head Hash of the para header that is being generated by this candidate.
ParachainId para_id The ID of the para this is a candidate for.
Hash persisted_validation_data_hash

The blake2-256 hash of the persisted validation data. This is extra data derived from relay-chain state which may vary based on bitfields included before the candidate. Thus it cannot be derived entirely from the relay-parent.

Hash pov_hash The blake2-256 hash of the PoV.
Hash relay_parent The hash of the relay-chain block this is executed in the context of.
CollatorSignature signature

Signature on blake2-256 of components of this receipt: The parachain index, the relay parent, the validation data hash, and the pov_hash.

ValidationCodeHash validation_code_hash The blake2-256 hash of the validation code bytes.
struct kagome::runtime::OccupiedCore

Information about a core which is currently occupied.

Definition at line 73 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::OccupiedCore:
Class Members
BitVec availability

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.

CandidateDescriptor candidate_descriptor The descriptor of the candidate occupying the core.
CandidateHash candidate_hash The hash of the candidate occupying the core.
GroupIndex group_responsible The group assigned to distribute availability pieces of this candidate.
optional< ScheduledCore > next_up_on_available

If this core is freed by availability, this is the assignment that is next up on this core, if any. None if there is nothing queued for this core.

optional< ScheduledCore > next_up_on_time_out

If this core is freed by being timed-out, this is the assignment that is next up on this core. None if there is nothing queued for this core or there is no possibility of timing out.

BlockNumber occupied_since The relay-chain block number this began occupying the core at.
BlockNumber time_out_at The relay-chain block this will time-out at, if any.
struct kagome::runtime::PersistedValidationData

Definition at line 111 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::PersistedValidationData:
Class Members
uint32_t max_pov_size The maximum legal size of a POV block, in bytes.
HeadData parent_head The parent head-data.
BlockNumber relay_parent_number The relay-chain block number this is in the context of.
Hash relay_parent_storage_root The relay-chain block storage root this is in the context of.
struct kagome::runtime::OutboundHrmpMessage

Definition at line 122 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::OutboundHrmpMessage:
Class Members
Buffer data The message payload.
ParachainId recipient The para that will get this message in its downward message queue.
struct kagome::runtime::CandidateCommitments

Definition at line 129 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::CandidateCommitments:
Class Members
HeadData head_data The head-data produced as a result of execution.
vector< OutboundHrmpMessage > horizontal_messages Horizontal messages sent by the parachain.
BlockNumber hrmp_watermark

The mark which specifies the block number up to which all inbound HRMP messages are processed.

optional< ValidationCode > new_validation_code New validation code.
uint32_t processed_downward_messages The number of messages processed from the DMQ.
vector< UpwardMessage > upward_messages Messages destined to be interpreted by the Relay chain itself.
struct kagome::runtime::CommittedCandidateReceipt

Definition at line 145 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::CommittedCandidateReceipt:
Class Members
CandidateCommitments commitments The commitments of the candidate receipt.
CandidateDescriptor descriptor The descriptor of the candidate.
struct kagome::runtime::CandidateReceipt

Definition at line 152 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::CandidateReceipt:
Class Members
Hash commitments_hash

The hash of the encoded commitments made as a result of candidate execution.

CandidateDescriptor descriptor The descriptor of the candidate.
struct kagome::runtime::SessionInfo

Definition at line 192 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::SessionInfo:
Class Members
vector< ValidatorIndex > active_validator_indices

All the validators actively participating in parachain consensus. Indices are into the broader validator set.

vector< AssignmentId > assignment_keys

The assignment keys for validators.

NOTE: There might be more authorities in the current session, than validators participating in parachain consensus. See max_validators.

Therefore:

1  assignment_keys.len() == validators.len() && validators.len() <=
2 discovery_keys.len()
vector< AuthorityDiscoveryId > discovery_keys

Validators' authority discovery keys for the session in canonical ordering.

NOTE: The first validators.len() entries will match the corresponding validators in validators, afterwards any remaining authorities can be found. This is any authorities not participating in parachain consensus

SessionIndex dispute_period The amount of sessions to keep for disputes.
uint32_t n_cores

The number of availability cores used by the protocol during this session.

uint32_t n_delay_tranches The number of delay tranches in total.
uint32_t needed_approvals The number of validators needed to approve a block.
uint32_t no_show_slots

How many slots (BABE / SASSAFRAS) must pass before an assignment is considered a no-show.

Blob< 32 > random_seed A secure random seed for the session, gathered from BABE.
uint32_t relay_vrf_modulo_samples The number of samples we do of relay_vrf_modulo.
vector< vector< ValidatorIndex > > validator_groups

Validators in shuffled ordering - these are the validator groups as produced by the Scheduler module for the session and are typically referred to by GroupIndex.

vector< ValidatorId > validators

Validators in canonical ordering.

NOTE: There might be more authorities in the current session, than validators participating in parachain consensus. See max_validators.

SessionInfo::validators will be limited to to max_validators when set.

uint32_t zeroth_delay_tranche_width The zeroth delay tranche width.
struct kagome::runtime::InboundDownwardMessage

Definition at line 254 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::InboundDownwardMessage:
Class Members
DownwardMessage msg The actual downward message to processes.
BlockNumber sent_at

The block number at which these messages were put into the downward message queue.

struct kagome::runtime::InboundHrmpMessage

Definition at line 262 of file parachain_host_types.hpp.

Collaboration diagram for kagome::runtime::InboundHrmpMessage:
Class Members
Buffer data The message payload.
BlockNumber sent_at

The block number at which this message was sent. Specifically, it is the block number at which the candidate that sends this message was enacted.