Every month, the Multichain continues to grow. There are now 12 open pull requests that add support for new chains. Although not all of these chains will necessarily make it into RenVM proper, the support from the wider community to build up the capabilities of the Multichain has been awesome. Since the last update, we have merged support for Fantom, canopy upgrades on Zcash, upgrades for Acala, Filecoin, and more.
This month, we also deployed the Multichain to a staging testnet environment. A staging environment is used for preparing changes before making them available to production-ready systems; it is a final testing environment. Soon, we will deploy staging mainnet environments and production testnet environments. These APIs give RenVM, but also third-party developers, access to an array of different blockchain nodes.
Since the launch of mainnet, the development team has been hard at work preparing the next release of RenVM. Phase sub-zero has taught us lots, and the next release should be the last major release before we begin to progress to the next phase of decentralisation. It contains a number of improvements, but its core focus is on supporting new assets and chains.
This month, we achieved several goals to this end:
- Finalised the new transaction engine. This engine will be capable of supporting any chain that is supported by the Multichain with zero changes. This is a huge technical achievement, as it will allow much faster adoption of new chains; only governance will be required to accept new chains, no explicit code changes will be needed.
- Deployed this new release to a staging testnet environment with an automated continuous testing framework. This allows us to continuously run a suite of tests against the new release, ensuring that we find as many bugs as possible.
- Demonstrated DOGE, FIL, and LUNA being sent to/from Ethereum.
- Demonstrated BTC, DOGE, FIL, LUNA, BCH, and ZEC being sent to/from Binance Smart Chain.
Our goals for the coming month are to demonstrate interoperability with Acala and Solana, and to continue testing and reviewing all of the work that has gone into this new release.
N-version programming refers to the practice of implementing multiple instances of the same software using different people, programming languages, tools, and so on. The idea is that multiple instances of the same software, built in varying ways, are unlikely to all have the same bugs. If all of the instances work together without issue, you can be more confident that all instances are working as expected. Furthermore, if everyone is running different instances of the same software, then one bug is unlikely to take everyone down.
To this end, this month, the development team took the first steps towards building another instance of RenVM using the Rust programming language. It is still early days, and it will be a long time before this version is ready to be deployed to staging environments, but it marks the beginning of something very important for the Ren project: diversity of implementation. This will improve the stability and reliability of RenVM, make it less vulnerable to accidental bugs, and help improve documentation/specifications.