Genesis
The genesis of the blockchain is a special event and the beginning of the chain: when the first block is created.
The first block defines which chain you want to join (following the fork chain rule).
We use a genesis file to configure it and the chain & consensus.
Genesis file
{
// Chain & Consensus config
"config": {
"chainId": 63,
"pob": {
"intSizeBits": 2048,
"durationLimit": "0x15180"// 24h
}
},
// Genesis block config
"nonce": "0x0",
"timestamp": "0x638A0925",
// RLP encoded string for consensus init
"extraData": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"transactionHashroot": "0x0",
"behaviorHashRoot": "0x0",
"gasLimit": "0x1fffffffffffff",
"difficulty": "0x1",
//recomputed at every block, to adjust time delay between block
"coinbase": "0x0000000000000000000000000000000000000000",
// Create an wallet providing its public key and balance
}
No credited accounts but reward for first block mining is high st. an entity can keep the blockchain running in case there is few or no transactions
Examples from Hyperledger Besu: https://consensys.net/blog/quorum/hyperledger-besu-how-to-create-an-ethereum-genesis-file/
Note
For a list of EVM powered networks and their chainId
, please visit https://chainlist.org/