R3E Network’s neox-rs has reached its first stable release, advancing the Rust-based Neo X client from pre-release evaluation to production-qualified full-node status. The latest version, v2.4.3, includes fixes for four consensus divergences from the reference client and has validated more than 7.21 million MainNet blocks with zero state-root mismatches.
The releases follow NNT’s coverage of the rc.5 pre-release, which introduced neox-rs as Neo X’s first alternative client implementation built on Paradigm’s Reth framework.
Final release candidate and TestNet validation
Version 2.4.1-rc.6, released July 23, completed full TestNet validation, executing all 9,167,856 post-genesis blocks and 317,350 transactions with zero mismatches. The release also introduced bounded catch-up, DKG hardening, and a mandatory --validator.experimental flag for public-network validator startup, formalizing the boundary between non-validator and validator operation.
First stable release
Version 2.4.1, released July 24, promoted rc.6 to stable, the project’s first non-release-candidate version. The release re-executed all 7,195,922 MainNet blocks, producing identical state roots for every block and matching receipts for all 368,040 transactions. A reproducible differential validation script, neox-full-differential.py, enables independent operators to verify Rust-to-Go parity across every canonical block, transaction, and receipt.
The release also advanced the underlying Reth baseline from commit e3823342 to 32de8f9c, hardened validator persistence handling, and improved DKG canonical replay. However, DKG round transition remained unachieved in mixed-client testing. Share calls reached the deployed seven-message verifier but consistently reverted.
Consensus divergence fixes
Version 2.4.2, released July 25, addressed four consensus divergences discovered through cross-client differential testing. Anyone running v2.4.1 was advised to upgrade immediately.
The most significant fix corrected how neox-rs handles Anti-MEV Envelope reconstruction. Neo X’s Anti-MEV system encrypts transactions into Envelopes using threshold encryption before ordering them in a block. During reconstruction, the reference client skips certain Envelopes and leaves them encrypted. neox-rs was tracking Envelope positions with a different cursor, causing it to decrypt Envelopes that the reference client skips, producing a different final transaction list and potentially diverging from the canonical chain. The fix aligns neox-rs cursor tracking with the reference client’s behavior.
A second consensus fix applied the reference client’s static pool admission rules during reconstruction and proposal verification. These rules refuse blob transactions, certain EIP-7702 authorizations, oversized transactions exceeding 128 KiB, and tips below one wei, all conditions that could cause neox-rs to accept or propose blocks the reference client would reject.
The third fix addressed a 32-bit height truncation in dBFT primary selection. The reference client stores block height as a 32-bit unsigned integer when selecting which validator may propose. Without this truncation, neox-rs would disagree on the proposer from block height 4,294,967,296 onward.
Two liveness improvements accompanied the consensus fixes. The dBFT timer now resets to one block period when a node records its own PreCommit or Commit contribution, matching the reference client’s behavior and improving recovery speed after disruptions. Additionally, authenticated dBFT messages arriving for future heights or views are now cached and replayed when the round advances, rather than being dropped, avoiding unnecessary view timeouts.
Protocol compliance and migration
Version 2.4.3, released July 26, fixed two non-consensus issues. The first enforced proper TTL bounds on blob sidecar requests. Previously, neox-rs accepted any TTL value up to 255, causing it to forward out-of-range requests that could terminate connections with reference client peers. The second applied EIP-2335 password normalization during Geth keystore migration, fixing failures for validators with non-ASCII characters or control characters in their passwords.
Validation and status
As of v2.4.3, neox-rs has re-executed all 7,214,807 MainNet blocks with zero state-root mismatches. The non-validator full-node path is now qualified for production evaluation by independent operators, upgraded from the pre-release evaluation status of the rc series.
Validator mode remains experimental. DKG share calls on a nine-client TestNet reached the deployed seven-message verifier but reverted with a CommitmentInvalid() error. No DKG round transition has been achieved in mixed-client testing. The --validator.experimental flag remains mandatory on public networks, and the security review from rc.5 continues to recommend an independent third-party audit before any MainNet validator deployment.
The full release history can be found at the link below:
https://github.com/r3e-network/neox-rs/releases