Neo has released the N3 RC4 codebase and node update, adding new features and optimizations over the previous build. RC4 is the first N3 release designated as a Formal TestNet candidate. This means it is the first to include all essential MainNet functionality.

The RC3 node release included most of the functionality in the N3 stack, including the Oracle system, NeoFS, and voting. Despite this, inefficiencies in the VM and bugs across other components prevented RC3 from reaching a suitable state for the Formal TestNet and MainNet.

RC4 includes fixes for edge case issues and potential attack vectors in the VM, such as those where malicious contracts could waste a disproportionate amount of node resources for the amount of GAS paid. Another notable update is the addition of a new syscall for retrieving a random number in smart contracts.

Though the random number implementation is not yet fully complete, pending the use of BLS for improved security, this functionality already provides a useful tool for many kinds of applications. Examples include on-chain games, DeFi, betting, and others.

An RC4 TestNet will be set up on July 21. Over the following weeks, Neo will onboard the additional roles required for the network’s operation, including initial council members, NeoFS nodes, and Oracle nodes. During this time, testing for governance operations, token migration, and initial dApp deployments will each help evaluate the platform’s readiness for the real world.

If proven stable, RC4 will be re-published as the Neo N3 codebase, and the RC4 network will become the Formal TestNet. Should further changes be required, the codebase will move to RC5 and the process will repeat. Subsequent announcements from NGD will detail the plans for the N3 MainNet genesis block and migration.

The core node release for RC4 can be found here. Users that already operate nodes on the RC3 network should be aware that the network magic number has been changed for RC4. This will necessitate a change in the configuration file when updating an existing node.

The original announcement may be read at the following link: