xLedgRS brings modern systems engineering, protocol compatibility, and operational visibility to XRPL infrastructure for exchanges, validators, service operators, and enterprise teams.
xLedgRS combines protocol fidelity, predictable operations, and a modern Rust codebase for teams that need dependable XRPL infrastructure.
Written entirely in Rust. Buffer overflows, use-after-free, data races, and null pointer dereferences are eliminated by the compiler — not by hope. No garbage collector overhead. No manual memory management mistakes.
Built on Tokio from the ground up. Every peer connection, RPC request, WebSocket subscription, and consensus timer runs on an async executor. No thread-per-connection. No blocking I/O on the critical path.
Implements the XRPL peer protocol, integrates with existing network participants, synchronizes the account-state tree through SHAMap download, and follows live ledgers on the public network.
NuDB for content-addressed Merkle tree nodes (SHAMap) with 256MB cache. SQLite in WAL mode for relational data (ledger headers, transaction index, metadata). Crash-safe, delta-based writes between ledger closes.
Implements the XRP Ledger Consensus Protocol: proposal rounds with convergence thresholds (50% → 65% → 70% → 80%), UNL quorum validation, manifest-based ephemeral key delegation, and amendment tracking.
Provides operator-facing JSON-RPC and WebSocket surfaces for ledger data, account state, order books, transaction submission, and live event streams in formats teams already recognize.
Draws on proven XRPL architecture patterns while using Rust’s safety model and modern async execution to support maintainable, operator-friendly deployments.
xLedgRS is designed to operate comfortably in existing XRPL environments, with peer messaging, handshake behavior, consensus signaling, and state sync aligned to network expectations.
The XRP Ledger stores all account state in a radix-16 Merkle tree called the SHAMap. Each leaf node contains a serialized ledger entry (AccountRoot, Offer, RippleState, etc.) keyed by its SHA-512-Half hash. Inner nodes aggregate 16 child hashes into a single parent hash, enabling efficient proof-of-inclusion and incremental state sync.
xLedgRS implements the SHAMap with NuDB-backed content-addressed storage, a 256MB LRU cache for hot inner nodes, and a sparse overlay mode for follower nodes that only materializes branches that change between ledgers.
Transaction handling includes preflight validation, preclaim checks, state application, metadata generation, and ledger replay for the core surfaces operators depend on.
The DEX layer supports XRPL order-book behavior including quality-sorted crossing, partial fills, ticket-aware sequencing, reserve checks, and funding validation aligned with live network expectations.
| Method | Description |
|---|---|
server_info | Node status, peer count, memory, uptime, validated ledger |
account_info | Account balance, sequence, owner count, flags |
account_lines | Trust lines with balances and limits |
account_offers | Open DEX orders for an account |
account_tx | Transaction history per account |
tx | Look up transaction by hash |
ledger | Ledger header by sequence or "validated" |
ledger_data | All ledger objects (paginated) |
book_offers | Order book for a currency pair |
submit | Submit a signed transaction |
sign | Server-side transaction signing (all 22 types) |
fee | Current transaction fee (escalation-aware) |
feature | Amendment status |
ripple_path_find | Cross-currency pathfinding |
ping | Connectivity check |
xLedgRS uses a straightforward Cargo-based workflow for operators who want a clear path from source checkout to a running node.
# Clone and build (release mode, ~2 min) git clone https://github.com/realJDP/xLedgRS.git cd xLedgRS cargo build --release # Run on mainnet as a follower node ./target/release/xledgrs --config cfg/xledgrs.cfg # Run on testnet ./target/release/xledgrs --config cfg/testnet.cfg # Query your node curl -s http://127.0.0.1:5005 \ -d '{"method":"server_info"}' | jq .result.info # Check account balance curl -s http://127.0.0.1:5005 \ -d '{"method":"account_info","params":[{"account":"rN7n3473SaZBCG4dFL83w7p1W9cgZw6iTP"}]}' | jq .
# rippled-compatible configuration format [server] port_rpc port_peer [port_rpc] port = 5005 ip = 0.0.0.0 protocol = http [port_peer] port = 51235 ip = 0.0.0.0 protocol = peer [ips] s1.ripple.com 51235 s2.ripple.com 51235 r.ripple.com 51235 [peers_max] 21 [node_db] path=./data [xrpl_rs] enable_consensus_close_loop = 1
Rust 1.75+ (stable)
OpenSSL dev headers
protoc (prost-build)
~2 min build time
Linux x86_64 (primary)
macOS ARM64 (dev)
512 MB RAM (follower)
~10 GB disk (state)
Port 51235 (peer)
Port 5005 (JSON-RPC)
Port 6006 (WebSocket)
Outbound TCP required
A high-level view of where xLedgRS aligns with the reference implementation across protocol, runtime, and operator-facing surfaces.
| Capability | rippled (C++) | xLedgRS (Rust) |
|---|---|---|
| Language | C++17 | Rust (memory-safe) |
| Async Model | Boost.Asio | Tokio (async/await) |
| Peer Protocol (RTXP) | Full | Full |
| TLS + Session Signatures | Full | Full |
| Consensus Protocol | Full | Full |
| State Sync (Peer) | Full | Full (7-9K obj/sec) |
| Ledger Following | Full | Full |
| Transaction Engine | Broad coverage | Core ledger + market flows |
| JSON-RPC API | Operator-grade | Operator + ledger methods |
| WebSocket API | Event subscriptions | Live event subscriptions |
| DEX Order Book | Full | Quality-sorted matching |
| NFToken Support | Full | Mint, burn, offers, accept |
| Escrow & PayChan | Full | Full |
| Checks | Full | Full |
| Config Format | rippled .cfg | rippled .cfg + TOML |
| Build System | CMake + Conan | Cargo (single command) |
A focused dependency set chosen for networking, cryptography, storage, and observability without unnecessary framework weight.
Explore the release, review the implementation, and evaluate the operational surface designed for modern XRP Ledger deployments.