testnet_rehearsal/testnet_plan.json

7373 bytes
{
  "base_port": 19001,
  "bootstrap_peers": [
    "http://127.0.0.1:19001",
    "http://127.0.0.1:19002",
    "http://127.0.0.1:19003"
  ],
  "candidate": {
    "automated_blockers": [],
    "automated_release_candidate": true,
    "chain_digest": "6010FD7EF434E807EC801D1562641F9ABB1DDC3C73E5F2D0AC9E4FF47E864439",
    "db": "spacecash_testnet_candidate.sqlite3",
    "mainnet_ready": false,
    "manual_blockers": [
      "public_testnet_complete",
      "external_security_review_complete",
      "legal_compliance_review_complete",
      "wallet_recovery_custody_policy_complete",
      "production_deployment_runbook_complete"
    ],
    "tip_hash": "79A7326FFC52A2047FFF6139C99DE09552C47BC82839E0175844875D980E0DB3"
  },
  "chain_id": "spacecash-devnet-1",
  "dev_keys_included": false,
  "evidence_templates": {
    "exit_evidence": "public_testnet_exit_evidence_template.json",
    "node_reports": [
      "reports/node-01/health_report.json",
      "reports/node-01/readiness_report.json",
      "reports/node-01/audit_report.json",
      "reports/node-01/chain_manifest.json",
      "reports/node-01/checkpoint_report.json",
      "reports/node-01/peer_report.json",
      "reports/node-02/health_report.json",
      "reports/node-02/readiness_report.json",
      "reports/node-02/audit_report.json",
      "reports/node-02/chain_manifest.json",
      "reports/node-02/checkpoint_report.json",
      "reports/node-02/peer_report.json",
      "reports/node-03/health_report.json",
      "reports/node-03/readiness_report.json",
      "reports/node-03/audit_report.json",
      "reports/node-03/chain_manifest.json",
      "reports/node-03/checkpoint_report.json",
      "reports/node-03/peer_report.json"
    ],
    "operator_onboarding": [
      "operators/README.md",
      "operators/contact_roster_template.md",
      "operators/evidence_intake_checklist.md",
      "operators/operator_commitment_template.md",
      "operators/node-01/operator_intake.json",
      "operators/node-01/node_runbook.md",
      "operators/node-01/evidence_manifest_template.json",
      "operators/node-02/operator_intake.json",
      "operators/node-02/node_runbook.md",
      "operators/node-02/evidence_manifest_template.json",
      "operators/node-03/operator_intake.json",
      "operators/node-03/node_runbook.md",
      "operators/node-03/evidence_manifest_template.json"
    ],
    "scenarios": [
      "evidence/scenarios/node_health_and_readiness.json",
      "evidence/scenarios/signed_transfer.json",
      "evidence/scenarios/product_payment.json",
      "evidence/scenarios/checkpoint_quorum.json",
      "evidence/scenarios/peer_gossip.json",
      "evidence/scenarios/sync_preview.json",
      "evidence/scenarios/guarded_import.json",
      "evidence/scenarios/node_restart_recovery.json",
      "evidence/scenarios/incident_response.json"
    ]
  },
  "generated_at": "2026-06-11T21:14:45Z",
  "host": "127.0.0.1",
  "manual_gate_status": "evidence_template_only",
  "mode": "public-testnet-plan-v1",
  "node_count": 3,
  "nodes": [
    {
      "bootstrap_peers": [
        "http://127.0.0.1:19002",
        "http://127.0.0.1:19003"
      ],
      "db": "nodes/node-01/spacecash_testnet.sqlite3",
      "host": "127.0.0.1",
      "label": "SpaceCash Public Testnet node-01",
      "manifest_url": "http://127.0.0.1:19001/chain/manifest",
      "node_name": "node-01",
      "port": 19001,
      "readiness_url": "http://127.0.0.1:19001/readiness",
      "start_command": "tools\\nsp_python.cmd tools\\spacecash_daemon.py --host 127.0.0.1 --port 19001 --db nodes/node-01/spacecash_testnet.sqlite3",
      "url": "http://127.0.0.1:19001",
      "validator_quorum": 2,
      "validators": [
        "SPACE-69DA24351C0E5CDB84EC6AD09187D7C6",
        "SPACE-99BD9F2E9CA5D46ACD2FB214F7C952F5",
        "SPACE-70E60F9855A436DCB0AACE8BBA0E2179"
      ]
    },
    {
      "bootstrap_peers": [
        "http://127.0.0.1:19001",
        "http://127.0.0.1:19003"
      ],
      "db": "nodes/node-02/spacecash_testnet.sqlite3",
      "host": "127.0.0.1",
      "label": "SpaceCash Public Testnet node-02",
      "manifest_url": "http://127.0.0.1:19002/chain/manifest",
      "node_name": "node-02",
      "port": 19002,
      "readiness_url": "http://127.0.0.1:19002/readiness",
      "start_command": "tools\\nsp_python.cmd tools\\spacecash_daemon.py --host 127.0.0.1 --port 19002 --db nodes/node-02/spacecash_testnet.sqlite3",
      "url": "http://127.0.0.1:19002",
      "validator_quorum": 2,
      "validators": [
        "SPACE-69DA24351C0E5CDB84EC6AD09187D7C6",
        "SPACE-99BD9F2E9CA5D46ACD2FB214F7C952F5",
        "SPACE-70E60F9855A436DCB0AACE8BBA0E2179"
      ]
    },
    {
      "bootstrap_peers": [
        "http://127.0.0.1:19001",
        "http://127.0.0.1:19002"
      ],
      "db": "nodes/node-03/spacecash_testnet.sqlite3",
      "host": "127.0.0.1",
      "label": "SpaceCash Public Testnet node-03",
      "manifest_url": "http://127.0.0.1:19003/chain/manifest",
      "node_name": "node-03",
      "port": 19003,
      "readiness_url": "http://127.0.0.1:19003/readiness",
      "start_command": "tools\\nsp_python.cmd tools\\spacecash_daemon.py --host 127.0.0.1 --port 19003 --db nodes/node-03/spacecash_testnet.sqlite3",
      "url": "http://127.0.0.1:19003",
      "validator_quorum": 2,
      "validators": [
        "SPACE-69DA24351C0E5CDB84EC6AD09187D7C6",
        "SPACE-99BD9F2E9CA5D46ACD2FB214F7C952F5",
        "SPACE-70E60F9855A436DCB0AACE8BBA0E2179"
      ]
    }
  ],
  "ok": true,
  "operator_packet": {
    "blockers": [
      "node-01.daily_reports_missing",
      "node-01.evidence_manifest_identity_incomplete",
      "node-01.evidence_manifest_not_approved",
      "node-01.node_reports_incomplete",
      "node-01.not_independent_operator",
      "node-01.operator_identity_incomplete",
      "node-01.operator_intake_not_approved",
      "node-01.preflight_incomplete",
      "node-01.scenario_artifacts_incomplete",
      "node-02.daily_reports_missing",
      "node-02.evidence_manifest_identity_incomplete",
      "node-02.evidence_manifest_not_approved",
      "node-02.node_reports_incomplete",
      "node-02.not_independent_operator",
      "node-02.operator_identity_incomplete",
      "node-02.operator_intake_not_approved",
      "node-02.preflight_incomplete",
      "node-02.scenario_artifacts_incomplete",
      "node-03.daily_reports_missing",
      "node-03.evidence_manifest_identity_incomplete",
      "node-03.evidence_manifest_not_approved",
      "node-03.node_reports_incomplete",
      "node-03.not_independent_operator",
      "node-03.operator_identity_incomplete",
      "node-03.operator_intake_not_approved",
      "node-03.preflight_incomplete",
      "node-03.scenario_artifacts_incomplete",
      "not_enough_independent_operators"
    ],
    "check_path": "operator_onboarding_check.json",
    "file_count": 13,
    "node_count": 3,
    "path": "operators",
    "ready": false,
    "status": "intake_template_only"
  },
  "validator_quorum": 2,
  "validators": [
    "SPACE-69DA24351C0E5CDB84EC6AD09187D7C6",
    "SPACE-99BD9F2E9CA5D46ACD2FB214F7C952F5",
    "SPACE-70E60F9855A436DCB0AACE8BBA0E2179"
  ]
}