Mainnet and Testnet:
How Blockchain Development Moves Forward Without Breaking
Facebook’s mantra “Move fast and break things” had been one of the foundational principles across product teams for more than a decade. Yet, it might need some revision as Web3 tech stack attracts more and more developers.
Usually, developers have separated copies of the system: one for the real users (production environment) and another one for test purposes. For example, when they need to make an important update, improvement, or bug fix, in order to make sure that it would work as intended, no hidden side effects will emerge, and the system’s security won’t be compromised they first update the test version. If anything happens, real users won’t be affected.
Also, even if any error that could lead to a malfunction had been missed during the test and made its way to the production environment, there’s always a backup option — just rollback all recent updates to the previous stable version of the application.
Noticed the problem? Everything on blockchain is immutable — you can’t just roll back the whole network, that would mean reversing all the transactions for the time period and revoking miners’ rewards (and that’s not all). As the decetnralized network participants are independent and have their own will, they might not want to do that, not just in case of some bug, but even if the update is actually intended to improve the protocol (out of stubbornness, or they might think that this particular update would somehow reduce their income — it is not the case here).
So how do you test new updates and ideas, search for bugs and vulnerabilities with an irreversible network of independent agents? Well, the same way you do with any other system you recreate its copy, including the independent agents part — the public testnet. This might seem a straightforward answer, but it’s actually quite smart, since testnets serve many things and help achieve a lot of goals.
In addition to testing existing functionality and any potential protocol improvements, testnets are used to:
- test hypotheses for new incentive mechanisms;
- imitate malicious behaviour that could compromise network security;
- orchestrate / soft launch any major changes for the main network.
Sometimes testnet and mainnet could switch roles — right now Ethereum is planning the Merge, a major move from PoW to PoS, which includes merging with one of its testbetworks in order to make a smooth, frictionless transition.
What’s more, the existence of a public testnet allows other developers to work on the network and test their dApps without burning real money. In case of Ethereum testing even a couple of smart contracts could eat up a lot of gas while being tested and optimised. Testnet allows developers to safely polish dApps and try out their wildest ideas.
Web3 is a community effort, for the new projects launching mainnet before mainnet means shaping the new network together with the developers, miners, validators, and end users.
Super Protocol team is excited to announce that the testnet is coming soon and everyone willing to taste how the future of decentralized confidential computing would look like is invited!