openpay/
compliance/ PCI-DSS readiness package (scope-map,
pci-zero-architecture, hsm-kms-guidance,
qsa-checklist), citing PCI-DSS v4.0.1
requirements. (#1)
examples/pci-zero/ Runnable example demonstrating a deployment
where merchant code never touches a PAN. (#1)
crates/op-core/ Tokenized<Card> typestate + NetworkToken
+ CardNetwork + Cryptogram. (#2)
crates/op-rails-card/network_token/
NetworkTokenProvider trait + VTS adapter
+ MDES adapter, with deterministic stubs
behind a 'live' feature flag. (#2)
crates/op-driver-sdk/conformance/network_token.rs
Conformance harness for third-party
NetworkTokenProvider implementations. (#2)
crates/op-cli/src/ledger/ 'openpay ledger as-of' subcommand for
bi-temporal queries. (#3)
crates/op-orchestrator/src/telemetry.rs
OpenTelemetry span emission per
Payment<S> transition with semantic-
conventions tags. (#3)
docs/observability/ Grafana dashboard JSON + wiring guide
for the bi-temporal ledger lens. (#3)
smart-byte/
smart-byte-rs/ Rust reference implementation: envelope
encode/decode (canonical CBOR + BLAKE3
content addressing), Ed25519 sign +
verify, lockstep BFT commit MVP, Iroh
transport scaffold, CLI. (#4)
spec/identity_and_key_rotation.md
Adopts KERI SAIDs + key-event log
format; explicitly does not adopt ACDC
chaining wholesale. (#5)
conformance/v1/ 21 test vectors covering canonicalisation,
SAID computation, signature verification,
lockstep commit, gossip propagation.
CI gate enforces spec/vector coupling. (#6)
eoc/
eoc-rs/ Rust + WASM reference implementation:
4-stage cascade (cache -> kv -> graph ->
neural), joule counters via RAPL / NVML /
powermetrics, CLI, wasm-bindgen surface.
18 tests pass. (#7)
eoc-bench/ Benchmark harness, MT-Bench and Router
case sets, 'joules per MT-Bench point'
metric, 'eoc-bench run | compare' CLI. (#8)
standards/sci-for-ai-submission.md
Submission proposal mapping EOC's
receipt schema to GSF SCI-for-AI. (#9)
cookbook/ HuggingFace-style cookbook (markdown +
runnable Python) demonstrating EOC's
cascade with HF AI Energy Score. (#9)
docs/bench-v0.md Reproducibility doc for eoc-bench.
Workspace state:
- openpay clippy -- -D warnings: clean across all touched crates
- smart-byte-rs cargo test --workspace + clippy: clean
- eoc-rs cargo test --workspace + clippy: clean (18 tests)
- eoc-bench cargo check --workspace + clippy + 15 tests: clean
Rust 1.95.0 edition 2024 pinned at the open-standards root via
rust-toolchain.toml; every workspace inherits.
Closes #1 #2 #3 #4 #5 #6 #7 #8 #9.
109 lines
5.4 KiB
JSON
109 lines
5.4 KiB
JSON
[
|
|
{
|
|
"name": "lockstep-001-unanimous-commit",
|
|
"description": "All 4 nodes in the cluster agree on the post-frame state hash. The BFT threshold is floor(2n/3)+1 = 3, so 4-of-4 trivially commits. The expected_state_hash is the hash all four nodes reported.",
|
|
"node_count": 4,
|
|
"frame_number": 184237,
|
|
"ordered_transitions": [
|
|
{
|
|
"byte_said": "EBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
|
"from_pubkey": "1111111111111111111111111111111111111111111111111111111111111111",
|
|
"to_pubkey": "3333333333333333333333333333333333333333333333333333333333333333",
|
|
"signature": "44444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444"
|
|
},
|
|
{
|
|
"byte_said": "ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
|
|
"from_pubkey": "3333333333333333333333333333333333333333333333333333333333333333",
|
|
"to_pubkey": "5555555555555555555555555555555555555555555555555555555555555555",
|
|
"signature": "66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666"
|
|
}
|
|
],
|
|
"node_hashes": {
|
|
"node_1": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
|
"node_2": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
|
"node_3": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
|
"node_4": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
|
|
},
|
|
"expected_commit": true,
|
|
"expected_state_hash": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
|
"expected_dissent": []
|
|
},
|
|
{
|
|
"name": "lockstep-002-supermajority-commit",
|
|
"description": "3 of 4 nodes agree on the post-frame state hash; the 4th node reports a different hash (either Byzantine or simply lagging on input ordering). floor(2*4/3)+1 = 3, threshold met, frame commits at the majority hash. The dissenting node's hash is recorded in the dissent log (spec §14) but does not block commit.",
|
|
"node_count": 4,
|
|
"frame_number": 184238,
|
|
"ordered_transitions": [
|
|
{
|
|
"byte_said": "EBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
|
"from_pubkey": "5555555555555555555555555555555555555555555555555555555555555555",
|
|
"to_pubkey": "7777777777777777777777777777777777777777777777777777777777777777",
|
|
"signature": "88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888"
|
|
}
|
|
],
|
|
"node_hashes": {
|
|
"node_1": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
|
"node_2": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
|
"node_3": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
|
"node_4": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
|
|
},
|
|
"expected_commit": true,
|
|
"expected_state_hash": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
|
"expected_dissent": [
|
|
{
|
|
"node": "node_4",
|
|
"reported_hash": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
|
|
"majority_hash": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
|
"frame": 184238
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "lockstep-003-threshold-not-met",
|
|
"description": "Only 2 of 4 nodes agree on a single state hash. floor(2*4/3)+1 = 3, threshold not met, frame does NOT commit. The cluster must re-run input gathering or escalate per spec §13. The expected_state_hash is null because no single hash reached supermajority.",
|
|
"node_count": 4,
|
|
"frame_number": 184239,
|
|
"ordered_transitions": [
|
|
{
|
|
"byte_said": "ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
|
|
"from_pubkey": "7777777777777777777777777777777777777777777777777777777777777777",
|
|
"to_pubkey": "9999999999999999999999999999999999999999999999999999999999999999",
|
|
"signature": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
|
}
|
|
],
|
|
"node_hashes": {
|
|
"node_1": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
|
|
"node_2": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
|
|
"node_3": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
|
|
"node_4": "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"
|
|
},
|
|
"expected_commit": false,
|
|
"expected_state_hash": null,
|
|
"expected_dissent": [
|
|
{
|
|
"node": "node_1",
|
|
"reported_hash": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
|
|
"majority_hash": null,
|
|
"frame": 184239
|
|
},
|
|
{
|
|
"node": "node_2",
|
|
"reported_hash": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
|
|
"majority_hash": null,
|
|
"frame": 184239
|
|
},
|
|
{
|
|
"node": "node_3",
|
|
"reported_hash": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD",
|
|
"majority_hash": null,
|
|
"frame": 184239
|
|
},
|
|
{
|
|
"node": "node_4",
|
|
"reported_hash": "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE",
|
|
"majority_hash": null,
|
|
"frame": 184239
|
|
}
|
|
]
|
|
}
|
|
]
|