Continuing a discussion from BCH Devs & Builders with @emergent_reasons, @cculianu, @fpelliccioni, and @Jonas:
Should we deploy Cash Improvement Proposals (CHIPs) to testnet before they are deployed on mainnet?
This would:
- Ensure all proposals are thoroughly and publicly reviewed, integrated, and tested (including deployment procedures) in an environment where most large ecosystem actors are likely to encounter any eventual issues they will need to address in their own software. Testnet is nearly as adversarial as mainnet, so defects are more likely to be identified prior to mainnet deployment.
- Enable user experimentation with new features – experimenting with new features can require significant time and resources. On testnet, developers can often use existing infrastructure to test their applications, reducing costs and enabling wider integration tests. New features can often even be tested by end users without significant technical expertise.
- Strengthen testnet infrastructure – BCH itself is cheap to send, and these days, many developers simply test their contracts on mainnet. Testnet support has fallen behind: many block explorers no longer support BCH testnet, testnet faucets are commonly empty, and few wallets maintain testnet support. By giving developers a strong reason to use testnet, we ensure testnet infrastructure gets used and maintained.
- Improve business certainty around upgrades – Testnet deployment would offer a strong Schelling point for any particular upgrade: if it’s not already live on testnet, it’s not going to suddenly happen on mainnet. Testnet forks are also relatively low-impact and less likely to be complicated by “fork markets” and other possible conflicts of interest. If meaningful technical disagreement exists, that disagreement will be very visible long before it can hurt end users, giving businesses plenty of planning time. (Coupled with sufficient prediction markets, this could practically eliminate upgrade-related business uncertainty.)
- Stronger mainnet launches – With improved certainty of deployment and easier access to testing infrastructure, developers are more likely to commit resources to development which uses the new upgrade before it is deployed on mainnet. By the time an upgrade is deployed to mainnet, more downstream applications are likely to be production-ready, making network upgrades more exciting and valuable for users and businesses.
To do this, we would probably want each CHIP to specify two different activation times in its Deployment section, one for testnet (either November or May), and one for mainnet (typically May).
Some questions:
- Can
CHIP 2021-03 Bigger Script Integers
andCHIP 2021-02 Add Native Introspection Opcodes
be deployed to testnet this November? - Which testnet(s)?
- Would this also be a good time for node implementations to encourage a switch to Testnet4?