Complete Guide to Baking Blocks on the Concordium Mainnet
Concordium’s enterprise-grade blockchain platform is now live on mainnet, offering another way for validators to earn crypto rewards. After four successful iterations on testnet, Concordium’s baker program is now ready to start paying out real block rewards to bakers on its Proof-of-Stake network.
Concordium has emerged as one of the promising contenders in the enterprise blockchain segment. It uses an innovative hybrid on-and-off chain identity process to balance the desire for user privacy and corporate confidentiality against compliance obligations. The project is led by a team with stellar business and academic credentials, with executive-level connections to companies including IKEA, Maersk, Volvo, Saxo Bank, Skype, and others.
While the development roadmap is still ongoing, the mainnet launch marks the biggest milestone in Concordium’s roadmap to date. Furthermore, it enables the platform’s PoS consensus. So, keep reading to find out how to become a baker on the Concordium network.
Before Getting Started
There are a couple of things you’ll need in advance of being able to start baking on Concordium. You’ll need an account on the network with enough GTU to serve as your stake. You should also already have a node set up and running the Concordium mainnet software.
You should also familiarize yourself with some of the terms and definitions used on the Concordium network.
Nodes on the Concordium network receive blocks and transactions and keep track of the state of the blockchain at any given moment. Nodes that participate in block validation are called bakers, while the rest are called passive nodes. To become block validators, bakers must obtain a set of baker cryptographic keys, which they use to sign their validated blocks.
Concordium uses the concepts of staking and lotteries to determine who gets to validate any given block. All bakers must stake GTU to participate; however, the higher the stake, the greater the chance of winning the lottery used to select the next block baker.
The time it takes to validate each block and add it to the blockchain is called a slot. Time on Concordium is also divided into epochs, a period in which the group of bakers participating in slot lotteries, and their respective stakes, is fixed.
When a new baker joins the network, they generally have to wait for two epochs after the one in which they joined before they can start baking.
Create Your Baker Account
Once you’re ready to start, the first step is to import your Concordium account to the Concordium client on your node. To do this, you need to export a copy of your account from the Concordium app by selecting “More” and then “Export.”
You’ll receive a JSON file with your account data which you can then import to the toolchain run using the following command:
$concordium-client config account import <path/to/exported/file> –name bakerAccount
You’ll be prompted to create a password, which will be used to decrypt the exported account file and import your Concordium account to the node. It’s also used to encrypt the transaction signing keys and the encrypted transfers key.
Stake GTU and Generate Keys
When registering a baker, each account is provided with a unique baker ID by the network. The node must receive this file inside a baker keys file to use the baker keys to bake blocks. The client will automatically fill this field when you start the process of generating keys.
To generate your keys, run the following:
$concordium-client baker generate-keys <keys-file>.json
You can choose your own name for the keys file. To register the keys, you need to use your node to send a baker_add transaction to the network:
$concordium-client baker add <keys-file>.json –sender bakerAccount –stake <amountToStake> –out <concordium-data-dir>/baker-credentials.json
where:
– <amountToStake> is the number of GTU you are placing as an initial stake
– <concordium-data-dir> should be replaced with the following data directory:
-
- on Linux and MacOS: ~/.local/share/concordium
- on Windows: %LOCALAPPDATA%\\concordium.
The output file name should be left as baker-credentials.json.
You also have the option here to decide how you want your GTU block rewards to be treated. If you do nothing, your GTU earnings will be “restocked,” i.e., they’ll be added to your initial stake. If you prefer your GTU be deposited in your Concordium account, so they’re freely disposable, you can change the restake flag with the following command:
$concordium-client baker update-restake False –sender bakerAccount
If you later decide you do want to restake your earnings, then you can change the flag:
$concordium-client baker update-restake True –sender bakerAccount
You’re Now a Baker
That’s it! Assuming you made it this far, within two epochs, you’re ready to start baking blocks on the Concordium network and earning GTU rewards. You can check your status either in the network dashboard or within the Concordium client. The client will also show the staked amounts of all current bakers, which should give you an indicator of your relative chances of winning any given lottery to validate a block. If you think your chances are too low, you can also increase your staked amount by running the command:
$concordium-client baker update-stake –stake <newAmount> –sender bakerAccount
Within two epochs, your new stake will take effect.