Nebulas Voyager Mainnet Upgrade to Proceed on March 30th — Public Node Applications to Open on April 6th Nebulas Follow Mar 26 · 4 min read

The third-generation of the Nebulas mainnet, entitled Nebulas Voyager will be upgraded as planned on March 30th. Prior to release, an internal review by the development team identified some issues that need to be addressed prior to the public release of the node application platform and as a result will delay the release of the community pledging and node voting system until April 6th.

The greatest feature of Nebulas Voyager is the Proof of Devotion (PoD) mechanism which marks the beginning of Nebulas’ novel consensus mechanism. The release of PoD will mark the decentralization of the network while taking an important step towards building a transparent, open and jointly built community governance environment.

The final mainnet network upgrade is underway this week where existing smart contracts need to be updated to properly operate on the new mainnet. This includes the upgrade of voting contracts as well as the contract management authority for the NAX asset. During the upgrade process, a problem was encountered that would cause the NAX smart contract to become unupgradable for future improvements.

Problem Review

During the process of the mainnet upgrade to the NAX smart contract, the initial configuration improperly set the management rights resulting in the loss of contract management via multi-signature transactions. Although this will not affect the current NAX asset security, distribution, data, etc…, it would lead to the NAX smart contract to become unupgradable in the future.

Example Smart Contract misconfigured hash: https://explorer.nebulas.io/#/tx/e2a3279f06c5f93871381f8ad5cc09cfe4bf02730a928dff0442ee7ffdea3614

Hash configured correctly but not linked: https://explorer.nebulas.io/#/tx/47e5cccc2424bcb2660ca79151082f9d3a1dced378a35b35d57913ffa37d2515

Once the error was found, the Nebulas Foundation organized an internal emergency meeting to discuss the solution. Although the loss of the multi-signature management authority would not have any impact at this time but given the importance of the NAX asset in the Nebulas governance ecosystem, there will inevitably be a required upgrade to the NAX smart contract in the future. The Foundation has decided to take the following steps to address the issue of the NAX smart contract prior to the release of PoD on the mainnet.

Solution

In order to avoid a large-scale impact on users and to avoid the possibility of resetting all NAX smart contracts in the future, the smart contract’s “read content” is required to be changed into the contract management authority address for the mainnet where the associated key and value pair in the multi-signature contract is _coSigners in the preset block height after the mainnet upgrade via a hard-coded method which will result in a guarantee that temporary management authority for the NAX smart contracts remain. At the same time, the corresponding smart contract management authority address will also be synchronously modified after the mainnet is upgraded. This is to ensure that the contract management authority address continues to keep the proper management authority to the NAX smart contracts after a preset block height is invalidated.

Methods StorageGetFunc (See Github)

This upgrade has no impact on user assets and no user intervention is required. After the upgrade and modifications are complete, there is no impact on the asset distribution, data, and security of NAX. In the future, the NAX smart contract upgrade will be maintained with management authority based on the needs of the Nebulas ecosystem development and if needed, node governance voting approves a NAX smart contract upgrade.

Github: https://github.com/nebulasio/go-nebulas/blob/master/nf/nvm/storage.go

Follow-up Plan

The repair and mainnet code upgrade is planned to be completed this week keeping the original Nebulas Voyager release date unchanged on March 30th. All exchange, wallets, and testnet nodes can update code and synchronize data immediately after the main network is upgraded.

However, in order to guarantee the stability and security of the mainnet and to allow sufficient time for exchanges, wallet providers, and node participants to complete the synchronization and upgrade process, the public release of the node.nebulas.io platform which was originally scheduled to open on March 30th will be postponed to April 6th. The pledging of NAS and community NAX voting for nodes will also be postponed to April 6th.

After the upgrade of the mainnet is complete and in order to ensure the safety of assets, the management of NAX will be further optimized which includes:

Upgrading the verification logic and enhancing the verification of security;

Upgrade and optimize existing multi-signature schemes;

Enable the Nebulas Name Server (NS). Nebulas NS will be an implementation of the NAS ID authentication service allowing the use of an alias in the distributed network to further secure isolation.

We thank everyone in the community for their patience and understanding of this short delay. We’re excited to share Nebulas Voyager with the entire blockchain community!