Commit Graph

14262 Commits

Author SHA1 Message Date
Nicholas Dudfield
6df48eeebf fix(test): finish traffic suite api remaps 2026-09-18 14:01:21 +07:00
Nicholas Dudfield
f024a81169 fix(test): use xahaud csf scheduler method names 2026-09-18 13:59:52 +07:00
Nicholas Dudfield
730178bec8 test(consensus): port remaining deterministic and threaded scenarios 2026-09-18 13:50:35 +07:00
Nicholas Dudfield
318c0c6652 refactor(net): scope outbound http tls context to application 2026-09-18 13:49:58 +07:00
Nicholas Dudfield
318821df03 fix(test): classify xahaud acquisition and publication jobs 2026-09-18 13:40:54 +07:00
Nicholas Dudfield
6df644b050 fix(ledger): count publication as progress while running 2026-09-18 13:34:36 +07:00
Nicholas Dudfield
afe6dc534d fix(app): persist genesis successor state tree 2026-09-18 13:34:32 +07:00
Nicholas Dudfield
2658752d76 fix(test): preserve harness node store across restarts 2026-09-18 13:34:28 +07:00
Nicholas Dudfield
88705e2155 Revert "fix(app): construct overlay before START_UP ledger load"
This reverts commit e2393646dc.
2026-09-18 13:29:19 +07:00
Nicholas Dudfield
e2393646dc fix(app): construct overlay before START_UP ledger load
LOAD restart called overlay() from tryAdvance/getFetchPack while
overlay_ was still created later in setup. Keep beginConsensus after
the ledger exists.
2026-09-18 13:15:31 +07:00
Nicholas Dudfield
cf438abaf5 fix(overlay): expose Message::getMessageType for harness send hooks
xahaud packed the type in the header but had no accessor. Donor
getMessageType reads the uncompressed header; same here.
2026-09-18 13:00:11 +07:00
Nicholas Dudfield
a7364f70c8 feat(overlay): invoke Config harness observation hooks
MultiNode already installed send/message/lifecycle/validation hooks.
Call them from PeerImp, NetworkOPs, and handleNewValidation so
SteppingNetwork forensics are not empty. Production hooks stay empty.
2026-09-18 12:55:46 +07:00
Nicholas Dudfield
ea66232c01 fix(shamap): order deferred reads and resume walks deterministically
Wait for all deferred reads then sort by parentID/branch. Refill
resumes in SHAMapNodeID order so missing-node requests do not follow
reader completion or heap address order.
2026-09-18 12:51:21 +07:00
Nicholas Dudfield
c685df2cc5 fix(overlay): cancel virtual peer timer through cancelTimer
close() cancelled the raw asio timer while vtimer_ still held a strong
PeerImp callback, leaking the peer and its slot on sim teardown.
2026-09-18 12:51:16 +07:00
Nicholas Dudfield
bb74bcfd7a fix(test): persist harness relational ledgers with sqlite
xahaud envconfig defaults relational to per-app rwdb, so LOAD latest
after stopNode cannot find the saved ledger. Donor unit tests leave
sqlite files under database_path; match that for restart policy.
2026-09-18 12:51:12 +07:00
Nicholas Dudfield
3d05673661 fix(test): register harness suites under ripple not xrpl
BEAST_DEFINE_TESTSUITE library name must match xahaud so
ripple.consensus.HarnessNet and SteppingDeterminism resolve.
2026-09-18 12:42:18 +07:00
Nicholas Dudfield
a3b5f769f4 fix(overlay): wrap PeerTest ssl_stream in SslTransport
tx_reduce_relay_test still passed unique_ptr<ssl_stream> into PeerImp
after the Transport weld. Match OverlayImpl and ConnectAttempt.
2026-09-18 12:39:48 +07:00
Nicholas Dudfield
7e9e78c3d1 fix(test): remap imported harness onto xahaud names
Config sections, JobTypes, Ledger::info, OpenLedger, FailHard, Account
master, RPC JsonContext, PeerFinder slots, protobuf header, and
beast::temp_dir. HarnessNet and SteppingDeterminism objects compile.
2026-09-18 12:25:46 +07:00
Nicholas Dudfield
0decfae0b7 wip(test): start xahaud API remaps on imported harness
JobType aliases, include paths, OverlayImpl method names, Config
COMPRESSION flags, and PeerFinder::Config::makeConfig. HarnessNet
does not compile yet.
2026-09-18 12:05:27 +07:00
Nicholas Dudfield
bec5e7bf5b fix(config): keep protobuf Message outside namespace ripple
Forward-declaring google inside ripple made google::protobuf resolve to
ripple::google::protobuf and broke overlay ZeroCopyStream.
2026-09-18 11:59:40 +07:00
Nicholas Dudfield
d655cf24e9 feat(overlay): weld PeerImp I/O onto Transport
Inbound and outbound peers wrap the ssl_stream in SslTransport.
SimOverlay can now inject an in-process transport without a PeerImp
template.
2026-09-18 11:57:07 +07:00
Nicholas Dudfield
44fc6f6061 feat(test): import donor stepping harness sources
Mechanical copy of Transport, SimOverlay/SimTransport, MultiNode,
scheduler/controller/network, and HarnessNet/SteppingDeterminism suites
with xahaud name mappings. Overlay weld onto PeerImp is still required
before these compile.
2026-09-18 11:51:10 +07:00
Nicholas Dudfield
4932fee4f8 feat(server): optional listeners, peered envconfig, harness hooks
setupWithoutListeners stores setup without binding sockets. stepping
harnesses can disable signals and the stall detector via peeredEnvconfig.
Config grows observe-only peer/validation hooks, empty in production.
2026-09-18 11:48:50 +07:00
Nicholas Dudfield
645f16e7fe feat(overlay): virtual peer timer, inline strands, precise clock
PeerImp arms TimeoutCounterTimer when makePeerTimer is installed.
inlineStrands builds the existing strand type over an inline executor.
Tracking, ping RTT and uptime use getPreciseStopwatch.
2026-09-18 11:47:01 +07:00
Nicholas Dudfield
4bea07f662 feat(shamap): inject Family PRNG into missing-node walks
NodeFamily forwards Application::getPrng. SHAMapSync draws first-child
offsets from that engine. TestNodeFamily keeps default_prng.
2026-09-18 11:44:49 +07:00
Nicholas Dudfield
8e2907f231 fix(overlay): score peers in id order with injected PRNG
getScore draws from Application::getPrng. addPeers, getPeerWithTree and
getPeerWithLedger collect and sort by peer id before scoring so draws
do not follow unordered overlay traversal.
2026-09-18 11:41:49 +07:00
Nicholas Dudfield
605eefd921 feat(app): route remaining stopwatch and PRNG consumers through Application
LedgerHistory, TransactionMaster, NodeFamily caches, PeerFinder and
reduce-relay idle checks use getStopwatch. Fetch-pack deadlines use the
same clock. Overlay tx relay, ping sequence and InboundLedger peer
sampling use getPrng; fetch-pack scoring and acquire sampling sort by
peer id first.
2026-09-18 11:35:53 +07:00
Nicholas Dudfield
656c86ac8e feat(app): consume injected clocks and forward consensus clock
Caches, HashRouter, Validations, LedgerMaster and InboundLedgers use
the injected stopwatch. NetworkOPs passes that clock into RCLConsensus
instead of the process-global clock. manualHeartbeat suppresses the
asio heartbeat; heartbeatTick posts the same job.
2026-09-18 11:28:59 +07:00
Nicholas Dudfield
3a540f724f fix(app): forward-declare Application before OverlayFactory
The alias uses Application&; declare the class first so the header does
not depend on a transitive declaration.
2026-09-18 11:27:33 +07:00
Nicholas Dudfield
2ecb940776 feat(jobqueue): expose lastJob completedJobs and suspendedCount
Donor MultiNode::threadedTick needs these counters even for baseline
stepping imports.
2026-09-18 11:21:38 +07:00
Nicholas Dudfield
cfe0daf862 feat(app): inject overlay factory and acquire timers
make_Application grows defaulted overlay/clock/prng/timer parameters.
Production still uses make_Overlay and asio TimeoutCounter timers.
steppingMode refuses empty timer factories.
2026-09-18 11:21:34 +07:00
Nicholas Dudfield
380b60f155 feat(jobqueue): claim jobs before the no-threads assert
DispatchHook is empty in production. claimedQueued/claimedDropped skip
the worker pool so a stepping harness can run with zero JobQueue threads.
2026-09-18 11:16:16 +07:00
Nicholas Dudfield
b060e43a9a feat(config): add stepping and harness control flags
Production defaults keep current behavior. steppingMode zeros io and
JobQueue workers; signals and the deadlock detector become optional.
2026-09-18 11:15:33 +07:00
Nicholas Dudfield
526ac3475c fix(app): keep first-ledger publication state per application 2026-09-18 10:55:19 +07:00
Nicholas Dudfield
84502af0d2 fix(txq): keep parent-hash ordering keys per candidate 2026-09-18 10:55:15 +07:00
Nicholas Dudfield
06a7d2c6ae fix(overlay): isolate relay duplicate tracking per Slots instance 2026-09-18 10:55:11 +07:00
Nicholas Dudfield
14c93a5215 fix(consensus): isolate validation keep-range refresh deadlines 2026-09-18 10:55:07 +07:00
Nicholas Dudfield
d1b1367e43 test(rdb): use concrete ledgers in concurrent save regression 2026-09-18 10:35:30 +07:00
Nicholas Dudfield
91847f6bb0 fix(consensus): serialize consensus phase publication 2026-09-18 10:19:25 +07:00
Nicholas Dudfield
4b9f2ed886 fix(tx): synchronize mutable transaction response state 2026-09-18 10:18:30 +07:00
Nicholas Dudfield
9b8a1edd53 fix(ledger): synchronize acquire state access and received-data admission 2026-09-18 10:15:47 +07:00
Nicholas Dudfield
bd3b9ac775 fix(ledger): lock acquire completion state before reporting it 2026-09-18 10:15:42 +07:00
Nicholas Dudfield
c8852857d2 fix(ledger): synchronize ledger-age log throttles 2026-09-18 10:15:38 +07:00
Nicholas Dudfield
7015a23a57 fix(rdb): keep ledger-save SQL formatters local to each call 2026-09-18 10:12:59 +07:00
Nicholas Dudfield
adf33d5e63 fix(test): isolate concurrent suite log buffers 2026-09-18 10:02:59 +07:00
tequ
c208a40ce8 remove WASM: $COUNTER from SetHook_wasm.h (#804) 2026-09-09 15:31:11 +10:00
tequ
401a35957d retire fixXahauV1, fixXahauV2 Amendments (#722) 2026-09-09 13:00:24 +10:00
Niq Dudfield
65ff61d518 fix: fail fast when amendment blocked instead of degraded state (#707) 2026-09-08 13:39:45 +10:00
Richard Holland
6191c1e09d Onchain manifests (#779) 2026-09-07 13:19:25 +10:00
tequ
f1a3a775a1 Add optional Hooks data to account_info response (#789) 2026-09-02 17:22:53 +10:00