DEVELOPERS / 02
Inside the
implementation.
A shared protocol, implemented through independent runtimes. Start with the Rust layering, then compare the sibling designs.
Rules and execution
The Rust client separates primitives and chain specification from the EVM and block executor. XDC behavior is integrated with revm through protocol-specific hooks.
| Layer | Rust modules |
|---|---|
| Types and rules | xone-primitives · xone-chainspec |
| Execution and state | xone-evm · xone-executor · xone-state |
| Consensus and signing | xone-consensus · xone-signer |
| Network and synchronization | xone-net · xone-snap · xone-sync |
| Node services and storage | xone-db · xone-node · xone-builder · xone-rpc |
Consensus and state publication
XDPoS V1 and V2 rules interact with canonical state, historical reads, and signing. Storage publication and signer safety have explicit architectural decision records.
Conformance is the shared boundary
The Rust fork table is generated from a pinned geth-XDC oracle. Oracle comparison requires access to the pinned source; local parse tests do not replace that check. Replay records specify the ranges and modes actually exercised.
Independent implementations
C++ uses a native interpreter and libmdbx. Python uses a py-evm adapter and SQLite WAL. TypeScript uses an EthereumJS adapter and SQLite. Runtime and storage choices are different; agreement on protocol behavior remains the objective.
Reviewed 14 November 2026. Repository guides hold the current implementation details.
KEEP THE CURIOSITY GOING