consensus_spec.json
3566 bytes
{
"blocks": {
"accepted_block_versions": [
1,
2
],
"current_block_version": 2,
"hash_rule": "height, created_at, previous_hash, merkle_root, block_txid, and tx_count define the block hash",
"merkle_rule": "ordered txids are committed through a SHA-256 Merkle root",
"producer_id": "spacecash-devnet-producer-1"
},
"chain_id": "spacecash-devnet-1",
"fork_choice": {
"automatic_reorgs": false,
"diverged_peer_rule": "higher-scoring diverged peers are reported but not imported",
"id": "spacecash-devnet-append-only-v1",
"import_safety": [
"snapshot verification",
"producer allowlist",
"append-only check",
"pre-import backup",
"post-import audit"
],
"rule": "higher validated height is importable only when the peer extends the local tip exactly"
},
"id": "spacecash-devnet-consensus-v1",
"ledger": {
"genesis_plan": {
"hash": "55D62969DFEE8460989A8A36D59F37D78CFB8BAF48DE44BF7B991FE61DFEEC27",
"id": "spacecash-devnet-genesis-plan-v1",
"version": 1
},
"monetary_policy": {
"hash": "5C4C51D443B91EF950B0E3FCC2A653F14C650E2316CACF2D93740CE180496B64",
"id": "spacecash-devnet-monetary-policy-v1",
"version": 1
},
"storage": "SQLite local ledger",
"supply_invariant": "sum(wallet balances) must equal genesis supply after every audited transaction set",
"supply_units": 1000000000000000,
"treasury": "SPACE-TREASURY"
},
"mainnet_gaps": [
"public validator enrollment and rotation",
"slashing or removal rules",
"authenticated peer identity and network abuse controls",
"economic finality or BFT consensus",
"automatic reorg policy",
"public testnet evidence",
"external audit closure"
],
"mode": "local signed devnet",
"network": {
"bootstrap_peers": [],
"peer_discovery": "configured/bootstrap peer gossip only",
"sync_boundary": "peer HTTP APIs are untrusted until manifest, snapshot, producer policy, and append-only checks pass"
},
"node_protocol_version": 1,
"producer_policy": {
"default_allowed_producers": [
"spacecash-devnet-producer-1"
],
"legacy_devnet_compatibility": "legacy v1 blocks are audit-compatible on devnet but block mainnet readiness",
"rule": "new versioned blocks must be produced by a locally allowed producer id",
"version": 1
},
"scope": "Defines the current reviewable devnet consensus envelope. It is not a public mainnet consensus protocol.",
"spec_hash": "02FC7BE0A5DDE8D5D95EDA14BD8D1F195BB680D1D853123ABD89F8BBDAF85E5B",
"transactions": {
"mempool_rule": "pending spends reserve sender balance before mining",
"nonce_rule": "settled signed spends and pending mempool entries must be unique per sender nonce",
"replay_domain": [
"chain_id",
"version",
"action",
"sender",
"recipient/product_id",
"amount",
"nonce"
],
"signed_payload_version": 1,
"wallet_auth": "ECDSA P-256 over canonical JSON"
},
"validator_checkpoints": {
"current_status": "checkpoint quorum is local evidence, not full Byzantine-fault-tolerant finality",
"default_quorum": 1,
"payload_binding": [
"chain_id",
"height",
"block_hash",
"chain_digest",
"validator"
],
"rule": "checkpoint votes must be signed by locally registered validator wallets",
"version": 1
},
"version": 1
}