(8/7/2020) NOTE: Recent news from Input-Output Global has made some of the information in this post obsolete. Please click here for the updated information.
In part one of this series we discussed the five day length of epochs in Shelley mainnet and the implications that has for the start of block production by stakepools and the timeline for rewards to show up in stakers’ accounts. This is a critically important bit of information to digest, so if you haven’t already, please be sure to read that post from yesterday carefully.
Today. we’re going to take a look at what it means for the Shelley mainnet that it transitioned from a federated set of block producing nodes to a set of decentralized stakepools and how that transition is being handled by Input-Output Global (IOG). Another important difference between the incentivized testnet (ITN) and Shelley mainnet is the fact that the ITN began from scratch as a blockchain built by stakepools while the Shelley mainnet is the evolution of a blockchain that began in 2017 with a set of federated block-producing nodes operated by IOG (formerly IOHK). This initial federated era was known as the Byron-era using the IOG nomenclature. On July 29th, 2020 the Byron-era ended and the Shelley-era began. Of course, the Shelley-era is marked by the beginning of the shift away from IOG-operated nodes to a community-operated Proof-of-Stake system consisting of ada holders who choose to stake and Cardano community members who choose to operate stakepools as the new block-producers.
This switch from the Byron-era to the Shelley-era means there needs to be a hand-off from the IOG-operated Byron nodes to the decentralized stakepools that will takeover in the Shelley-era. This hand-off does not happen with the simple binary flip of a switch from Shelley-off to Shelley-on. As you might imagine, trying to shift the entire blockchain from one type of block production to a completely new type of block production would be incredibly risky if done in one fell swoop. No, maintaining the stability of mainnet is absolutely critical. Just imagine a relay race that you’ve watched in the Olympics. The hand-off of the baton from the first runner to the second runner is a big part of running that race well. If one runner messes up and drops the baton, it can ruin the entire race for that team. The same holds true with Shelley mainnet. The Byron-era nodes have to hand-off block production to the Shelley-era stakepools, and this “baton pass” so-to-speak has to be done flawlessly.
The end of the first epoch of the Shelley era comes today. It soon will have been five full days since the start of Shelley on July 29th. Although we are technically in the Shelley era, not a single block has yet been produced by stakepools. In fact, there will be no blocks made by stakepools for yet five more days until the start of epoch 3 (epoch 2 if you started counting epochs with 0 on July 29th). If you read yesterday’s post, you now understand the important reasons why stakepools are not yet able to produce blocks and why epoch 3 is the first epoch in which that can happen. So, yes, the Byron-era nodes are still producing 100% of the blocks for the first two epochs of the Shelley-era. This is the first part of the baton hand-off.
The second part of the baton handoff from Byron-era block producers to the Shelley-era stakepools begins in epoch 3 (again, epoch 2 if you started counting from zero). Epoch 3 is the first epoch in which stakepools that received staking delegations from ada holders in epoch 1 will be eligible to produce blocks. Please refer to the figure “the delegation cycle” from yesterday’s post for a visual representation of the first five epochs of the Shelley-era. As I mentioned just previously, the switch from the Byron-era nodes to the Shelley-era stakepools does not happen completely at the beginning of epoch 3. No, this would be far too risky. IOG has come up with a way to perform the baton hand-off that doesn’t require that risky binary switch flip from the old era’s nodes to the new era’s nodes.
The switchover in block production will occur using what has been called a decentralization parameter, often called “d”. At the moment where we are now, in epoch 1 of the Shelley-era, d is set to 1. With a d=1 value, all the blocks are made by Byron-era nodes. Normally, I would think d=1 would mean decentralization is at 100%, but the sense of it is reversed. So, d=1 means 100% of blocks forged by Byron-era nodes while d=0 means 100% of blocks forged by Shelley-era stakepools. The current plan is that in epoch 3, when stakepools are first eligible to produce blocks, that decentralization parameter will drop to 0.9. So, the current expectation is that we will have d=0.9 in epoch 3, unless IOG decides to change its plans. This means that stakepools will only have the ability to produce 10% of the blocks in epoch 3. If everything goes well, then IOG will gradually reduce the d parameter over the next weeks and months until we achieve full decentralization with d=0. There is no publicly known schedule for d to go from 1 to zero. It’s a parameter that will be adjusted as Shelley performance is observed and measured through these initial epochs. In the ITN, of course, d=0 from day one of the testnet. So, all the blocks were produced by stakepools right from the very beginning. This is not the case with Shelley mainnet.
While this post has been quite technical, understanding the decentralization parameter is important for ada stakers. With only 10% of blocks being produced by stakepools in epoch 3 (starting August 8), this means that there will be a lot of pools with significant amounts of staked ada (millions of ada) that will NOT produce a block in epoch 3. This does not indicate that there are any problems with the pool. Only the pools with the very highest amount of stake (multiple millions of ada) will be likely to get awarded a chance to produce a block during the epochs where d=0.9. Hopefully, things will go well and and d will drop quickly to allow an opportunity for more pools to participate. Remember also that pools are not awarded a specific set of blocks to produce in an epoch. They are rather awarded a set of leadership positions for a number of slots in the epoch. When these slots arrive in the epoch, the pool is allowed to propose a block to be added to the pool. If the chain accepts the block, the pool will receive the rewards for that block. However, the block could be rejected or another pool that was randomly awarded a leadership position for that same slot could be successful in proposing a block that is accepted instead of the block your pool produced. This latter case is called a slot-collision and it is a normal part of the Shelley protocol. We’ll discuss more about these situations in a later post.
So, here are the takeaways from today’s post. No stakepools are making blocks before epoch 3 (August 8th). Even once epoch 3 arrives, the decentralization parameter set to d=0.9 will only permit stakepools to produce 10% of the blocks. This will continue for an indefinite period of time until IOG decides to lower d. Significantly, with only 10% of the blocks to distribute to stakepools, there will be stakepools with high amounts of staked ada (100,000 – millions) that will not get a chance to produce a block. The important thing to remember is that this does not mean there is any issue with the pool’s setup or operation. The leaderships for slots are awarded randomly and proportionately to the amount of staked ada and there is no way to circumvent that aspect of the Shelley protocol.
Finally, although the IOG-operated Byron-era nodes will produce 90% of the blocks beginning in epoch 3 (the first era for which rewards will be paid — see yesterday’s post for more details on this), all of the rewards will be paid to the pools that produced the 10% of remaining blocks in epoch 3. Yes, so the IOG-operated federated nodes will not receive any of the rewards for the blocks they produce during any of the epochs in which d>0. Of course, a certain cut of the rewards goes to the treasury and IOG has also decided to run about twenty stakepools, which will receive rewards like any other stakepool.
Alright. This seems like a reasonable place to stop in our discussion of the Shelley-era. Again, these parts we are going over are important for both ada stakers and pool operators in order to set reasonable expectations for the first few epochs of the Shelley-era and to understand important differences between the ITN and Shelley mainnet.
Do you have any questions or comments? Did I get something wrong? Drop a comment or send me an email using the contact form! Also, if you found this article helpful, please consider passing it on to your friends. Thanks!