You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`tla/EPaxosConfigTransition.tla`| One add-voter transition with old and new pinned instance domains. | Configuration transition tests. |
@@ -59,7 +60,7 @@ The checked Go-trace-to-TLC replay proves sampled admission for four captured sc
59
60
|`tla/EPaxosVoterBootstrap.tla`| Finite bootstrap fencing, target readiness, activation, abort, crash-prefix, race, and fairness obligations. |`tests/tla_model_check_fast.sh` runs base sizes 1–6 (successor sizes 2–7) plus crash-prefix, race, and fairness configurations; bootstrap is outside the sampled Go-to-TLC replay. |
60
61
|`tla/KVTimestampStaleness.tla` and `tla/KVOmissionRecovery.tla`| Example KV timestamp and omission/recovery slices. |`examples/kv`, Jepsen checker tests. |
61
62
62
-
The fast gate is executable through `bash tests/tla_model_check_fast.sh` and covers 31 named finite jobs, including the positive compaction/fencing configuration, six exact-marker negative mutants, bootstrap base sizes 1–6 (successor sizes 2–7), crash-prefix, race, and fairness configurations. The larger `bash tests/tla_model_check.sh` profile is a manual finite suite. Neither is exhaustive.
63
+
The fast gate is executable through `bash tests/tla_model_check_fast.sh`(or `python3 tests/tla_model_check_runner.py --profile fast`) and covers 32 named finite jobs, including the certified-compaction configuration, the positive compaction/fencing configuration, six exact-marker negative mutants, bootstrap base sizes 1–6 (successor sizes 2–7), crash-prefix, race, and fairness configurations. The larger `bash tests/tla_model_check.sh` profile is a manual finite suite. Neither is exhaustive.
63
64
64
65
## Paper-grounded claim map
65
66
@@ -70,6 +71,7 @@ The fast gate is executable through `bash tests/tla_model_check_fast.sh` and cov
70
71
| Revisited TOQ |`Config.TOQ` persists `TOQPending` and `ProcessAt`, sends flagged attributes, delays originator assignment, and blocks decisions while pending. | Core behavior is implemented; clock synchronization, delay measurement, and sync-group operation remain embedder responsibilities. |
71
72
| Accept-Deps evidence |`Message`, codec, checksum, storage, and node paths preserve chosen `Seq`/`Deps` separately from recovery-only aggregate and sender evidence. | Finite 3/5/7 optimized-recovery and sender-merge slices pass; arbitrary evidence histories remain outside the claim. |
72
73
| Chain pruning |`sparse_progress.go` removes dependencies proven ordered by a higher-sequence dependency during SCC readiness. | Implemented and covered by Revisited tests and `tla/EPaxosRevisited.tla`. |
74
+
| Certified compaction | Exact execution frontiers, incarnation-bound descriptors, durable quorum certificates, application digests, atomic compaction tombstones, and checkpoint-plus-delta restart are implemented across core and KV storage. | Focused Go, three-replica Pebble smoke, and finite TLC evidence pass; arbitrary Go histories and unbounded action correspondence remain open. |
@@ -114,9 +116,9 @@ This replay proves sampled admission. Separately, the AST-checked inventory cove
114
116
-`go test ./... -count=1` passes.
115
117
-`go test -race ./tests/lifecyclecollector -count=1` passes.
116
118
-`go test -race ./tests/refinementtrace -count=1` passes.
117
-
-`bash tests/tla_model_check_fast.sh` passes all 31 configured jobs, including the positive compaction/fencing model, six exact-marker negative mutants, bootstrap base sizes 1–6 (successor sizes 2–7), crash-prefix, race, and fairness configurations.
119
+
-`bash tests/tla_model_check_fast.sh` passes all 32 configured jobs, including the certified-compaction configuration, the positive compaction/fencing model, six exact-marker negative mutants, bootstrap base sizes 1–6 (successor sizes 2–7), crash-prefix, race, and fairness configurations.
118
120
-`tests/trace_refinement_check.sh` accepts all four scenario traces and rejects all five negative controls.
119
-
-`tests/go_coverage.sh` passes the scoped production-package thresholds: `epaxos`89.7% against 85.0% minimum and `examples/kv`92.5% against 90.0% minimum. Root behavior and race suites exercise verification collectors.
121
+
-`tests/go_coverage.sh` passes the scoped production-package thresholds: `epaxos`87.6% against 85.0% minimum and `examples/kv`90.5% against 90.0% minimum. Root behavior and race suites exercise verification collectors.
120
122
- TLAPS 1.6.0-pre at version `763bf3c`, from the newest prebuilt x86_64-linux release asset (no 1.6.0 final exists), reports 876 obligations for `tla/EPaxosInductiveProofs.tla`: 867 proved, 9 failed, and 0 omitted. `tests/tlaps_check.sh` exits 10, preserving that failure.
121
123
-`tests/formal_closure_collect.sh` stages unsigned-local `rawArtifact` records and fails closed on component or bookkeeping errors; verifier enums cover the compaction/fencing area, and `tests/formal_closure_evidence_selftest.py` passes 82 synthetic cases.
Copy file name to clipboardExpand all lines: README.md
+11-4Lines changed: 11 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,12 +1,16 @@
1
1
# moreconsensus
2
2
3
-
`moreconsensus` is a Go library for building replicated services with Egalitarian Paxos (EPaxos). Applications drive a deterministic `RawNode`, persist `Ready` records, send transport messages, apply committed commands, and acknowledge the exact `Ready` prefix with `Advance`.
3
+
`moreconsensus` is a Go library for building replicated services with Egalitarian Paxos (EPaxos). Applications drive a deterministic `RawNode`; the embedding owns transport, durable and application state, response deduplication, snapshots, and any wall-clock sampling. Opaque commands carry only canonical logical point/span/all footprints and replicated cycle-order bytes for the core to interpret.
4
4
5
5
## Core features
6
6
7
7
- EPaxos fast path, slow accept path, commit broadcast, and owner-independent recovery.
8
8
- Deterministic logical ticks for protocol timing.
9
9
- Caller-owned storage and transport virtualization.
10
+
- Opaque application commands separated from protocol controls; only application entries produce ordered `Ready.Apply` work.
11
+
- Canonical byte-lexicographic point, half-open span, and explicit group-wide `All` conflict scopes backed by an overlap index.
12
+
- Deterministic SCC ordering by `Seq`, `CycleKey`, then instance reference.
- Safe-copy and explicit zero-copy ownership paths.
11
15
- Pool-aware message and command helpers.
12
16
- Canonical BLAKE3 checksums for records and messages.
@@ -15,6 +19,8 @@
15
19
- Separate client, peer, and administrative service planes with TLS 1.3 mutual-authentication support.
16
20
- Repository gates for Go behavior, race testing, bounded finite model checking, fault simulation, and release-scope audits.
17
21
22
+
`Ready` is an exact-prefix retry contract. The embedding persists protocol state, sends messages, installs received snapshots, applies `Ready.Apply` in order, services checkpoint requests, performs compaction, and then calls `Advance`. Apply work may repeat before acknowledgement or after crash; command effects and the full `CommandID` response/digest record must therefore commit atomically. Footprints may omit only truly strongly commutative work: final state, responses, dedup state, and deterministic side effects must all be order-independent.
23
+
18
24
## Documentation
19
25
20
26
-[EPAXOS.MD](EPAXOS.MD) describes the implemented algorithm and public execution model.
@@ -30,9 +36,10 @@
30
36
## Support boundary
31
37
32
38
- The production library surface is `gosuda.org/moreconsensus/epaxos`; the key-value service is an integration example and validation harness, not a multi-tenant product.
33
-
- Voter sets support one through seven replicas. The core uses deterministic logical time; explicit TOQ inputs and operational clock discipline remain embedder responsibilities.
34
-
- Formal evidence is finite model checking plus focused executable tests. It is not an exhaustive or unbounded proof, and it does not establish real-network production readiness.
35
-
- Retention and checkpoint features provide bounded operational behavior; certified protocol-state compaction remains governed by [RELEASE_SCOPE.md](RELEASE_SCOPE.md).
39
+
- Voter sets support one through seven replicas. The core uses deterministic logical time; explicit TOQ samples and operational clock discipline remain embedder responsibilities.
40
+
- The example KV uses logical MVCC resources rather than physical version keys: point reads/writes use logical points; scans and range operations use half-open spans; cross-resource invariants use namespaced sentinels; `All` covers one EPaxos group, not an entire database.
41
+
- Formal and executable evidence is bounded finite model checking plus focused tests, including certified compaction and three-replica checkpoint/restart. It is not an exhaustive or unbounded Go/TLA refinement proof and does not establish real-network production readiness.
42
+
- Certified protocol-state compaction is implemented and boundedly exercised; the release decision remains **no-go** under [RELEASE_SCOPE.md](RELEASE_SCOPE.md) while unbounded Go/TLA action correspondence remains open.
0 commit comments