Page cover

From Byron to Shelley

You don't want to stay in the Byron era forever, right? Of course not. Then move on to the Shelley era, but before you can do that you need to go to protocol version 1.0.0 (Ouroboros BFT). This was referred to as the Byron Reboot and was the only real hard fork in the traditional sense.

Upgrading to Ouroboros BFT

Update your scripts that run the nodes to include Shelley keys.

Create, submit, and vote on an update proposal:

cardano-cli byron governance create-update-proposal \
--filepath transactions/updateprotov1.proposal \
--testnet-magic 42 \
--signing-key bft0/byron.000.key \
--protocol-version-major "1" \
--protocol-version-minor "0" \
--protocol-version-alt "0" \
--application-name "cardano-sl" \
--software-version-num "1" \
--system-tag "linux" \
--installer-hash 0

Submit the update proposal:

cardano-cli byron submit-update-proposal \
--testnet-magic 42 \
--filepath transactions/updateprotov1.proposal

Monitor the log files from the node, you should see:

Now create the votes for both of your genesis keys:

Submit the first vote:

You should see UpdateActive:

Create and submit the second vote:

This vote completes the vote threshold; the update proposal is confirmed:

It's time to endorse the proposal. Update your config file to indicate that you are ready to move to protocol LastKnownBlockVersion-Major: 1,

IMPORTANT: You need to restart the nodes to pick up the new configuration.

As soon as you restart the second node and produce a block with it, the update proposal will receive the required endorsements. It becomes a candidate, and the epochNo is set at which the transition will take place if it becomes a stable candidate.

2k slots later, it becomes a stable candidate.

The update proposal is adopted at the epoch transition:

The Shelley hard fork

Now you can upgrade to protocol version 2.0, the Shelley era.

First, add the Shelley keys to your BFT nodes starting scripts:

Create the update proposal:

Submit the proposal:

Create the votes:

Submit the votes:

Then, adjust the config file again to go to protocol version 2.0:

Restart the nodes to pick up the new configuration and endorse the proposal:

IMPORTANT: Take note of the epoch at which the Shelley hard fork takes place. In this case, the Shelley hard fork happened during the transition to epoch 3. The Byron epochs lasted 450 slots (10 times the security parameter k) so it happened at slot 1350. This information will be useful later, so write it down somewhere.

Last updated

Was this helpful?