Economy Testnet Readiness Matrix
This matrix compares current implementation against:
docs/DESIGN_CONCEPTS.mddocs/GENESIS_TRANSPARENCY.mddocs/RELEASE_CHECKLIST.mdshekyl-dev/docs/TESTNET_MINER.mdshekyl-dev/docs/TESTNET_REHEARSAL_CHECKLIST.md
Status labels:
implementedpartialmissing
Drift labels:
doc_correctioncode_fix_requiredneeds_decision
Core Economy Model
-
Constants source of truth (
money_supply,coin, decimal point, burn/release/staking params)- Docs intent: canonical economics constants define testnet economics behavior.
- Code: generated from
config/economics_params.jsoninto build-time headers (src/cryptonote_config.hincludes generated params). - Status:
implemented - Drift:
doc_correction(some docs still imply direct literals incryptonote_config.h)
-
Component 1: release multiplier
- Code paths:
rust/shekyl-economics/src/release.rs, FFI exports inrust/shekyl-ffi/src/lib.rs, applied insrc/cryptonote_basic/cryptonote_basic_impl.cpp. - Status:
implemented - Drift: none
- Code paths:
-
Component 2: adaptive burn + split
- Code paths:
rust/shekyl-economics/src/burn.rs,src/shekyl/economics.h, use insrc/cryptonote_core/blockchain.cppandsrc/cryptonote_core/cryptonote_tx_utils.cpp. - Status:
implemented - Drift: none
- Code paths:
-
Component 3: stake-ratio governance signal
- Code paths: stake ratio read and fed into burn computations in
blockchain.cpp. - Status:
implemented - Drift: none
- Code paths: stake ratio read and fed into burn computations in
-
Component 4: staker emission share + decay
- Code paths:
rust/shekyl-economics/src/emission_share.rs, split used in miner tx construction. - Status:
implemented - Drift: none
- Code paths:
RPC/Test Visibility
-
Economy observability fields in daemon RPC (
get_info/staking info)- Present: release multiplier, burn pct, stake ratio, pool totals, emission share fields.
- Status:
implemented - Drift:
partialdocs mention annualized yield field; daemon does not currently exposestaker_yield_annualizeddirectly. - Drift label:
needs_decision(add field to code vs adjust docs wording)
-
Operator testnet runbook and rehearsal gates
- Present in
shekyl-dev/docs/TESTNET_MINER.mdandshekyl-dev/docs/TESTNET_REHEARSAL_CHECKLIST.md. - Status:
implemented(ops docs exist) - Drift: none
- Present in
Automation/Test Coverage
-
Rust unit tests for economics formulas
- Present in
shekyl-economicscrate modules. - Status:
implemented - Drift: none
- Present in
-
C++ core_tests aligned with Shekyl economics
gen_block_rewardtest re-enabled and rewritten to verify miner outputs against the four-component formula (release multiplier + emission split + fee burn).chaingen.cpptest generator now passes explicitcirculating_supply,tx_volume_avg,stake_ratio, andgenesis_ng_heighttoconstruct_miner_txfor parameter parity with the validator.- Status:
implemented(80/80 core_tests pass) - Drift: none
-
Rust sim parity with canonical config
- Current sim defaults are hardcoded in
rust/shekyl-economics-sim/src/engine.rs. - Status:
partial - Drift label:
code_fix_required(add config parity tests to prevent drift)
- Current sim defaults are hardcoded in
-
Rehearsal automation checks in Shekyl core
TESTNET_REHEARSAL_CHECKLIST.mdreferencesscripts/check_testnet_genesis_consensus.py; not present in this repo.- Status:
missing - Drift label:
needs_decision(import/add script here vs keep only in shekyl-dev)
-
Automated end-to-end economy assertions (live chain + RPC)
- Existing tests are mostly formula/unit-level or specific parity checks.
- Status:
partial - Drift label:
code_fix_required(add economy-focused functional assertions)
High-Impact Mismatch Notes
-
Block-time assumptions in docs vs current HF behavior
- Design/genesis references use 2-minute assumptions for day-count examples.
- Runtime now aligns with that design target by consistently using
DIFFICULTY_TARGET_V2(120s) in active HF1 difficulty target, block reward scaling, unlock-time leeway, RPC block target reporting, and sync ETA output. - Drift label: resolved (
code_fix_requiredcompleted)
-
HF naming in rehearsal checklist
TESTNET_REHEARSAL_CHECKLIST.mdsaid "post-HF17 rules" for v3 tx checks.- Shekyl reboot policy is HF1-only.
- Drift label: resolved (docs updated to HF1 across V3_ROLLOUT, PQC, PQC_MULTISIG, and STAKER_REWARD_DISBURSEMENT)
Immediate Pre-Testnet Blockers
- Missing automated parity guard between
economics_params.jsonand simulation defaults. - Missing scripted rehearsal verifier in this repo for checklist hard gates (genesis consistency RPC checks).
- No single automated economy smoke test that validates key RPC economics fields over chain progression.
Next Actions
- Add Rust parity and boundary tests (
code_fix_required). - Add/port testnet rehearsal check script (
needs_decisionif it should live in shekyl-dev only). - Correct stale wording in docs where facts are wrong (
doc_correctiononly; no design changes).