Swamp Bottom

From Consensus Paper
Jump to navigation Jump to search
Kulupu
Blockchain
Walletpolkadot.js
NodeGithub
StatusPolkadot Telemetry
ChatDiscord, Matrix
LaunchedSeptember 2019
Swamp Bottom
Consensus upgrade
TypeEra fork
StatusEnabled at era 0 block 320,000 and era 1 block 0
PreviousSlag Ravine
NextSky Island 68
Kulupu family

Swamp Bottom is the third hard fork of the Kulupu blockchain. It's the start of the second hard fork era (era 1) of Kulupu, planned at block 320,000, estimated on 6 May, 2020.

Era switch[edit | edit source]

Swamp Bottom is an era switch. That means, it requires a stop-the-world migration. The blockchain will be paused briefly, sufficient for everyone to properly finish the migration and download the new client. At the hard fork block, era 0 block production halts with protocol rules. A fixed routine against the hard fork block and era 0 state is used for everyone to generate the new genesis block for era 1.

Procedure[edit | edit source]

  1. A new client version is released, with support of era 0 end hard fork. Node operators are asked to switch.
  2. At the hard fork block, the block production automatically pauses Clients print out a message with the content of new genesis block data.
  3. A second new client version is released (within hours after the hard fork block), incorporating the new genesis block data and runs the era 1 blockchain. Node operators are asked to switch again.
  4. The new client starts to produce new blocks when the era 1 genesis timestamp is in the past, resuming the blockchain.

Considerations[edit | edit source]

  1. The hard fork will require node operators to do two release switches. This is not ideal but it's the simplest in terms of development time.
  2. The procedure will make fork choice rule of era 0 and era 1 disconnected. This can be a philosophical issue in terms of always choosing the highest total difficulty, especially if more than one hard fork block is produced. Note that it is not a hard limitation, and it won't affect things practically. In the future, when more development time is available, it's always possible to "combine" fork choice of era 0 and era 1 again.