mirror of
https://github.com/XRPLF/rippled.git
synced 2026-09-26 23:19:07 +00:00
- Build section now recommends the Nix devshell rather than requiring it; contributors can use their own toolchain/build flow. - Move the directory-by-directory architecture map out of AGENTS.md into a new top-level ARCHITECTURE.md, with a pointer left behind. - Add a short note asking contributors to keep AGENTS.md/README/ ARCHITECTURE.md files current when they change what those docs cover. - ledger/helpers/AGENTS.md also needs the amendment-gating shape, per-amendment flag naming, and UNREACHABLE/LCOV_EXCL pairing notes (previously only in transactors/AGENTS.md) — the vault/lending helper files these were evidenced on live in ledger/helpers/, not tx/transactors/.
1.7 KiB
1.7 KiB
Architecture
Paths below reflect the current layout; update this doc if modularization moves a subsystem to a different directory.
include/xrpl/+src/libxrpl/— the core protocol library: ledger, shamap, consensus, crypto, json, resource, nodestore, rdb, peerfinder, andtx/(transaction application:Transactor.cpp,applySteps.cpp, invariants, payment paths — see src/libxrpl/tx/AGENTS.md for amendment-gating conventions).tx/transactors/has one file per transaction type, grouped by subsystem:escrow/,vault/,lending/,sponsor/,nft/,token/(MPT),payment_channel/,permissioned_domain/,dex/,oracle/,did/,credentials/,bridge/,check/,delegate/,account/,system/.src/xrpld/— the server application built on top oflibxrpl:app,core,overlay(P2P networking),peerfinder,perflog,rpc,shamap.mainbuilds anApplicationImpimplementingApplication; most components hold a reference to it (app_), giving broad cross-component access — expect to trace call chains throughApplication&.src/test/— unit tests mirroring the subsystems above, plusjtx/(the transaction-building test DSL — e.g.jtx/escrow.h,jtx/vault.h,jtx/sponsor.h,jtx/permissioned_dex.h) andunit_test/(the custom test framework itself, derived from Beast).src/tests/— unit tests forlibxrplwritten ingtest, gradually replacing thesrc/testequivalents.crates/— a Rust workspace (only built with-Dxrpld -Drust=ON) bridged into C++ viacxxbridge/thecxxcrate; currently just ahello_worldinterop scaffold. Requires the Rust toolchain pinned inrust-toolchain.toml(the Nix devshell provides it automatically).