Collator Selection pallet.
A pallet to manage collators in a parachain.
The Collator Selection pallet manages the collators of a parachain. Collation is not a secure activity and this pallet does not implement any game-theoretic mechanisms to meet BFT safety assumptions of the chosen set.
- Collator: A parachain block producer.
- Bond: An amount of
Balancereserved for candidate registration.
- Invulnerable: An account guaranteed to be in the collator set.
Collators are aggregated from two individual lists:
Invulnerables: a set of collators appointed by governance. These accounts will always be collators.
Candidates: these are candidates to the collation task and may or may not be elected as a final collator.
The current implementation resolves congestion of
Candidates in a first-come-first-serve
Candidates will not be allowed to get kicked or
leave_intent if the total number of collators
would fall below
MinEligibleCollators. This is to ensure that some collators will always
exist, i.e. someone is eligible to produce a block.
The Collator Selection pallet maintains an on-chain account (the “Pot”). In each block, the collator who authored it receives:
- Half the value of the Pot.
- Half the value of the transaction fees within the block. The other half of the transaction fees are deposited into the Pot.
To initiate rewards, an ED needs to be transferred to the pot address.
Note: Eventually the Pot distribution may be modified as discussed in this issue.
pub use pallet::*;
- A module that is responsible for migration of storage for Collator Selection.
palletmodule in each FRAME pallet hosts the most important items needed to construct this pallet.