Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
0b1c345
feat(replication): commitment foundation for storage-bound audit (pha…
grumbach May 26, 2026
c73da5d
feat(replication): plumb commitment fields through existing wire types
grumbach May 26, 2026
24eefa6
feat(replication): commitment builder + auditor verifier (phases 2b+2c)
grumbach May 26, 2026
0cd8af3
feat(replication): recent_provers cache for holder eligibility (phase…
grumbach May 26, 2026
31fa837
feat(replication): responder commitment-bound challenge handler + e2e…
grumbach May 26, 2026
4951dbd
test(replication): backward-compat wire tests + tighten e2e claims
grumbach May 26, 2026
ada62f8
revert(replication): un-extend wire types; defer to phase 3
grumbach May 26, 2026
feb5530
test(replication): threat-model PoC tests for v12 storage-bound audit
grumbach May 26, 2026
158c6a4
fix(replication): add cross-peer binding + cover real Path A + close …
grumbach May 26, 2026
414a484
test(replication): make Path A test structurally distinct from happy …
grumbach May 26, 2026
e0e4bf1
docs: testnet plan + security notes for v12 storage-bound audit
grumbach May 26, 2026
47c8c39
revert: un-revert wire-type extension; old peers are allowed to break
grumbach May 26, 2026
70361a4
feat(replication): phase-3 wiring — responder rotation tick + gossip …
grumbach May 26, 2026
a04a2be
feat(replication): responder dispatches commitment-bound audits
grumbach May 26, 2026
8d8c637
feat(replication): wire auditor side of v12 commitment-bound audit
grumbach May 26, 2026
110dc38
fix(replication): address codex round-5 findings on auditor side
grumbach May 26, 2026
8a301bc
fix(replication): codex round-6 — strict gating + cache cap + churn c…
grumbach May 26, 2026
7cb8ff5
fix(replication): codex round-7 — RT gate at commitment ingest
grumbach May 26, 2026
64166e2
fix(replication): codex round-8 — keep pin on unknown commitment
grumbach May 26, 2026
5821fc5
fix(replication): codex round-9 — pin-contract enforcement + streamin…
grumbach May 26, 2026
b694534
fix(replication): codex round-10 — align rotation cadence + downgrade…
grumbach May 26, 2026
016bf8a
fix(replication): codex round-11 — retention window + startup + benig…
grumbach May 26, 2026
d54aedc
fix(replication): codex round-12 + David's PR review — TTL eviction +…
grumbach May 26, 2026
b077bbd
feat(replication): complete v12 design — sticky capable flag, holder …
grumbach May 26, 2026
ef27248
fix(replication): codex round-13 — rate limit on every attempt + corr…
grumbach May 26, 2026
f92ab87
fix(replication): codex round-14 — close sig-verify rate-limit race
grumbach May 26, 2026
1dfc78a
chore: cleanup notes
grumbach May 27, 2026
2d40d3f
fix(replication): tighten audit_response_timeout to catch relay attac…
grumbach May 28, 2026
cdc2e97
chore(replication): clear pre-existing clippy + rustdoc errors
grumbach May 28, 2026
00021d3
fix(replication): use saturating_add for audit_response_timeout
grumbach May 28, 2026
d81b3b9
fix(replication): reviewer findings on v12 audit + holder-credit paths
grumbach May 28, 2026
4c8bc38
test(replication): cover clear_all on empty-storage rotation path
grumbach May 28, 2026
dfba233
fix(replication): round-2 reviewer findings on v12 holder-credit + au…
grumbach May 28, 2026
530c134
fix(replication): wire ever_capable_peers into the audit shield + cap…
grumbach May 28, 2026
cf07e8f
fix(replication): round-3 codex findings — no-op rotation + per-key p…
grumbach May 28, 2026
676c92d
fix(replication): keep commitment pinned on None-downgrade gossip
grumbach May 29, 2026
05914a0
refactor(replication): trim dead surface + gate test-only helpers + d…
grumbach May 29, 2026
32ee9a3
test(replication): live responder-handler audit tests + run PoCs in CI
grumbach May 29, 2026
242e8cd
fix(replication): revoke holder credit on confirmed audit failure + c…
grumbach May 29, 2026
3d97ca5
test(replication): regression-guard the audit-failure credit revocation
grumbach May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ jobs:
run: cargo test --lib --features test-utils
- name: Run e2e tests
run: cargo test --test e2e --features test-utils -- --test-threads=1
- name: Run v12 storage-bound audit attack PoCs
run: cargo test --test poc_commitment_audit_attacks --features test-utils
- name: Run v12 live audit-handler tests
run: cargo test --test poc_audit_handler_live --features test-utils

doc:
name: Documentation
Expand Down
16 changes: 16 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,22 @@ name = "e2e"
path = "tests/e2e/mod.rs"
required-features = ["test-utils"]

# v12 storage-bound audit attack PoCs. Uses the test-only one-shot
# commitment builder/verifier helpers, so it requires the test-utils
# feature. CI runs it via `cargo test --test poc_commitment_audit_attacks
# --features test-utils`.
[[test]]
name = "poc_commitment_audit_attacks"
path = "tests/poc_commitment_audit_attacks.rs"
required-features = ["test-utils"]

# Live responder-handler tests for the v12 audit. Use
# LmdbStorageConfig::test_default(), gated on test-utils.
[[test]]
name = "poc_audit_handler_live"
path = "tests/poc_audit_handler_live.rs"
required-features = ["test-utils"]

[features]
default = ["logging"]
# Enable tracing/logging infrastructure.
Expand Down
1 change: 1 addition & 0 deletions src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ impl NodeBuilder {
Arc::clone(&p2p_arc),
storage_arc,
payment_verifier_arc,
Arc::clone(&identity),
&self.config.root_dir,
fresh_rx,
shutdown.clone(),
Expand Down
569 changes: 568 additions & 1 deletion src/replication/audit.rs

Large diffs are not rendered by default.

Loading
Loading