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 collators would fall below MinEligibleCollators. This is to ensure that some collators will always exist, i.e. someone is eligible to produce a block.

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

Modules

  • A module that is responsible for migration of storage for Collator Selection.
  • The pallet module in each FRAME pallet hosts the most important items needed to construct this pallet.