X14: the signing half. No RPC exposes a certificate's signer set, so
tools/finality-attacks/x14-concentration.mjs now walks the selected
chain over the window, decodes the coinbase finality section (IGNF
trailer: votes, certificates, evidence, the IGNK reveal), rebuilds the
canonical voter list at every checkpoint from headers the way the node's
compute_weights does, and maps every bitmap through it. Read-only on the
Mac observer node under the run lock, node version and DAA recorded,
two readings kept (the window straddles the 0.3.10 restart). Result at
23:00:44 UTC, DAA 138,542: signed weight over the heaviest certificate
per index, 27 keys, top-1 10.0%, top-3 29.1%, top-10 77.3%; hashing
6.4/19.2/60.1, aggregation 44.9/84.1/100, proving 100/100/100. Checks:
240 of 240 rebuilt voter lists equal the node's count, 194 of 194
certificates mapped, 27 reveals against BLAKE2b with 0 mismatches.
Status moved to Answered with evidence for all four; the old status
kept after "Was:". Bench-log entry appended.
X5 (paragraph only; Status stays Decision owner: the project lead): the observer
columns of O-X.1 on this branch, not deployed, the running observer
untouched: live_peer_asn (offline prefix table, no third-party lookup),
live_key_machines (machine fingerprint per vote key from the log
intake), live_pool_statements (signed JSON {pool, keys[], signed_at},
Ed25519, parser and verifier), live_concentration (nightly top-1/3/10
for the four concentrations plus N_ind labelled "proposed definition").
Pure functions in tools/observer/lib/concentration.mjs and
lib/nightly.mjs; keyed BLAKE2b in tools/finality-attacks/lib/blake2b.mjs;
9 node:test tests, all passing.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Ledger rows of these ids moved to Fixed on a branch, pending merge (fork ledger-fixes bd1b676a, suites on PC 2 jobs
build-20261005-200049 and -200606), G10 to Rule written (spec 8.3 item 2), the F1 tail; bench-log entry with the
build, the suites (six attempts, the shared-zip race named), the M25 mismatch re-run (65/0 and 65/0, 130 accepted,
0 rejected) and the M28 emu test (tampered pack refused). Main-repo code: packfile.h SHA-256 kernel check and the
OpenCL prepare check (M28), per-card pack directories and the exit-42 wait (X22), the dead override field dropped
from infra/fast-time/override-60x.json (X19), the 2/3 wording in tools/finality-attacks/run.mjs (F1).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
sim/daa_trace.py: Kaspa's sampled DAA and the Igneum rule v2 inside a block-level block supply with bounded histories, the two W2 forms from the aggregate series.
sim/finality_v2.py: scenario N, P.wform (hour, daa, median), Sim.supply.
Result: weight share over hash share under 1.0 in every cell; Kaspa's DAA plus the DAA-second window hands the renter a third on day 12; rule v2 keeps it under 20%; the median-time form caps it at 17% under either controller.
Also: the X12 status edit of the previous commit had landed on X1's identical line; X1 is back to Conceded, fix now and X12 carries it.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
F20: tools/finality-attacks/f20.mjs, a 47.5% silent set through four fast-time epoch boundaries (0 locks in the pause, program on schedule, one seed per index, 12 pre-pause locks held, 0 conflicts).
M21: tools/finality-attacks/m21.mjs, 490 KB coinbase bodies on 100-ms proxied links, k re-derived with the fork's calculate_ghostdag_k (p99 812 ms, k 5).
X14 and E16: tools/finality-attacks/x14-concentration.mjs, read-only concentration from the observer node (signing not exposed by any RPC) and one live block's burn output beside its escrow payout.
P17: report only, igneum_getTransactionStatus per state, finalized resolves to the tip.
X12: sim/difficulty/record_report.py, the 3 October record's step profile, retarget trajectory, 2-minute buckets and epoch gap in the bench-log.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Relay (X23, X27): the intake key is its own tier (upload and file drops only, RELAY_INTAKE_COMPAT=0 closes it);
a run task needs an Ed25519 signature by the Mac run key over {to, nonce, body sha256, flags} (RELAY_RUN_PUB,
401 without) and an HMAC tag with the target's machine secret that the agent verifies before anything runs;
results and registration are bound to the machine the secret proves (403 on a forged from).
X24: every client and Mac tool sends x-relay-token as a header to /api/relay?fn=; the path token stays for the
phone page only. X25: the agent arms the logon task only for a restart a task asked for and disarms on start
and exit. X26: 30-day retention with blob deletion, feed capped at 100, the dl base as RELAY_DL_BASE held by the
agent, never in a body. X28: GET inbox never acks (POST inbox does), RELAY-REBOOT on its own line and only with a
reboot flag, 120/min and 10 failed auths/min per IP, no username or folder on register, WSL sudo scoped to
apt-get and dpkg with SETENV, no password on a command line. X29: the intake key reaches curl through -K in
upload.sh and both upload-log.bat; tools/ci/curl-header-check.sh fails the class. G14: TZ=UTC in ship-app.mjs
and publish-jobs.sh; tools/ci/commit-tz-check.sh fails the class; history-rewrite.md names the .old-2026-10-05
files as the values in the history. The handler moved to relay/lib/handler.mjs with injected sql and blobs
(relay/lib/blob.mjs holds @vercel/blob) so relay/test/handler.test.mjs drives it without a database:
47 tests across 6 suites, all green.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Verified by grep and moved to "stated": M2, M4, M7, M9, M10, M13, F5, F10, P1, P4, P6, P7, P10, E5, G1, G2, G3, G4, G6, C2, C3, C5, C6, C8, C10, C11, M18, X1, X2, X7, X8, X9, X10, D2.
Written tonight, then moved: P3 (overclaim 25 plus the certificate-half numbers), M29 (the app paragraph rewritten to Ember 0.3.9), E16 text half (the 20% is burned under igneum-proving-pool-v0, provers paid from the execution-state escrow), L9 (devnet no-value line beside every download control, the tiles), L2 text half (no "so" clause), E17 text half (100,000-gas calls, fleet-size dependence), E13 (the six-row payment-route table in the litepaper Economics and the customer brief, from docs/design/payment-routes.md), E6 (the schedule as a bet), C13 (Monero's record does not price the die), L8 (Circle's decision), X3 (August 2027 under the proofs feed), M10 (overclaim 14 applied).
docs/fud-fixes.md gains section 2.7 with one row per group. Site rebuilt with node build.mjs (the live downloads index moved the HiveOS package to 0.3.9; journey.json regenerated from the log).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
docs/security/keys.md: every key the project depends on (the folder, the gh
keyring, the Vercel env of three projects, the GitHub secrets) with where it
lives, what it unlocks, the blast radius lost and leaked, who rotates it and
the rotation status, written from the files and the scripts that read them.
No value, no private fingerprint. Section 4: the second OTA signing key kept
offline, the app change (a key list plus revocation in the manifest), 0.3.9
as the carrier, and the emergency path if the one key leaks today (a manifest
signed with a new key is useless to 0.3.x apps; the mitigation in order).
tools/keys/backup.sh: ~/Desktop/igneum-keys-<date>.dmg, AES-256, hdiutil's
own prompt (never argv, history or a file), the folder minus build-slots,
dlsite-dir and pytools/, plus a README; attached read-only, every file
compared by sha256, listed, detached. --dry-run lists. restore.sh: --check
compares the image against the live folder without printing values, --to
copies back with 0600/0644 and 0700. test-backup.sh: the end-to-end test on a
scratch folder with a throwaway passphrase, 8 steps, passed.
tools/ci/no-secrets-check.sh, in ci.yml: no tracked file named like a key of
~/.config/igneum, no 64-hex value assigned to a token/key/secret name outside
tests and the allowlist (the OTA public key, the published Hardhat and Anvil
accounts); a --self-test fires on a known-bad tree first. 776 files, 0 hits.
Also: ~/.config/igneum, vercel/ and txgen/ are 0700 now (were 0755).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Footer partial: imprint line with the registered address and the mailbox; Report a flaw mails hello@igneum.network with the spec issues as the second route. Litepaper: Who are you names the entity that ships the software, the team is pseudonymous with no team page, the ledger and the benchmark source are public with the repository at the public testnet, the last paragraph gives the mailbox and the address. Miner: the dev fee goes to Igneum Labs LTD. Evidence (md and page): repository private until the public testnet. Trademark FILING.md: applicant Igneum Labs LTD at the DIFC address. Identity check: the ledger and fixes file join the export list; the forbidden list notes that the registered address is allowed. Site rebuilt (bench page and journey picked up the txgen log entry).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The ledger's header and submission lines, G3's status line, and the fixes file's legend, row 9, decision (b) note and section 5 record the four decisions. Two literal pattern mentions reworded so the identity check passes with both files on its export list.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>