Commit Graph

16 Commits

Author SHA1 Message Date
Nicholas Dudfield
5657f75d3c test(consensus): cover Export root serialization 2026-07-13 19:03:05 +07:00
Nicholas Dudfield
97385c0f83 test(consensus): pin Export root wire allocation 2026-07-13 19:00:33 +07:00
Nicholas Dudfield
5f8145eadc Revert "Remove Export sidecar consensus authority"
This reverts commit e6237b34ab.
2026-07-13 16:21:55 +07:00
Nicholas Dudfield
e6237b34ab Remove Export sidecar consensus authority 2026-07-13 14:48:59 +07:00
Nicholas Dudfield
990e15a468 docs(consensus): add walkthrough source anchors 2026-07-07 16:37:14 +07:00
Nicholas Dudfield
38672fba9f fix(consensus): reject noncanonical extended positions
Require legacy consensus positions to use the exact 32-byte form. Extended encodings now need a nonzero known flag byte, preventing alternate wire encodings of the same tx-set hash.
2026-06-26 17:57:55 +07:00
Nicholas Dudfield
9f6e7dd315 refactor(consensus): make extended position identity explicit 2026-06-24 13:10:57 +07:00
Nicholas Dudfield
b4e98ac1d7 test(coverage): cover peer proposal wrapper 2026-06-09 13:40:04 +07:00
Nicholas Dudfield
4d48c9f949 test(coverage): cover export rng helper seams 2026-06-09 13:21:08 +07:00
Nicholas Dudfield
03e0bb5fc3 feat(consensus): add active participant diagnostics
Carry a signed observedParticipantsHash in ExtendedPosition and log a local canonical bitmap over the active validator view for degraded-round debugging. The field is diagnostic only and does not affect proposal equality or quorum thresholds.
2026-05-21 09:56:51 +08:00
Nicholas Dudfield
7b5865c69c fix(consensus): sign export proposal attachments 2026-04-27 11:57:29 +07:00
Nicholas Dudfield
d4c5a7e8ab fix: update copyright headers to 2026 XRPL Labs for new files 2026-02-25 14:38:40 +07:00
Nicholas Dudfield
0f17cf02aa chore: clang-format 2026-02-24 15:51:55 +07:00
Nicholas Dudfield
cc7f3c59ae merge: port export-rng onto post-2.4.0 tree restructure
Resolve the origin/dev post-2.4.0 sync conflicts across the xrpld path migration and macro-based protocol registration changes.

Re-apply export/RNG integration on top of the new structure, including consensus/build plumbing, tx/apply paths, peer ingest, and tests.

Regenerate hook headers and restore a green build via x-run-tests (Export_test build path).
2026-02-24 15:32:45 +07:00
Nicholas Dudfield
8f331a538e fix(consensus): harden proposal parser and guard dice(0) UB
Address findings from code review:

- dice(0): add early return with INVALID_ARGUMENT before modulo
  operation to prevent undefined behavior
- fromSerialIter: return std::optional to safely reject malformed
  payloads (truncated, unknown flag bits, trailing bytes) instead
  of throwing
- Update all callers (PeerImp, RCLConsensus, tests) for optional
- Add unit tests for dice(0) error code and 7 malformed wire cases
2026-02-12 16:18:30 +07:00
Nicholas Dudfield
c44dea3acf fix(consensus): resolve commit-reveal pipeline bugs enabling non-zero entropy
Three critical fixes that unblock the RNG commit-reveal pipeline:

- Remove entropy secret regeneration in ConvergingTx->ConvergingCommit
  transition that was overwriting the onClose() secret, breaking reveal
  verification against the original commitment
- Change ExtendedPosition operator== to compare txSetHash only, preventing
  deadlock where nodes transitioning sub-states at different times would
  break haveConsensus() for all peers
- Self-seed own commitment and reveal into pending collections so the
  node counts toward its own quorum checks

Also adds ExtendedPosition_test with signing, suppression, serialization
round-trip and equality tests, iterator safety fix in BuildLedger, wire
compatibility early-return, and RNG debug logging throughout the pipeline.
2026-02-06 09:03:26 +07:00