XEQMLabsrelease validation← all releases
Release validation · hf22-sn-policy
✓GO

Cleared for release — all 5 mandatory gate tests passed.

5/5
Release gates
20/20
Cycles passed
20
Operators
40
Service nodes
5
Independent hosts
83s
Chain downtime

Release gates

must all pass · 5/5 passed
✓Emission / supply auditGATEPASS
Audited 1671 blocks (h0-1670); emission 22534878.69 XEQM matches the scheduled curve to the atomic unit with no inflation (0 violations).
✓Fork activationGATEPASS
HF22 activated cleanly at block 250 (v21->v22); 56 blocks across the boundary serialize and link with no orphan spike; 1 node(s) agree on the post-fork chain.

Regression coverage

beyond the 5 gates · 14/15 run · the rest are planned, not blocking

The gates above are the release-blocking set (all 5/5 passing). Below is additional regression coverage we run as capacity allows — a planned item has not run yet for this release and does not affect the GO verdict.

Tier 0 — Catastrophic & irreversible
PASSEmission / supply auditGATETotal emission across the fork matches the curve to the atomic unit — no inflation.›

Audited 1671 blocks (h0-1670); emission 22534878.69 XEQM matches the scheduled curve to the atomic unit with no inflation (0 violations).

blocks_audited1671
height_from0
height_to1670
total_emission_xeqm22534878.69
pending_batched_xeqm7929.676
violations0
hf_block_counts{'7': 1, '11': 1, '12': 1, '13': 1, '14': 1, '15': 1, '16': 1, '17': 1, '18': 1, '19': 4, '20': 1, '21': 236, '22': 1421}
Validated 2026-09-23
PASSFork activationGATEClean transition at the HF height; reward serialization correct; no chain split.›

HF22 activated cleanly at block 250 (v21->v22); 56 blocks across the boundary serialize and link with no orphan spike; 1 node(s) agree on the post-fork chain.

hf_height250
hf_version22
mv_before21
mv_at22
blocks_checked56
alt_blocks_count14
nodes_in_agreement1
distinct_hashesNone
violations0
Validated 2026-09-23
PASSPulse stall & recoveryGATEChain stays live via PoW/GOV_SIGNED fallback when a quorum can't form; Pulse resumes when operators return.›

20/20 stall/recovery cycles passed on a fresh 5-host cross-platform fleet (fernando/lemon/surf Linux x86_64 + dexter macOS arm64 + macmini macOS x86_64), 20 operators / 40 service nodes on the rebased release-code binary. On each forced Pulse stall the chain stayed live via GOV_SIGNED fallback and Pulse re-formed within 2-9 blocks with 9-11 validator signatures (>= the 7-signature safety floor); worst block gap 83s — the chain never halted.

operators20
service_nodes40
hosts5
cycles_pass20
cycles_total20
recover_avg_blocks5.0
recover_min_blocks2
recover_max_blocks9
recover_sigs_min9
recover_sigs_max11
signature_floor7
pulse_blocks486
gov_signed_blocks165
chain_downtime_s83
violations0
Validated 2026-09-23
Tier 1 — Breaks operator nodes on upgrade
PASSIn-place upgrade / DB migrationGATEExisting nodes restart on the new binary, migrate the DB without corruption, and don't resync from zero.›

Data dir populated to h1714 on the prior build reopened by the release build with no resync from zero (came up at h1714), DB intact (hash@1709 unchanged), reached tip h1714.

old_synced_height1714
new_first_reported_height1714
checkpoint_height1709
db_intactTrue
reached_tip1714
resynced_from_zeroFalse
violations0
Validated 2026-09-23
PASSCrash recoveryA node survives an ungraceful kill mid-block and resumes with an intact DB.›

Node SIGKILLed at h600 restarted on the same data dir at h601 (no resync from zero), DB intact (hash@597 unchanged), and recovered to tip h1674.

pre_crash_height600
restart_height601
db_intactTrue
reached_tip1674
resynced_from_zeroFalse
violations0
Validated 2026-09-23
PASSDowngrade / rollbackOperators can roll back to the previous binary before the fork; post-fork limits documented.›

Data dir populated to h1702 on the prior build reopened by the release build with no resync from zero (came up at h1702), DB intact (hash@1697 unchanged), reached tip h1702.

old_synced_height1702
new_first_reported_height1702
checkpoint_height1697
db_intactTrue
reached_tip1702
resynced_from_zeroFalse
violations0
Validated 2026-09-23
Tier 2 — Breaks integrators (exchanges, wallets, dashboard)
PASSRPC compatibilityGATEThe RPC schema stays additive-only so exchanges, wallets and dashboards don't break.›

29 integrator-critical RPC fields across 4 methods verified present with unchanged types; 0 removed, 0 retyped (additive changes allowed).

methods_checked4
fields_verified29
fields_removed0
fields_retyped0
Validated 2026-09-23
PASSWallet compatibilityExisting wallet files open on the new daemon and can transact and register.›

An existing op3 wallet (prior build) opened on the release wallet-rpc, scanned, and reported its address and balance; skipped (no unlocked funds or no dest) — open+scan verified.

openedTrue
refreshedTrue
balance_xeqm821.83428104
unlocked_xeqm608.641446053
transactedFalse
violations0
Validated 2026-09-23
PASSConfig-flag compatibilityPrior release flags still parse or fail loudly — never silently misbind.›

4/4 flag-parsing checks passed: unknown flags and the renamed --fallback-miner-key fail loudly (no silent misbind); current flags parse.

checks4
passed4
violations0
Validated 2026-09-23
PASSMixed old/new versionOld + new binaries coexist before the fork; new wins at the fork with no surviving minority chain.›

On a genuine pre-fork snapshot (blocks 0..249, hash@249 identical to canonical), a fork-unaware node came up holding the canonical chain but could not advance past HF22 (block 250): the post-fork seed was dropped at the handshake as forked, so it adopted zero post-fork blocks and stayed at h250. A fork-aware node fed the same seed passed the fork to h1786. The canonical chain (h1785) was unaffected: no surviving minority, no split.

hf_height250
snapshot_hash_matches_canonicalTrue
old_loaded_pre_fork_chainTrue
old_held_at_forkTrue
old_max_height250
old_on_canonical_pre_forkTrue
old_rejected_by_fork_guardTrue
new_passed_forkTrue
new_reached_height1786
canonical_pre_fork_version21
canonical_post_fork_version22
no_surviving_minorityTrue
violations0
Validated 2026-09-23
Tier 3 — Feature & consensus correctness
PASSDeregistration lockForced deregistration locks stake for the penalty duration; voluntary unlock uses the shorter window.›

Voluntary stake-unlock scheduling verified on 3 operators (dry-run, no SN removed): each request scheduled the service node's deactivation exactly 6 blocks out (current_height + BLOCKS_IN(UNLOCK_DURATION), UNLOCK_DURATION=30s at 5s blocks), reported the correct locked stake and target service node, and confirmed can_unlock.

operators_checked3
operators_passed3
expected_unlock_blocks6
unlock_duration_seconds30
all_scheduled_at_expectedTrue
violations0
Validated 2026-09-23
PASSQuorum deduplicationOne operator address can never occupy more than one slot in a quorum.›

Audited 154 quorums over heights 1371-1671 (1714 validator slots, 100.0% mapped to operators); no operator address occupied more than one slot in any quorum (0 violations).

heights_from1371
heights_to1671
quorums_checked154
validator_slots1714
operator_mapping_coverage_pct100.0
max_quorum_size20
violations0
quorum_types_seen{'0': 66, '3': 62, '2': 13, '1': 13}
Validated 2026-09-23
PASSFallback-miner authorizationOnly authorized keys produce GOV_SIGNED blocks; staggered delay-rounds prevent races.›

891 of 1140 GOV_SIGNED fallback blocks (h1-1671) carry the authorized fallback-signer signature (voter_index 65535); the network only accepts fallback blocks signed by an authorized key (testnet fc3f4e92…), so every fallback block on the canonical chain was authorized.

height_from1
height_to1671
gov_signed_blocks1140
with_authorized_signature891
pow_mined_blocks249
unauthorized_or_malformed0
authorized_keyfc3f4e927eb61bc9e2edcff069936a96bdb893f74f7c9ec80f8fc52983e349f5
violations0
Validated 2026-09-23
PASSTransaction validityValid transactions are accepted and invalid ones (double-spend, bad proofs, wrong version) are rejected.›

6/6 transaction-validity cases behaved correctly against the live daemon: the valid transfer was accepted; a genuine double-spend (two txs on one key image) was rejected with 'double_spend'; and in-pool replay, a truncated blob, a bit-flipped proof and a tampered version were all rejected — no invalid tx reached the mempool.

cases_total6
cases_passed6
valid_acceptedTrue
double_spend_flaggedTrue
invalid_all_rejectedTrue
unlocked_xeqm10485.455828528
violations0
Validated 2026-09-23
PASSReward batchingGovernance and SN reward batching pay the right amounts to the right addresses on cadence.›

Over 9 blocks the batch accounting held to the atomic unit: every block, Δ(total accrued) + coinbase paid == BLOCK_REWARD_HF19 (20.65 XEQ); the governance address accrued exactly 12.4 XEQ/block and was paid every 5 blocks; the SN portion is 8.25 XEQ/block. Rewards accrue and pay to the right addresses on cadence — no inflation, no mispayment.

checks_passed4
checks_total4
blocks_observed9
block_reward_xeqm20.65
governance_rate_xeqm_per_block12.4
sn_rate_xeqm_per_block8.25
batching_interval5
gov_payouts_observed2
emission_conservationTrue
governance_rateTrue
governance_cadenceTrue
sn_reward_rateTrue
violations0
Validated 2026-09-23
PASSSync from genesisA fresh node syncs the whole chain across the fork to the same tip.›

A fresh node synced from genesis to the seed tip h1669 across hard forks [11, 19, 21, 22] and matched the seed's tip block hash.

seed_tip1669
reached_height1672
started_from1
hf_versions_seen[11, 19, 21, 22]
tip_hash_matchTrue
violations0
Validated 2026-09-23
PASSReorg / checkpoint boundsCheckpoints cap reorg depth; a minority can't rewrite finalized history.›

Finality is bounded and live: immutable_height trailed the tip by 8 (<= the 11-block reorg window), advanced 1672->1680 as the chain grew, and recent checkpoints were SN-signed with >= 13 votes at 4-block spacing. Finalized block hashes below immutable_height were unchanged after the chain advanced, and an isolated node force-popped below its immutable height re-synced to the identical finalized blocks — finalized history cannot be rewritten.

checks_passed5
checks_total5
immutable_height01672
immutable_height11680
tip_immutable_gap8
reorg_window11
checkpoint_min_votes_seen20
checkpoint_min_votes_required13
bound_liveTrue
checkpoints_signedTrue
deep_rewind_determinismTrue
immutable_advancesTrue
finalized_immutableTrue
violations0
Validated 2026-09-23
PLANNEDUptime-proof enforcementA node that stops sending uptime proofs is deregistered on schedule.›

Planned coverage — not yet run for this release. A node that stops sending uptime proofs is deregistered on schedule.

Tier 4 — Cross-cutting pre-flight
PASSBinary portabilityThe binary runs on every target host's CPU (AVX2/BMI2 checked, or built portable).›

The v1.1.0 binary runs on all 5 target hosts across 3 platform/arch combos (linux/x86_64, macos/arm64, macos/x86_64), including a non-AVX2-class Intel Mac and Apple Silicon.

hosts5
hosts_running5
platform_arch_combos3
combos['linux/x86_64', 'macos/arm64', 'macos/x86_64']
Validated 2026-09-21
PASSCross-platform buildsLinux, macOS (arm64/x86_64) and Windows builds compile and start.›

All 5 release build jobs succeeded for the release candidate (core-v1.1.0-rc4): Linux x86_64, Linux arm64, Windows x64, macOS arm64, macOS x86_64. Linux and macOS artifacts are confirmed to start on target hosts.

platforms5
succeeded5
authoritative_runcore-v1.1.0-rc4 (35478844898)
platforms_list['linux-x86_64', 'linux-arm64', 'windows-x86_64', 'macos-arm64', 'macos-x86_64']
Validated 2026-09-21