Run a Collator on Moonbeam¶
Collators are members of the network that maintain the parachains they take part in. They run a full node (for both their particular parachain and the relay chain), and they produce the state transition proof for relay chain validators.
With the release of Moonbase Alpha v6, users can spin up not only full nodes but they can also activate the
collate feature and participate in the ecosystem as collators.
This guide will take you through the steps of spinning up your collator node, which is an extension of a full node.
From a technical perspective, collators must meet the following requirements:
- Have a full node running with the collation options. To do so, follow this tutorial considering the specific code snippets for collators
- Enable the telemetry server for your full node. To do so, follow this tutorial
Account and Staking Requirements¶
Similar to Polkadot validators, you need to create an account (although in this case, it's an H160 account) and have a nominated stake (DEV tokens) in order to collate. The slots are currently limited to , but may be increased over time.
Collators need to have a minimum of 1000 DEV to be considered eligible (become a candidate). Only the top 21 collators by nominated stake will be in the active set.
Currently, creating or importing an account in PolkadotJS via a mnemonic seed will result in a different public address if you later try to import this account to an Ethereum wallet such as MetaMask. This is because PolkadotJS uses BIP39, whereas Ethereum uses BIP32 or BIP44.
Account in PolkadotJS¶
A collator has an account associated with its collation activities. This account is used to identify him as a block producer and send the payouts from block rewards.
Currently, you have two ways of proceeding in regards having an account in PolkadotJS:
- Importing an existing (or create a new) H160 account from external wallets or services such as MetaMask and MathWallet
- Create a new H160 account with PolkadotJS
Once you have an H160 account imported to PolkadotJS, you should see it under the "Accounts" tab. Make sure you have your public address at hand (
PUBLIC_KEY), as it is needed to configure your deploy your full node with the collation options.
Become a Collator Candidate¶
Once your node is running, and in sync with the network, you become a collator candidate by following the steps below in PolkadotJS:
- Navigate to the "Developers" tab and click on "Extrinsics"
- Select the account you want associated with your collation activities
- Confirm your collator account is funded with at least 1000 DEV tokens plus some extra for transaction fees
parachainStakingpallet under the "submit the following extrinsics" menu
- Open the drop-down menu, which lists all the possible extrinsics related to staking, and select the
- Set the bond to at least 1000, which is the minimum amount to be considered a collator candidate. Only collator bond counts for this check. Additional nominations do not count
- Submit the transaction. Follow the wizard and sign the transaction using the password you set for the account
Function names and the minimum bond requirement are subject to change in future releases.
As mentioned before, only the top 21 collators by nominated stake will be in the active set.
Similar to Polkadot's
chill() function, to leave the collator's candidate pool, follow the same steps as before but select the
leaveCandidates() function in step 5.
The following table presents some of the timings in regards to different actions related to collation activities:
|Join/leave collator candidates||2||4|
|Rewards payouts (after current round)||2||4|
The values presented in the previous table are subject to change in future releases.
We Want to Hear From You¶
If you have any feedback regarding running a collator or any other Moonbeam related topic, feel free to reach out through our official development Discord server.