igneum-prove-core carries the node's fees.rs (PgasTable, FeeParams PROTOTYPE and CALIBRATED_V1, FeeSchedule::at); the shard input and every fixture carry the schedule and the block's DAA score; the executor reads the set at that score, raises the base fees to its floors and meters with its intrinsic, B_p and modexp entry, as the node's execute_segment does. The 328-byte statement is unchanged: the node's native veto pins the schedule (a new layout would be a consensus change for every node). Exporter: schedule and daaScore from the dump (gen.mjs writes them), per-segment switch on replay, S_p from the set. Fixtures from one simnet chain across the switch at DAA 800: fees-switch-prototype (block 51), fees-v1-shards2 (351), fees-v1-shards3 (355); 358 segments replayed, every state root the node's. Host tests on both sides. Guest re-pinned: shard 0x2b1a81cb..., aggregator 0x474678f3...; pinned-guests-check passes. Node fork 2b6d23ef unchanged (igneum-exec tests 11 passed). Digest for the override with fees_v1_activation_daa 210000: ab8847da538dead1dc10e046dfaadab3c1c35928e3748810c4e050d4a886087a. Runbook docs/plans/fee-switch-devnet.md; infra/devnet/restart-hand-nodes.sh and restart-seed.sh take the override object (the hand nodes and the seed run 20139145 today and must move to 2b6d23ef first). One line on the live page, spec 5.11, the testnet README, the floor analysis, the bench log and the journey. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
50 lines
2.6 KiB
Bash
Executable file
50 lines
2.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# A throwaway one-node igneumd simnet (PoW skipped) with one stub miner, for cutting proving fixtures.
|
|
# Ports 29300 (gRPC), 29301 (p2p), 29390 (eth JSON-RPC); data under /tmp/igneum-prove-fixtures. The live
|
|
# devnet (26610, 26611, 26640, 26641, 28640) and the other agents' ports are never touched.
|
|
#
|
|
# ./net.sh start ./net.sh stop
|
|
#
|
|
# BIN: the devnet-v4 worktree's release binaries by default (IGNEUM_BIN overrides). IGNEUM_OVERRIDE: an override
|
|
# params file for the node (the simnet accepts one), e.g. '{"fees_v1_activation_daa": 60}' written to a file, to
|
|
# cut fixtures on both sides of the fee switch (5 October 2026).
|
|
set -u
|
|
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
|
BIN="${IGNEUM_BIN:-$ROOT/vendor/igneum-node-v4/target/release}"
|
|
DATA=/tmp/igneum-prove-fixtures
|
|
PIDS="$DATA/pids"
|
|
DURATION="${DURATION:-3600}"
|
|
HOLD_MS="${HOLD_MS:-2500}"
|
|
# The miner's EVM payout address: the address of the generator's miner key (tools/prove-fixtures/gen.mjs).
|
|
MINER_EVM=70997970c51812dc3a010c7d01b50e0d17dc79c8
|
|
# devnet-v4 miners name the payout address with --evm-address; the execution-layer branch's miner derives it
|
|
# from the low 20 bytes of --vote-key-hash. IGNEUM_MINER_ID overrides either.
|
|
if [ -n "${IGNEUM_MINER_ID:-}" ]; then MINER_ID="$IGNEUM_MINER_ID"
|
|
elif "$BIN/igneum-miner" 2>&1 | grep -q -- '--evm-address'; then MINER_ID="--evm-address $MINER_EVM"
|
|
else MINER_ID="--vote-key-hash 0x000000000000000000000000$MINER_EVM"; fi
|
|
|
|
case "${1:-}" in
|
|
start)
|
|
rm -rf "$DATA"; mkdir -p "$DATA/n1"; : > "$PIDS"
|
|
OVERRIDE_ARG=""; [ -n "${IGNEUM_OVERRIDE:-}" ] && OVERRIDE_ARG="--override-params-file=$IGNEUM_OVERRIDE"
|
|
"$BIN/igneumd" --simnet --utxoindex --loglevel=info --disable-upnp --enable-unsynced-mining --unsaferpc \
|
|
--appdir="$DATA/n1" --rpclisten=0.0.0.0:29300 --listen=0.0.0.0:29301 --evm-rpclisten=127.0.0.1:29390 $OVERRIDE_ARG \
|
|
> "$DATA/n1/node.log" 2>&1 &
|
|
echo $! >> "$PIDS"
|
|
t=0; until grep -q "GRPC Server starting on" "$DATA/n1/node.log" 2>/dev/null || [ $t -ge 60 ]; do sleep 1; t=$((t+1)); done; sleep 2
|
|
"$BIN/igneum-miner" mine grpc://127.0.0.1:29300 1 "$DURATION" fixtures \
|
|
--engine stub --hold-ms "$HOLD_MS" --network simnet $MINER_ID \
|
|
> "$DATA/miner.log" 2>&1 &
|
|
echo $! >> "$PIDS"
|
|
echo "started node (eth RPC 29390) and one stub miner (hold $HOLD_MS ms); data $DATA"
|
|
;;
|
|
stop)
|
|
if [ -f "$PIDS" ]; then
|
|
while read -r p; do [ -n "$p" ] && kill "$p" 2>/dev/null; done < "$PIDS"
|
|
sleep 1
|
|
while read -r p; do [ -n "$p" ] && kill -9 "$p" 2>/dev/null; done < "$PIDS"
|
|
fi
|
|
echo "stopped"
|
|
;;
|
|
*) echo "usage: $0 start | stop"; exit 2 ;;
|
|
esac
|