# xOne website and client gap audit

Review date: 14 November 2026.

The separate xone.sh design preview includes four clients, build guides, source links, an execution-client comparison, searchable resources, and this audit. The source audit created **22 GitHub issues** across the sibling clients. Client application code was not changed.

## Deliverables

- Private Site: https://xone-protocol.anil357668.chatgpt.site
- Engineering view: https://xone-protocol.anil357668.chatgpt.site/audit.html
- Product profile: `product-profile.md`.
- Competitor records and source pins: `competitors.json`, `competitor-evidence.json`, `clones.json`.
- New issue ledger and bodies: `gap-ledger.json`, `bodies/`.
- Existing Rust gaps: `existing-rust-gaps.json`; inherited matrix: `prior-rust-feature-matrix.md`.

## Findings and scope

Inspected all four client repositories, their manifests, docs, source modules and issue history. The Rust index contains 117 prior gap issues (113 open and 4 closed at retrieval); these were not recreated. The sibling issue index included 126 issues excluding pull requests. The new competitor roster contains 63 candidate records, 25 selected code references, and 87 path-backed evidence facts. Scores are a selection heuristic, not a speed or quality ranking.

The new issues concern in-scope debug/admin/txpool RPC, IPC transport, pending transaction events, C++ log events and gas estimation, C++ producer wiring, C++/Python fee-history rewards, and stale C++/Python onboarding documentation. C++ accepts the namespace names but lacks their dispatch handlers; Python and TypeScript reject the missing namespaces.

Runtime evidence is deliberately distinguished from source presence. In Rust, the live call, estimate and trace adapters still refuse service; the existing #324 and #42 already track these gaps. Mainnet following is not qualified in the Rust README, and mainnet block production remains gated across the family. No throughput, production-readiness or quantum-resistance claim was invented.

## Created issues

| ID | Repository | Priority | Area | Issue |
| --- | --- | --- | --- | --- |
| GAP-0118 | XDCIndia/xOneC | P1 | networking | [Expose the declared admin peer-management RPC methods](https://github.com/XDCIndia/xOneC/issues/84) |
| GAP-0119 | XDCIndia/xOneC | P1 | rpc | [Add the declared debug RPC methods and bounded transaction tracers](https://github.com/XDCIndia/xOneC/issues/85) |
| GAP-0120 | XDCIndia/xOneC | P1 | rpc | [Replace the eth_estimateGas stub with bounded EVM estimation](https://github.com/XDCIndia/xOneC/issues/86) |
| GAP-0121 | XDCIndia/xOneC | P1 | rpc | [Deliver filtered receipt-backed WebSocket logs with reorg removals](https://github.com/XDCIndia/xOneC/issues/87) |
| GAP-0122 | XDCIndia/xOneC | P1 | rpc | [Connect transaction submission and mining status RPC to the active producer](https://github.com/XDCIndia/xOneC/issues/88) |
| GAP-0123 | XDCIndia/xOnePY | P1 | networking | [Expose the declared admin peer-management RPC methods](https://github.com/XDCIndia/xOnePy/issues/97) |
| GAP-0124 | XDCIndia/xOnePY | P1 | rpc | [Add the declared debug RPC methods and bounded transaction tracers](https://github.com/XDCIndia/xOnePy/issues/98) |
| GAP-0125 | XDCIndia/xOneTS | P1 | networking | [Expose the declared admin peer-management RPC methods](https://github.com/XDCIndia/xOneTS/issues/90) |
| GAP-0126 | XDCIndia/xOneTS | P1 | rpc | [Add the declared debug RPC methods and bounded transaction tracers](https://github.com/XDCIndia/xOneTS/issues/91) |
| GAP-0127 | XDCIndia/xOneC | P2 | rpc | [Compute fee-history reward percentiles from receipts](https://github.com/XDCIndia/xOneC/issues/89) |
| GAP-0128 | XDCIndia/xOneC | P2 | rpc | [Implement local IPC JSON-RPC behind the accepted IPC flags](https://github.com/XDCIndia/xOneC/issues/90) |
| GAP-0129 | XDCIndia/xOneC | P2 | rpc | [Publish accepted pending transactions through WebSocket subscriptions](https://github.com/XDCIndia/xOneC/issues/91) |
| GAP-0130 | XDCIndia/xOneC | P2 | docs | [Refresh the README with current client status and a safe quickstart](https://github.com/XDCIndia/xOneC/issues/92) |
| GAP-0131 | XDCIndia/xOneC | P2 | rpc | [Expose pending and queued transactions through txpool RPC](https://github.com/XDCIndia/xOneC/issues/93) |
| GAP-0132 | XDCIndia/xOnePY | P2 | rpc | [Compute fee-history reward percentiles from receipts](https://github.com/XDCIndia/xOnePy/issues/99) |
| GAP-0133 | XDCIndia/xOnePY | P2 | rpc | [Implement local IPC JSON-RPC behind the accepted IPC flags](https://github.com/XDCIndia/xOnePy/issues/100) |
| GAP-0134 | XDCIndia/xOnePY | P2 | rpc | [Publish accepted pending transactions through WebSocket subscriptions](https://github.com/XDCIndia/xOnePy/issues/101) |
| GAP-0135 | XDCIndia/xOnePY | P2 | docs | [Refresh the README with current client status and a safe quickstart](https://github.com/XDCIndia/xOnePy/issues/102) |
| GAP-0136 | XDCIndia/xOnePY | P2 | rpc | [Expose pending and queued transactions through txpool RPC](https://github.com/XDCIndia/xOnePy/issues/103) |
| GAP-0137 | XDCIndia/xOneTS | P2 | rpc | [Implement local IPC JSON-RPC behind the accepted IPC flags](https://github.com/XDCIndia/xOneTS/issues/92) |
| GAP-0138 | XDCIndia/xOneTS | P2 | rpc | [Publish accepted pending transactions through WebSocket subscriptions](https://github.com/XDCIndia/xOneTS/issues/93) |
| GAP-0139 | XDCIndia/xOneTS | P2 | rpc | [Expose pending and queued transactions through txpool RPC](https://github.com/XDCIndia/xOneTS/issues/94) |

## Counts

| Dimension | Count |
| --- | --- |
| XDCIndia/xOneC | 10 |
| XDCIndia/xOnePY | 7 |
| XDCIndia/xOneTS | 5 |
| P1 | 9 |
| P2 | 13 |
| networking | 3 |
| rpc | 17 |
| docs | 2 |

All 22 newly verified findings have issue URLs. 'Issued' means tracked, not fixed. Used labels `gap-audit`, `area:rpc`, `area:networking`, `area:docs`, `priority:P1` and `priority:P2` were created/applied by the GitHub issue operation. Unused P0/P3 labels were not seeded.

## Selected references

| Repository | Score | Breakdown: overlap/activity/adoption/access | Role |
| --- | --- | --- | --- |
| [ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) | 94 | 44/20/15/15 | primary |
| [paradigmxyz/reth](https://github.com/paradigmxyz/reth) | 92 | 44/20/13/15 | primary |
| [NethermindEth/nethermind](https://github.com/NethermindEth/nethermind) | 92 | 47/20/10/15 | primary |
| [besu-eth/besu](https://github.com/besu-eth/besu) | 89 | 43/20/11/15 | primary |
| [erigontech/erigon](https://github.com/erigontech/erigon) | 91 | 44/20/12/15 | primary |
| [ethereumjs/ethereumjs-monorepo](https://github.com/ethereumjs/ethereumjs-monorepo) | 74 | 28/20/11/15 | component_and_archived_client |
| [ethereum/py-evm](https://github.com/ethereum/py-evm) | 62 | 27/10/10/15 | historical_component |
| [erigontech/silkworm](https://github.com/erigontech/silkworm) | 71 | 40/10/6/15 | language_reference |
| [status-im/nimbus-eth1](https://github.com/status-im/nimbus-eth1) | 82 | 40/20/7/15 | primary |
| [lambdaclass/ethrex](https://github.com/lambdaclass/ethrex) | 86 | 43/20/8/15 | primary |
| [XinFinOrg/XDPoSChain](https://github.com/XinFinOrg/XDPoSChain) | 89 | 50/20/4/15 | xdc_protocol_baseline |
| [tokamak-network/py-ethclient](https://github.com/tokamak-network/py-ethclient) | 66 | 40/10/1/15 | research_reference |
| [alt-research/eth2030](https://github.com/alt-research/eth2030) | 78 | 40/20/3/15 | research_reference |
| [ethereum/aleth](https://github.com/ethereum/aleth) | 62 | 36/0/11/15 | historical_client |
| [skalenetwork/skaled](https://github.com/skalenetwork/skaled) | 75 | 35/20/5/15 | adjacent_chain |
| [QuarkChain/pyquarkchain](https://github.com/QuarkChain/pyquarkchain) | 70 | 30/20/5/15 | adjacent_chain |
| [FISCO-BCOS/FISCO-BCOS](https://github.com/FISCO-BCOS/FISCO-BCOS) | 70 | 25/20/10/15 | adjacent_chain |
| [bnb-chain/bsc](https://github.com/bnb-chain/bsc) | 90 | 43/20/12/15 | adjacent_chain |
| [0xPolygon/bor](https://github.com/0xPolygon/bor) | 87 | 41/20/11/15 | adjacent_chain |
| [BuildOnViction/victionchain](https://github.com/BuildOnViction/victionchain) | 82 | 41/20/6/15 | historical_lineage |
| [harmony-one/harmony](https://github.com/harmony-one/harmony) | 82 | 36/20/11/15 | adjacent_chain |
| [tempoxyz/tempo](https://github.com/tempoxyz/tempo) | 84 | 38/20/11/15 | adjacent_chain |
| [kaiachain/kaia](https://github.com/kaiachain/kaia) | 75 | 36/20/4/15 | adjacent_chain |
| [BuildOnViction/vic-geth](https://github.com/BuildOnViction/vic-geth) | 77 | 41/20/1/15 | adjacent_chain |
| [openethereum/openethereum](https://github.com/openethereum/openethereum) | 71 | 45/0/11/15 | historical_client |

## Rejected and historical references

The full roster preserves every score, reason, license, commit, source and role. Current clients, component libraries, archived clients and different-chain references are not treated as equal deployment alternatives. Prior rejected records are explicitly marked carried-forward; their metadata was not all refreshed.

| Candidate | Score | Reason |
| --- | --- | --- |
| bluealloy/revm | 59 | Embedded EVM component, no standalone networking/sync/RPC operator client; use as dependency reference. |
| eth-pkg/eth-nodes | 37 | Reproducible packaging toolkit, not an independent execution client. |
| kenny-ish/eth-node-healthcheck | 40 | External health probe, not an execution client. |
| ethereum/execution-specs | 55 | Normative functional specification/testing reference, not an operator client. |
| ethereum/execution-apis | 55 | API specification, not an execution client. |
| ethereum/execution-spec-tests | 50 | Test-vector framework, archived; not an operator client. |
| https://www.quicknode.com/docs/ethereum | 45 | Hosted API service; relevant RPC documentation patterns but not an independent client implementation. |
| https://www.alchemy.com/docs/ethereum/ethereum-api-overview | 45 | Hosted API service; relevant RPC documentation patterns but not an independent client implementation. |
| https://docs.metamask.io/services/ | 45 | Hosted API service; relevant RPC documentation patterns but not an independent client implementation. |
| XinFinOrg/XDC-Subnet | 83 | Derived from XDPoSChain for XDC subnets; adds subnet-only features and nothing operator-facing for mainnet/Apothem nodes over its selected parent. |
| bnb-chain/reth-bsc | 68 | reth SDK extension that adds Parlia only; its operator surface is reth's (selected); Parlia features skipped (SKIP-13). |
| ronin-chain/ronin | 56 | Score 56: DPoS geth fork, last commit 7 months ago, low adoption. |
| gnosischain/reth_gnosis | 56 | Score 56: reth extension (AuRa); no licence file; adds nothing operator-facing over reth. |
| loocapro/reth-bsc | 58 | Score 58: predecessor of bnb-chain/reth-bsc; superseded. |
| akula-bft/akula | 44 | Score 44: archived Rust client. |
| PegaSysEng/pantheon | 26 | Score 26: archived predecessor of Besu. |
| XinFinOrg/XinFin-Node | 36 | Score 36: Docker set-up scripts for the XDC client, not a client. Docs-only reference for operator set-up. |
| evmts/xvi | 43 | Score 43: early-stage client. |
| mana-ethereum/mana | 23 | Score 23: unmaintained Elixir node. |
| stateless-consensus/phant | 38 | Score 38: stateless research client. |
| weiihann/chibi | 48 | Score 48: partial-state node, narrow scope. |
| vicnaum/shinode | 36 | Score 36: history-only node. |
| mmsaki/zeth | 36 | Score 36: toy Zig client. |
| circlefin/malaketh-layered | 46 | Score 46: consensus engine driving an EL over Engine API; not a client. |
| Nethereum/Nethereum | 50 | Score 50: client library, not a node. |
| ethpandaops/benchmarkoor | 41 | Score 41: benchmarking tool, not a client. |
| XDCIndia/besu-xdc | 68 | Score 68 but excluded by the fork rule: GitHub fork of besu-eth/besu (selected) for XDC; XDC behaviour is taken from XDPoSChain and the geth-XDC oracle; same owner as xOneRS. |
| XDCIndia/go-ethereum | 73 | Our conformance oracle (conformance/PIN), private, same owner: used as the parity reference, not as a competitor. Its XDC-only RPC methods are cited in GAP xdcext. |
| etclabscore/core-geth | 65 | Score 65 but excluded by the fork rule: geth derivative for Ethereum Classic; extra flags are PoW, ECBP-1100 and legacy light-client items; its trace_ module is already counted from Erigon and Nethermind. |
| ethereum-optimism/op-geth | 63 | Score 63 but excluded by the fork rule: geth fork whose additions are OP Stack L2 features (SKIP-14). |
| celo-org/celo-blockchain | 64 | Score 64 but end of life: the repository calls itself the previous Celo client, the last commit is a CI config change, and Celo now runs op-geth as an L2 (SKIP-14). |
| Consensys-inc-archive/quorum | 57 | Score 57: archived (GoQuorum end of life); its permissioning and QBFT live on in Besu (selected). |
| berachain/bera-reth | 58 | Score 58: reth SDK extension for a beacon-driven chain; adds nothing operator-facing over reth. |
| shardeum/shardeum | 58 | Score 58: sharded network whose validator is not an Ethereum-family node; eth RPC is a separate gateway. |
| ava-labs/coreth | 47 | Score 47: archived. |
| ava-labs/subnet-evm | 47 | Score 47: archived. |
| klaytn/klaytn | 53 | Score 53: archived; superseded by kaiachain/kaia (selected). |
| XinFinOrg/XinFin-Node-Telemetry | 28 | Score 28: log shipping helper for XinFin nodes, not a client; no licence. |

## Architecture exclusions

| Candidate | Reason |
| --- | --- |
| Ethereum Engine API | XDC consensus is integrated; excluded by the shared RPC scope. |
| Polling filters, eth_getProof, GraphQL | Explicitly outside current sibling ADR-008 scope; do not duplicate them as mandatory gaps. |
| JavaScript tracers, struct logger, debug_traceCall, raw debug_traceBlock | Sibling scope currently selects callTracer/prestateTracer and selected raw readers. |
| XDCx and personal namespaces | Explicit shared scope exclusion. |
| L2 sequencers, rollup proof systems, shard consensus, PBFT/QBFT adoption | Different-chain architecture; no evidence that replacing XDPoS is required. |
| Tax, invoices, refunds, currencies, billing email templates | Generic prompt examples outside a blockchain execution client. |
| Performance superiority and quantum-resistance claims | No matched-hardware benchmark or protocol qualification produced in this task. |

## Deduplicated current findings

| Finding | Existing issue |
| --- | --- |
| XDCIndia/xOneRS: Live eth_call and eth_estimateGas backend refuses requests | [324](https://github.com/XDCIndia/xOneRS/issues/324) |
| XDCIndia/xOneRS: Live trace backend refuses requests; mining state returns None; missed-round method refuses service; latest-pool status returns zero placeholders | [42](https://github.com/XDCIndia/xOneRS/issues/42) |
| XDCIndia/xOneRS: Full pending transaction objects in subscriptions | [279](https://github.com/XDCIndia/xOneRS/issues/279) |
| XDCIndia/xOneTS: Root README and getting started | [77](https://github.com/XDCIndia/xOneTS/issues/77) |
| XDCIndia/xOneTS: Bounded disk-backed state | [83](https://github.com/XDCIndia/xOneTS/issues/83) |
| XDCIndia/xOneTS: Follower peer loss and stall recovery | [71](https://github.com/XDCIndia/xOneTS/issues/71) |
| XDCIndia/xOnePy: Archive verification | [85](https://github.com/XDCIndia/xOnePy/issues/85) |
| XDCIndia/xOneC: Receipt serving, prerequisite for log subscription repair | [65](https://github.com/XDCIndia/xOneC/issues/65) |

## Search and expansion

`discovery-log.json` records GitHub keyword/topic searches, awesome-list review, web discovery, README snowball links, commercial docs and continuity against the checked-in Rust audit. The first sibling feature pass found 21 gaps. Expansion found the C++ log-subscription defect. The final dispatch review corrected namespace wording without adding another issue. Continuity expanded the comparator set and followed Viction to its current successor. See `final-pass.json` for the last bounded evidence-to-issue mapping.

The endpoint is zero **unissued verified findings in the reviewed scope**. This is not a proof that all features in every repository were exhaustively checked or that no undiscovered competitor exists. Unreviewed matrix cells remain explicit. A further live-node, performance and fault-injection campaign is outside this source audit.

## Website verification

- JavaScript syntax checks passed.
- Browser-tested client switching, Rust Apothem guide selection, command copying, comparison filters, resource search, and audit issue filtering/search including the empty state.
- Mobile viewport review at 390 px (375 px content after scrollbar): navigation and TypeScript selection passed; document width equaled viewport width.
- Motion has a visible pause control and reduced-motion support.
- Build commands were checked against repository manifests/docs, not executed as client builds.
- No running node, signer, keystore or production network was changed.
- The domain xone.sh was not attached or its DNS changed. The Site remains a private review deployment.

## Verification limits

The audit uses static source/doc evidence. Public references were shallow-cloned and excluded from deliverables; private sibling source was read through authorized GitHub access because local private cloning was unavailable. No competitor or client was built or benchmarked. Where current source and old README text disagreed, source paths and the discrepancy are recorded. One-label-per-feature-family issue work is grouped by shippable change, not inflated by per-method counts.

## Resume

Read `competitors.json`, `gap-ledger.json`, `existing-rust-gaps.json` and `final-pass.json`. Re-pin current heads and recheck all-state issue search before new work. Never recreate a row with an issue URL. Keep `.gap-audit/refs/` excluded from Git and archives.


## Website comparison and performance update — 14 November 2026

The home page now includes a four-client comparison with Architecture, RPC readiness, and Speed & performance views. The existing eight-entry ecosystem table remains available and links to performance/operations source evidence.

The performance lab presents three distinct repository-reported observations:

| Observation | Result | Limits |
| --- | --- | --- |
| Signer-recovery replay CPU | About 873 to 417 CPU seconds, reported 52% reduction | 20,000 net2040 blocks; shared i5-13500; self-comparison; not independently reproduced |
| Disk-backed flat state | 1,329 to 1,157 MB anonymous memory, reported 13% reduction | Synthetic 500k accounts / 2M slots; trie still in memory; not total RSS |
| RPC sample | 0.5 ms p50; 8 ms p99; 64 ms max | 300 eth_blockNumber calls; historical observation; no controlled load model |

`performance-update.json` and `performance-update.md` preserve source pins, exact values, context, limits, and linked engineering work. The CPU change is merged in PR #319. Parallel roots remain in review in PR #334, with 3–21% root-phase observations under heavy load; these are not advertised as a general speed gain. Pruning savings and a controlled cross-client ranking are not established.

The design update uses oversized typography, a dark grid, pill controls, numbered navigation panels, and a performance showcase, informed by the rendered Solana Mobile site. No Solana Mobile assets or proprietary code were copied. The existing optimized WebP hero remains in use. Font stylesheets load directly in HTML with early origin connections, removing the CSS import dependency. No page-load score or measured web-speed improvement is claimed.

Validation: JavaScript syntax and internal-link checks passed. Browser checks covered all three metric tabs and their values, all comparison categories, ecosystem filters, mobile navigation, and table overflow containment. At 375 px content width, document scroll width remained 375 px; the comparison table scrolls inside its own container. Client application code was not modified and no new issues were needed for this presentation update.
