EOSIO 2.1 now producing blocks on EOS Mainnet
The journey to upgrade the underlying base software of the EOS blockchain is a long one. EOSIO 2.1 was first revealed by Block.one in December 2020, and after refinements and testing EOS Nation has deployed it on EOS Mainnet in May 2021. Let’s explore what transpired, and and what’s left to do:
Background
EOSIO is open source software that runs the EOS blockchain. It’s also used on other chains such as WAX and Ultra. Network Operators (like EOS Nation) and Developers run this software on either their own hardware or or in the cloud to produce blocks, share blocks over peer-to-peer networks (P2P) and/or interact with the blockchain application programming interface (API).
When a new version of the software is released, the goal is to add some new features while not breaking anything already being used. This involves a lot of testing, which includes using (and sometimes breaking) public testnets like Jungle.
Up to now
For EOSIO 2.1, Block.one made 3 release candidates available: rc1 on December 15, rc2 on December 31, and rc3 on February 17 before the final release on May 20. Each of these releases addressed issues found in 2.1 and included improvements that were in parallel going live on EOSIO 2.0.x.
For each of these releases, in order to gain confidence that the new release doesn’t break anything, EOS Nation uses a variety of testing strategies. Some tests involve making the software publicly available on test networks, first on an API endpoint and then later updating the block producer node.
When a critical issue is found, then the remaining testing stops. For example, rc1 had several issues and was not widely used.
Once the testnet seems to be working properly with the new software, then some non-critical nodes on EOS Mainnet are upgraded (such as the nodes that are used for internal reporting).
Only once the final release is available and has been tested does the EOS Nation Block Production node get upgraded. This has been done, and EOS Nation is producing blocks using EOSIO 2.1.
What does this mean for the average user? Well nothing really: blocks produced by EOSIO 2.0 and EOSIO 2.1 look the same.
From an operational point of view, one of the features that EOS Nation is using right away is the ability to control how much history EOSIO keeps. For many nodes, like the block producer node, they don’t need to keep any history – and with EOSIO 2.1 it can be automatically trimmed, saving on disk space and the need to manually remove the old blocks.
Next steps
While EOS Nation has upgraded the public API, public P2P and Block Producer nodes to EOSIO 2.1, not all EOS Nation nodes are upgraded: our reporting and history solutions still need to be upgraded to the new release. This will take a few months to adopt the software and perform the upgrades.
One question that comes up often is “when will the upgrade be completed?” The answer is, “it takes a long time.” EOS Nation has many nodes using EOSIO that need to be upgraded. But every other user (not just block producers) on the network will need to run through steps to do their own upgrade as well. Past experience tells us it will take 6 months or so for everyone to upgrade.
Once all nodes are on EOSIO 2.1, then the blockchain can itself be upgraded to use 2.1 features. The main feature in this release is Key Value Tables. Key Value Tables offer a more flexible, simplified way for developers to create and search on-chain tables. Developers can also modify the table structure after it has been created, which is currently impossible with multi-index tables.
The full release notes are available at https://github.com/EOSIO/eos/releases/tag/v2.1.0.