diff --git a/infra/fast-time/vote-or-burn.mjs b/infra/fast-time/vote-or-burn.mjs index f1707de52..733e8470e 100644 --- a/infra/fast-time/vote-or-burn.mjs +++ b/infra/fast-time/vote-or-burn.mjs @@ -40,7 +40,7 @@ const NEVER = '18446744073709551615'; const args = process.argv.slice(2); const flag = (name, dflt) => { const i = args.indexOf(`--${name}`); return i >= 0 ? Number(args[i + 1]) : dflt; }; const sflag = (name) => { const i = args.indexOf(`--${name}`); return i >= 0 ? args[i + 1] : null; }; -const RULE = sflag('rule') || 'burn'; +const RULE = sflag('rule') || 'bonus'; const EXPECT = sflag('expect') || RULE; const SECS = flag('secs', 300), TAIL = flag('tail', 120), TOL = flag('tolerance', 0.01), PAIRS = flag('pairs', 10); const GENESIS_BITS = flag('genesis-bits', 0x1f010000); @@ -69,7 +69,10 @@ const REPLAY_WAIT = flag('replay-wait', 240); const CASE = sflag('case') || `rule-${RULE}-expect-${EXPECT}${REPLAY ? (REPLAY_BPS ? `-replay-bps${REPLAY_BPS}` : '-replay') : ''}`; const OUT = sflag('out') || `${ROOT}docs/plans/counter-asic-3-gate/vote-or-burn-${CASE}.json`; const FIGURES = { none: { producer: 1.0, pool_over_full_producer: 0.25 }, burn: { producer: 0.8, pool_over_full_producer: 0.25 }, bonus: { producer: 0.9, pool_over_full_producer: 0.35 } }; -if (!FIGURES[RULE] || !FIGURES[EXPECT]) { console.error('usage: --rule none|burn|bonus --expect none|burn|bonus'); process.exit(2); } +// vote-or-burn was removed from the node on 7 October 2026 (the project lead's word: the bonus at the testnet genesis, no burn); the +// `burn` rule and the `--replay-bps` burn share stay in this file's history only and are refused here +if (RULE === 'burn' || EXPECT === 'burn' || REPLAY_BPS) { console.error('vote-or-burn was removed from the node on 7 October 2026; rules: none|bonus'); process.exit(2); } +if (!FIGURES[RULE] || !FIGURES[EXPECT]) { console.error('usage: --rule none|bonus --expect none|bonus'); process.exit(2); } const started = []; const log = (...a) => console.log(new Date().toISOString().slice(11, 23), ...a); const sleep = (ms) => new Promise(r => setTimeout(r, ms)); @@ -88,7 +91,7 @@ const DAY_MS = field('pow_day_ms'); const override = `${TMP}/override.json`; writeFileSync(override, mergeOverrideText(swapFinality(baseText, FINALITY), { genesis_bits: GENESIS_BITS, skip_proof_of_work: false, - vote_or_burn_activation_daa: RULE === 'burn' ? '0' : NEVER, signing_bonus_activation_daa: RULE === 'bonus' ? '0' : NEVER, + signing_bonus_activation_daa: RULE === 'bonus' ? '0' : NEVER, program_class_v3_activation_daa: NEVER, program_class_v4_activation_daa: NEVER, })); log(`case ${CASE}: finality ${FINALITY}, rule ${RULE}, expect ${EXPECT} (producer ratio ${FIGURES[EXPECT].producer}, pool ${FIGURES[EXPECT].pool_over_full_producer} of the full producer share), ${SECS} s, tail ${TAIL}`);