diff --git a/tools/attack/v6-census/v6census.sh b/tools/attack/v6-census/v6census.sh index 6c735e951..5c7a0d31b 100755 --- a/tools/attack/v6-census/v6census.sh +++ b/tools/attack/v6-census/v6census.sh @@ -11,21 +11,26 @@ set -u BIN=${BIN:?}; OUT=${OUT:?}; TAG=${TAG:?}; CLASS=${CLASS:?} THREADS=${THREADS:-16}; ERAS=${ERAS:-none}; SEEDS=${SEEDS:-256}; ERAW=${ERAW:-4}; SEEDTAG=${SEEDTAG:-igneum-v6c} +# the pack harness (8 October 2026, lane 2): STATE= adds --state; ERAHEX=<64 hex> lays era 0: over the class (ERAS then names the era index, "0") +STATE=${STATE:-}; ERAHEX=${ERAHEX:-} +EXTRA=""; [ -n "$STATE" ] && EXTRA="$EXTRA --state $STATE" export IGNEUM_FAMILY_GATE=1 mkdir -p "$OUT/logs/$TAG" "$OUT/pids" echo "$$" > "$OUT/pids/$TAG.pid" TSV="$OUT/$TAG.tsv" { - echo "# $TAG class $CLASS eras [$ERAS] seeds $SEEDS era-widths $ERAW weights ${IGNEUM_FG_WEIGHTS:-base} bittest ${IGNEUM_FG_BITTEST:-off} bin $(sha256sum "$BIN" | cut -c1-16) start $(date -u +%FT%TZ) host $(hostname) threads $THREADS" + echo "# $TAG class $CLASS eras [$ERAS] seeds $SEEDS era-widths $ERAW state ${STATE:-none} erahex ${ERAHEX:-none} weights ${IGNEUM_FG_WEIGHTS:-base} bittest ${IGNEUM_FG_BITTEST:-off} bin $(sha256sum "$BIN" | cut -c1-16) start $(date -u +%FT%TZ) host $(hostname) threads $THREADS" printf 'cand\tera\tseed\tcandidates\taccepted\tattempt\tbit_z\tbit_site\tbit_bit\treasons\n' } > "$TSV" one() { era=$1; i=$2 log="$OUT/logs/$TAG/$era-$i.log" if [ "$era" = none ]; then - "$BIN" accept --seed "$SEEDTAG/$i" --class "$CLASS" > "$log" 2>&1 + "$BIN" accept --seed "$SEEDTAG/$i" --class "$CLASS" $EXTRA > "$log" 2>&1 + elif [ -n "$ERAHEX" ]; then + "$BIN" accept --seed "$SEEDTAG/$i" --class "$CLASS" --era "$era:$ERAHEX" --era-widths "$ERAW" $EXTRA > "$log" 2>&1 else - "$BIN" accept --seed "$SEEDTAG/$i" --class "$CLASS" --era "igneum-era-test/$era" --era-widths "$ERAW" > "$log" 2>&1 + "$BIN" accept --seed "$SEEDTAG/$i" --class "$CLASS" --era "igneum-era-test/$era" --era-widths "$ERAW" $EXTRA > "$log" 2>&1 fi n=$(grep -c '^attempt' "$log") acc=$(grep -c 'ACCEPTED' "$log") @@ -34,7 +39,7 @@ one() { reasons=$(grep 'rejected' "$log" | sed 's/.*rejected, //' | sed "s/^(\([^)]*\)).*/\1/" | sort | uniq -c | sort -rn | awk '{printf "%s=%s;", $2, $1}') printf '%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' "$TAG" "$era" "$i" "$n" "$acc" "${first:--1}" "${bz:-nan - -}" "$reasons" } -export -f one; export BIN OUT TAG CLASS ERAW SEEDTAG +export -f one; export BIN OUT TAG CLASS ERAW SEEDTAG EXTRA ERAHEX for era in ${ERAS//,/ }; do for i in $(seq 0 $((SEEDS - 1))); do echo "$era $i"; done done | xargs -P "$THREADS" -n 2 bash -c 'one "$0" "$1"' >> "$TSV"