Expand description

Collator Selection pallet.

A pallet to manage collators in a parachain.

Overview

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.

Terminology

  • Collator: A parachain block producer.
  • Bond: An amount of Balance reserved for candidate registration.
  • Invulnerable: An account guaranteed to be in the collator set.

Implementation

The final Collators are aggregated from two individual lists:

  1. Invulnerables: a set of collators appointed by governance. These accounts will always be collators.
  2. 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 manner.

Candidates will not be allowed to get kicked or leave_intent if the total number of candidates fall below MinCandidates. This is for potential disaster recovery scenarios.

Rewards

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.

Re-exports

pub use pallet::*;

Modules

The module that hosts all the FRAME types needed to add this pallet to a runtime.