diff --git a/docs/build/build.md b/docs/build/build.md index 0e312f2e4..0668fb712 100644 --- a/docs/build/build.md +++ b/docs/build/build.md @@ -16,7 +16,7 @@ This file is the source of [igneum.network/build](https://igneum.network/build). | | Igneum 2.0 devnet | |---|---| -| Chain id | 4464 (`0x1170`) | +| Chain id | 4465 (`0x1171`) | | Network id | `igneum-devnet-4` | | RPC | `https://rpc.devnet.igneum.network` (a node you run serves `http://127.0.0.1:26790`) | | Coins | no value, resets without notice | @@ -61,7 +61,7 @@ cast send 0xDEPLOYED "increment()" --rpc-url $RPC --private-key $PK cast call 0xDEPLOYED "number()(uint256)" --rpc-url $RPC ``` -The call answers `1`. Paste the transaction hash into [the explorer](/explorer). Hardhat, ethers and viem work the same way: chain id 4464, the RPC above. +The call answers `1`. Paste the transaction hash into [the explorer](/explorer). Hardhat, ethers and viem work the same way: chain id 4465, the RPC above. ## The RPC the node serves diff --git a/docs/build/first-contract.md b/docs/build/first-contract.md index 3acad5e96..97d53e546 100644 --- a/docs/build/first-contract.md +++ b/docs/build/first-contract.md @@ -1,6 +1,6 @@ # Your first contract on the devnet, in five minutes -With Foundry. Tested end to end on a build box; the pass line and the exact output are at the end. Hardhat, ethers and viem work the same way: chain id 4464 and the RPC below. +With Foundry. Tested end to end on a build box; the pass line and the exact output are at the end. Hardhat, ethers and viem work the same way: chain id 4465 and the RPC below. ## 0. What you need @@ -10,7 +10,7 @@ With Foundry. Tested end to end on a build box; the pass line and the exact outp ``` export RPC=https://rpc.devnet.igneum.network -cast chain-id --rpc-url $RPC # 4464 +cast chain-id --rpc-url $RPC # 4465 ``` ## 1. A key, for the devnet only @@ -82,7 +82,7 @@ cast receipt 0xTXHASH --rpc-url $RPC ## The test record -Run on a build box against its own devnet node (the box that also fronts the public RPC and runs the faucet), with Foundry 1.8.5 and a fresh key, through `docs/build/first-contract-test.sh`. The pass line is appended below by the run. +Run on a build box against its own devnet node (the box that also fronts the public RPC and runs the faucet), with Foundry 1.8.5 and a fresh key, through `docs/build/first-contract-test.sh`. The pass line is appended below by the run (the lines below are historical records of earlier devnets, chain ids 4463 and 4464; the Igneum 2.0 devnet answers 4465). ``` PASS 10:17:23Z: devnet chain id 4463, faucet drip 0x8620e9d894484e824e4ac33002946a00e2f75823ea6db0da0ad29f1af142e8f2, deployed Counter at 0x6345265C6Db0b3713eb6645d795d0B52FE0a4201 (tx 0xcf77b4822d51f3c60ecdf6d7dbbe67524d42071f06c76e1cf9b0511d64783574), increment then setNumber(41) read back 41, receipt status 1 (success), block 27055, 24 s end to end, Foundry 1.8.5 @@ -90,7 +90,7 @@ PASS 10:17:23Z: devnet chain id 4463, faucet drip 0x8620e9d894484e824e4ac3300294 Through the public endpoints, `https://rpc.devnet.igneum.network` and `https://faucet.igneum.network`, from the box: the first faucet drip and the first reader-path deploy on the devnet. -After the class v5 floor moved the chain id to 4464 the same afternoon, from a second box: +Historical record (an earlier devnet, chain id 4464 after its class v5 floor; the Igneum 2.0 devnet answers 4465), from a second box: ``` PASS 12:38:39Z: devnet chain id 4464, faucet drip 0xa54fdb7e964dab095aaccaab36ea548fc3fa8727acb809b593c2d4d1359c233f, deployed Counter at 0x7de503a4F39feEBCE8c4ABbAcC04282EE75120Fe (tx 0x6ccdbb4f6393fcf09e58ba2f4de1af98c547eeab6f02d93eacfebae883200dc6), increment then setNumber(41) read back 41, receipt status 1 (success), block 29878, 12 s end to end, Foundry 1.8.5 diff --git a/docs/build/rpc.md b/docs/build/rpc.md index d04e2337b..0943a2bf8 100644 --- a/docs/build/rpc.md +++ b/docs/build/rpc.md @@ -9,9 +9,9 @@ Transport: HTTP POST, JSON-RPC 2.0, one request per call, no batches tested. The | Method | Note | |---|---| | `web3_clientVersion` | `igneumd//execution-layer-v3` | -| `net_version` | the chain id as a decimal string, `"4464"` | +| `net_version` | the chain id as a decimal string, `"4465"` | | `net_listening`, `net_peerCount` | | -| `eth_chainId` | `0x1170` (4464) on the Igneum 2.0 devnet. Read it, never fix it | +| `eth_chainId` | `0x1171` (4465) on the Igneum 2.0 devnet. Read it, never fix it | | `eth_blockNumber` | the executed chain tip | | `eth_syncing` | `false` when the executor is at the tip | | `eth_mining` | `false` from the RPC's point of view: mining is the miner's, not the node's | diff --git a/docs/evidence.md b/docs/evidence.md index 2ceb1841c..2b8487e35 100644 --- a/docs/evidence.md +++ b/docs/evidence.md @@ -4,6 +4,10 @@ ## The six labels +Every row's Status cell opens with one of five served labels from the 2.0 plan: TEAM-REPORTED (measured or exercised by the project, procedure and version named), MODELLED (a model's figure, never a measurement), PROPOSED (a design or a decision, no code or chain behind it yet), PENDING (built, awaiting the chain event or the row that activates it) or EXCLUDED (a claim the project does not make). The status word follows it. + +The public wording ladder, and what supports each rung: "designed for GPU competitiveness" (the objective only); "team-tested" (a procedure, a version and a result on the record); "independently reproduced" (an unaffiliated operator's run); "independently reviewed" (a scoped review with its unresolved findings); "top-tier contender" (comparative evidence plus the operator proposition); "category leader" (never claimed without sustained adoption, and never with a number). Today nothing on this site stands above team-tested, and every chip row is modelled. + | Label | Meaning | |---|---| | designed | A decision in the design document, the plan or the specification. No code carries it, or the code is a stub | @@ -27,13 +31,13 @@ Versions in the table: "the release manifest" is `site/release-manifest.json`, s | # | Claim | Where it is made | Status | Version or commit | Reproducible test | Result, date, machine | Independent verification | |---|---|---|---|---|---|---|---| -| 1 | The Igneum 2.0 devnet (`igneum-devnet-4`): started fresh on 8 October 2026 from the release cut; chain id 4464; the release manifest (/release.json) carries its commits and is regenerated at its first block | This page; the live page | designed (starting) | the release manifest (/release.json) | `docs/plans/igneum-2.0.md` (the 2.0 reset: the network restarts as the 2.0 devnet); the row moves to activated when a node's own line shows the first block and the manifest is regenerated from it | 8 October 2026: no first block yet (designed); chain id 4464 (designed) | none yet | -| 2 | Proof verification is enforced in consensus before the no-rescue exercise (D5's prerequisite). Today the rule is off: every producer verifies proofs off the consensus path, and a block carrying a matching statement without a valid proof is not refused by consensus | `docs/plans/igneum-2.0.md` D5; this page | implemented (switched off on the devnet) | node fork `f8da7515`: the switch is `proving_consensus_verify_daa` in `consensus/core/src/config/params.rs` (the plan names it `verifier_in_consensus` and `proof_rule_active_from`), the rule `check_carried_proofs` in `consensus/src/pipeline/body_processor/body_validation_in_context.rs`, the gate `proof_rule_applies` in `consensus/core/src/proving.rs` | Read the devnet parameters at that commit: `proving_consensus_verify_daa: u64::MAX` (never) in the devnet's parameters, which the 2.0 devnet inherits; the pass condition is the switch set to an activation height on the exercise network and a node's line naming it | 8 October 2026: read from the node source, not measured; the switch reads never on the devnet (implemented, not activated) | none yet | -| 3 | The 64-register window per lane costs a GPU under 1 percent of rate at stock, and at most 5 percent per load with the liveness chain | The litepaper (class v6); `docs/plans/igneum-2.0.md` D1 (the placed 64-register rows) | tested by the team | `docs/analysis/class-v6/connected-state.md` section 4; `docs/design/class-v6-rotating-family.md` section 10.0e | The class v5 nvcc harness and the kit worker, both packs on the same card minutes apart, 250 batches of 2^24, nvidia-smi at 1 Hz, vectors PASS on every row (`connected-state.md` section 4); the per-load rows of the full chain against the base (`class-v6-rotating-family.md` 10.0e) | 8 October 2026, rented RTX 5090 (575 W cap) and RTX 4090 (450 W cap) at stock: energy per hash +0.6 percent on the RTX 5090 and -0.9 percent on the RTX 4090, inside the run-to-run noise; under 1 percent of rate; 80 to 87 registers per thread, no spill (all measured). Per load: RTX 5090 16.7 nJ base, 17.6 nJ full chain; RTX 4090 26.0 nJ, 27.0 nJ (measured). The lock row on the project's own rigs is owed | none yet | -| 4 | Reorganising the same work around live state (the connected-state variant, experiment D2(a)) does not reduce a specialised chip's edge: KILL as a class | `docs/plans/igneum-2.0.md` D2(a); this page | tested by the team (a published failure) | `docs/analysis/class-v6/connected-state.md` (the verdict, section 6) | The census, liveness and GPU rows in `connected-state.md` sections 2 to 4; the chip side priced on the drawn program by synthesis (a model, never a lower bound) | 8 October 2026, verdict 17:25 UK: the window is necessary (63 of 64 registers live at every address, measured) but only its width reaches the chip, +1.2 pJ per lane-op at N5 (synthesised); the window moves the chip's edge 1.10x node for node against a 1.25x gate (modelled); the GPU side +0.6 percent energy per hash on the RTX 5090, -0.9 percent on the RTX 4090 at stock (measured). Rearranging the dependency graph of the same operations moves neither side | none yet | -| 5 | "A GPU-secured network for Ethereum-compatible applications and verifiable computation." served on every page | Every page | designed (served) | `docs/plans/igneum-2.0.md` (the objective: the positioning line) | `node tools/ci/ledger-text-check.mjs`: the sentence pinned (R0) on the home page, the litepaper and this page | 8 October 2026: on this page; the home page and the litepaper carry it as their 2.0 text lands (designed) | none yet | -| 6 | The chip claim as served: "Igneum remains competitive on accessible commodity GPUs even when specialised mining hardware is assumed to exist, remain compatible and seek profit; its security does not rely on identifying that hardware or retiring it through emergency changes." Under it the three statements, separate: energy (the modelled range 2.5x to 3.0x a node ahead and 2.1x to 2.6x node for node, the placed row to narrow it; the strongest modelled design, a hybrid board with the hottest half of the dataset in SRAM beside DRAM, reads 2.69x node for node, 2.20x to 3.03x, modelled, and is being scored in the coexistence model), economic and response capability, rotation an optional improvement. Class v5 derives the dataset from chain state; whether that excludes a specialised design is under evaluation (Deliverable 3), since a design that tracks state is not excluded by staleness. The energy ratio is not the pass criterion: the coexistence model ([docs/analysis/class-v6/coexistence-model.md](https://git.igneum.network/igneum-network/igneum/src/branch/master/docs/analysis/class-v6/coexistence-model.md)) is, and its first run's result is served with its conditions: The test is whether a specialised supplier can earn a normal return while ordinary GPUs stay close enough in total cost, obtainable and useful outside mining that new entrants still compete. On today's modelled rows that holds for the chip anyone can build, a stored-dataset board on commodity DRAM, at a productive life of one to three years: its cost per accepted unit of work sits within the range of the best GPU owner and entrant, and a fleet of it holds a minority of the network with GPU entrants still setting the price. It fails for the SRAM-store die once that die exists with its development paid: no electricity price keeps a GPU owner level with it, and a modest fleet takes most of the network. What holds the die is the investment decision, not the hash; every chip figure here is modelled, not measured, and the chip's hardware cost per unit of work is approximate within 2x. | The litepaper (the chip model) | designed (the bracket modelled; the GPU side tested by the team) | `docs/design/class-v6-rotating-family.md` section 10 (10.0h to 10.0n, 8 October 2026); `docs/plans/igneum-2.0.md` D3 and D4 | the scoring rule in the close (the minimum over workloads of the maximum over free adversarial designs of the GPU's joules per hash over the adversary's, under the 10 percent GPU-cost budget at the lock, the verifier limit, cross-vendor correctness and hardware accessibility); the placed rows are D3's | the GPU side measured: the RTX 5080 at its 1,100 MHz lock 2.06 microjoules per hash and the RTX 5090 at its 1,300 MHz lock 2.33 (8 October 2026, the project's own rigs and rented pods); the chip side synthesised and claimed, its placed gated row pending | none yet | -| 7 | Mining and proving together on one card needs a 16 GB card at the 5.5 GiB dataset floor: the miner holds about 6.1 GiB and a compressed shard proof peaks at about 7.5 GiB, so 8 GB and 12 GB cards time-share (the app pauses the miner for the proof). NVIDIA proves; AMD and Apple mine | The litepaper (Proving, vs RandomX); the miner page | tested by the team | `docs/analysis/class-v6/coexist-rows.md` (the 5.5 GiB ds55 miner beside igneum-prove-host-0317, compressed at threshold 2^26, the served sm_86 and sm_89 floors) | the RESULT rows in that file, verbatim from the runs | rented RTX 3060 12 GB: 26.82 MH/s at 117.4 W with 6,129 MiB resident; the compressed shard 13.2 s, peak 7,525 MiB (6,129 + 7,525 = 13,654 MiB against 12,288); rented RTX 4060 8 GB: 18.84 MH/s, 6,116 MiB resident; the shard 8.2 s, peak 7,532 MiB; 8 October 2026 | none yet | +| 1 | The Igneum 2.0 devnet (`igneum-devnet-4`): genesis 7c36b833 stamped 8 October 2026, chain id 4465 (eth_chainId 0x1171), 18 decimals, every upgrade on from block zero (class v5, the era VDF, finality v3, calibrated fees, enforced proving); the release manifest (/release.json) carries its commits and is regenerated at its first block | This page; the live page; /build | PENDING; designed (starting): the first block of the re-cut node is pending | the release manifest (/release.json): node 4cdcc488 on release-2.0.0-node, igneum-pow 1c420786, digest be5f4068 | the node's own start line (the node lane's read of build-1's seed); the row moves to activated at the first block | 8 October 2026: an earlier object of the same genesis minted at the wrong decimals and is dead; the re-cut restarts the chain from the same genesis on wiped datadirs | none yet | +| 2 | Proof verification is enforced in consensus on the Igneum 2.0 devnet from block zero (Deliverable 5's prerequisite): the node's start line reads "consensus proof verification from DAA score 0 (verifier_in_consensus set)" and names the shard program id and the aggregator id; a block carrying a statement without a valid proof is refused | `docs/plans/igneum-2.0.md` D5; this page; the litepaper (Proving) | PENDING; implemented, activated at the 2.0 devnet's first block | node 4cdcc488 on release-2.0.0-node (the manifest); the program ids are the ELF manifest's (`proving/igneum-prove/elf/manifest.json`) | the node's own start line; the no-rescue exercise itself (D5) is Open | 8 October 2026: on from block zero in the 2.0 devnet's object; the earlier devnet ran with the rule off | none yet | +| 3 | The 64-register window per lane costs a GPU under 1 percent of rate at stock, and at most 5 percent per load with the liveness chain | The litepaper (class v6); `docs/plans/igneum-2.0.md` D1 (the placed 64-register rows) | TEAM-REPORTED; tested by the team | `docs/analysis/class-v6/connected-state.md` section 4; `docs/design/class-v6-rotating-family.md` section 10.0e | The class v5 nvcc harness and the kit worker, both packs on the same card minutes apart, 250 batches of 2^24, nvidia-smi at 1 Hz, vectors PASS on every row (`connected-state.md` section 4); the per-load rows of the full chain against the base (`class-v6-rotating-family.md` 10.0e) | 8 October 2026, rented RTX 5090 (575 W cap) and RTX 4090 (450 W cap) at stock: energy per hash +0.6 percent on the RTX 5090 and -0.9 percent on the RTX 4090, inside the run-to-run noise; under 1 percent of rate; 80 to 87 registers per thread, no spill (all measured). Per load: RTX 5090 16.7 nJ base, 17.6 nJ full chain; RTX 4090 26.0 nJ, 27.0 nJ (measured). The lock row on the project's own rigs is owed | none yet | +| 4 | Reorganising the same work around live state (the connected-state variant, experiment D2(a)) does not reduce a specialised chip's edge: KILL as a class | `docs/plans/igneum-2.0.md` D2(a); this page | TEAM-REPORTED; tested by the team (a published failure) | `docs/analysis/class-v6/connected-state.md` (the verdict, section 6) | The census, liveness and GPU rows in `connected-state.md` sections 2 to 4; the chip side priced on the drawn program by synthesis (a model, never a lower bound) | 8 October 2026, verdict 17:25 UK: the window is necessary (63 of 64 registers live at every address, measured) but only its width reaches the chip, +1.2 pJ per lane-op at N5 (synthesised); the window moves the chip's edge 1.10x node for node against a 1.25x gate (modelled); the GPU side +0.6 percent energy per hash on the RTX 5090, -0.9 percent on the RTX 4090 at stock (measured). Rearranging the dependency graph of the same operations moves neither side | none yet | +| 5 | "A GPU-secured network for Ethereum-compatible applications and verifiable computation." served on every page | Every page | PROPOSED; designed (served) | `docs/plans/igneum-2.0.md` (the objective: the positioning line) | `node tools/ci/ledger-text-check.mjs`: the sentence pinned (R0) on the home page, the litepaper and this page | 8 October 2026: on this page; the home page and the litepaper carry it as their 2.0 text lands (designed) | none yet | +| 6 | The chip claim as served: "Igneum remains competitive on accessible commodity GPUs even when specialised mining hardware is assumed to exist, remain compatible and seek profit; its security does not rely on identifying that hardware or retiring it through emergency changes." Under it the three statements, separate: energy ("Current modelling places the specialised designs assessed as complete machines at about 1.5x to 2x the energy efficiency of a locked RTX 5090 on the same node: a chip machine on a DRAM board about 1.5x per joule (1.3x to 1.7x), the same board with SRAM holding the hottest half of the dataset about 1.9x (1.65x to 2.1x), a node ahead 1.8x to 2.4x; per dollar of hardware at list price 3x to 6x." MODELLED: the GPU side measured, the chip's core placed and routed, the rest of the machine modelled, no chip measured, hardware cost approximate within 2x), economic and response capability, rotation an optional improvement. Class v5 derives the dataset from chain state; whether that excludes a specialised design is under evaluation (Deliverable 3), since a design that tracks state is not excluded by staleness. The energy ratio is not the pass criterion: the coexistence model ([docs/analysis/class-v6/coexistence-model.md](https://git.igneum.network/igneum-network/igneum/src/branch/master/docs/analysis/class-v6/coexistence-model.md)) is, and its first run's result is served with its conditions: A specialised supplier may earn a normal return; ordinary GPUs remain sufficiently close in total cost, widely obtainable and useful outside mining that new operators can still compete. On today's modelled rows that holds for the chip anyone can build, a stored-dataset board on commodity DRAM, at a productive life of one to three years: its cost per accepted unit of work sits within the range of the best GPU owner and entrant, and a fleet of it holds a minority of the network with GPU entrants still setting the price. It fails for the SRAM-store die once that die exists with its development paid: no electricity price keeps a GPU owner level with it, and a modest fleet takes most of the network. A third design, a DRAM board with the hottest half of the dataset in on-board SRAM, sits between the two: it coexists only in a growing network at cheap GPU electricity and fails the cost conditions in a flat or shrinking one, and the dataset's size floor is a real lever on it where it was none on the SRAM die. What holds the die is the investment decision, not the hash; every chip figure here is modelled, not measured, and the chip's hardware cost per unit of work is approximate within 2x. | The litepaper (the chip model) | MODELLED; designed (the bracket modelled; the GPU side tested by the team) | `docs/design/class-v6-rotating-family.md` section 10 (10.0h to 10.0n, 8 October 2026); `docs/plans/igneum-2.0.md` D3 and D4 | the scoring rule in the close (the minimum over workloads of the maximum over free adversarial designs of the GPU's joules per hash over the adversary's, under the 10 percent GPU-cost budget at the lock, the verifier limit, cross-vendor correctness and hardware accessibility); the placed rows are D3's | the GPU side measured: the RTX 5080 at its 1,100 MHz lock 2.06 microjoules per hash and the RTX 5090 at its 1,300 MHz lock 2.33 (8 October 2026, the project's own rigs and rented pods); the chip side synthesised and claimed, its placed gated row pending | none yet | +| 7 | Mining and proving together on one card needs a 16 GB card at the 5.5 GiB dataset floor: the miner holds about 6.1 GiB and a compressed shard proof peaks at about 7.5 GiB, so 8 GB and 12 GB cards time-share (the app pauses the miner for the proof). NVIDIA proves; AMD and Apple mine | The litepaper (Proving, vs RandomX); the miner page | TEAM-REPORTED; tested by the team | `docs/analysis/class-v6/coexist-rows.md` (the 5.5 GiB ds55 miner beside igneum-prove-host-0317, compressed at threshold 2^26, the served sm_86 and sm_89 floors) | the RESULT rows in that file, verbatim from the runs | rented RTX 3060 12 GB: 26.82 MH/s at 117.4 W with 6,129 MiB resident; the compressed shard 13.2 s, peak 7,525 MiB (6,129 + 7,525 = 13,654 MiB against 12,288); rented RTX 4060 8 GB: 18.84 MH/s, 6,116 MiB resident; the shard 8.2 s, peak 7,532 MiB; 8 October 2026 | none yet | ## Count by status diff --git a/docs/fud-ledger-2.0.md b/docs/fud-ledger-2.0.md index a4f2511f6..87ea43380 100644 --- a/docs/fud-ledger-2.0.md +++ b/docs/fud-ledger-2.0.md @@ -112,6 +112,8 @@ Pin: D4, first, fifth to seventh boxes and the pass condition. Status: Conceded (8 October 2026): consensus does not enforce proofs today; the switch is in the node and reads never on the devnet. Pass when proof verification is enforced in consensus, live on the exercise network. +Status: Fixed (8 October 2026, 17:0x UK): the Igneum 2.0 devnet's node enforces proof verification in consensus from block zero (verifier_in_consensus set, node 2.0.0 4cdcc488 on release-2.0.0-node, the node's own start line); the no-rescue exercise itself stays Open and is the pass condition. Was: Conceded, the rule off on the earlier devnet. + Answer: Every producer verifies proofs off the consensus path today, so the network demonstrates proving activity rather than enforcing a permissionless proving economy. The rule and its activation switch exist in the node fork and are off on the devnet. Enforcement in consensus is the prerequisite of the no-rescue exercise, and node 2.0.0 follows it. Evidence: the facts page row 2 (`docs/evidence.md`); `docs/plans/igneum-2.0.md` (D5, first box; Versioning). diff --git a/docs/ledger-public.md b/docs/ledger-public.md index 68d7783c3..d573d5e8a 100644 --- a/docs/ledger-public.md +++ b/docs/ledger-public.md @@ -2,7 +2,7 @@ Generated by `tools/ledger/export-public.mjs` from `docs/fud-ledger-2.0.md`; a gate check fails when the two drift. One row per item: the claim or criticism, its status, what was done, and the evidence. Internal identifiers, times of day and team-member names are left out on purpose; the full ledger is published with the repository. -26 items. By status: Open 12; Decided 8; Conceded 6. +26 items. By status: Open 12; Decided 8; Conceded 5; Fixed 1. | Id | Claim or criticism | Status | What was done | Evidence | |---|---|---|---|---| @@ -15,7 +15,7 @@ Generated by `tools/ledger/export-public.mjs` from `docs/fud-ledger-2.0.md`; a g | D2 | Reorganising the work will not stop a specialist | Conceded | The connected-state variant, D2(a), is a KILL as a class; the memory-sharing attack, D2(b), is Open. | [docs/analysis/class-v6/connected-state.md](../docs/analysis/class-v6/connected-state.md) | | D3 | Chips do not expire on schedule | Conceded | "Every chip dies within a family epoch" is out of the baseline economic model, and chip-arrival percentages are not published. | [docs/plans/igneum-2.0.md](../docs/plans/igneum-2.0.md) | | D4 | The capex wall is a fiction | Open | Pass when the five-year coexistence model, whose mandatory stress case has development already paid for, names credible conditions for commodity participation and where they fail. | [docs/plans/igneum-2.0.md](../docs/plans/igneum-2.0.md) | -| D5 | Proofs are not a protocol guarantee yet | Conceded | Consensus does not enforce proofs today; the switch is in the node and reads never on the devnet. | [docs/evidence.md](../docs/evidence.md) | +| D5 | Proofs are not a protocol guarantee yet | Fixed | The Igneum 2.0 devnet's node enforces proof verification in consensus from block zero (verifier_in_consensus set, node 2.0.0 a commit on release-2.0.0-node, the node's own start line); the no-rescue exercise itself… | [docs/evidence.md](../docs/evidence.md) | | P1 | A pool controls its miners' votes | Open | Pass when the member's retained voting key is committed into its work at protocol level, payment aggregation is separate and verifiable, and pool identity substitution is resisted. | [docs/plans/igneum-2.0.md](../docs/plans/igneum-2.0.md) | | P2 | Pools take custody and home miners lose to latency | Open | Pass on non-custodial payouts with practical minimums, local work verification and low-bandwidth participation, and on a published measurement of the accepted-work penalty for home internet against datacentre… | [docs/plans/igneum-2.0.md](../docs/plans/igneum-2.0.md) | | P3 | Firo's miner is the bar | Open | Pass when Ember reaches good operating points without third-party software and its optimisation work, compiler settings and safe tuning logic are published beside a comparison. | [docs/plans/igneum-2.0.md](../docs/plans/igneum-2.0.md) | diff --git a/docs/provenance.md b/docs/provenance.md index 77906d097..0e6fa58ff 100644 --- a/docs/provenance.md +++ b/docs/provenance.md @@ -21,7 +21,7 @@ How to read the licence column. "Verified" means the LICENSE file or the crate's | BLS12-381 | Curve by Barreto, Lynn and Scott; blst by Supranational. Licence approximate: Apache-2.0. https://github.com/supranational/blst (not yet cloned) | Unchanged, credited. The header carries the BLAKE2b hash of a G1 compressed public key (48 bytes); every voter signs every 30-s checkpoint; signatures aggregate | Finality rule v2 needs one aggregate signature per checkpoint from thousands of keys | Spec section 3.1 (W1) and 2.4; `sim/results_v2.md` for the rule itself. Signature cost not yet measured | | Hashing in the node | rusty-kaspa `crypto/hashes`, ISC, verified. Crates linked by the fork, licences read from the local cargo registry: blake2b_simd 1.0.2 (MIT), blake3 1.8.3 (CC0-1.0 or Apache-2.0), sha2 0.10.8 (MIT or Apache-2.0), keccak 0.1.6 (Apache-2.0 or MIT); sha3 0.10.8 not in the local registry, approximate: MIT or Apache-2.0 | Unchanged, credited. BLAKE2b with domain separation for block, transaction and PoW pre-hashes (`BlockHash`, `TransactionHash`, ...), BLAKE3 keyed for the sequencing-commitment and payload hashers, SHA-256 for ECDSA signing hashes, cSHAKE256 (Keccak) in the kHeavyHash stub that stays as the default engine and for pruning-proof block levels | The chain's hash for everything except the lottery is the one the forked commit uses (spec 0.6), so nothing unverified enters consensus | `hash_override_nonce_time` gained one field (fork-divergence row 1); every header-hash test vector was regenerated and the four genesis hashes re-derived | | Address format | Bitcoin BIP 173 character set (bech32, Pieter Wuille and Greg Maxwell; BIP licence approximate: BSD-2-Clause) with the CashAddr polymod checksum of Bitcoin Cash (the source cites bch.info), as implemented in rusty-kaspa `crypto/addresses/src/bech32.rs`, ISC, verified | Prefixes only: `igneum`, `igneumtest`, `igneumsim`, `igneumdev` (Kaspa: `kaspa`, `kaspatest`, `kaspasim`, `kaspadev`). The script public key behind an address is unchanged | No Igneum address string may parse as a Kaspa address on any network | Fork-divergence row 9; test vectors in `addresses` and `txscript` regenerated and passing | -| The EVM | Ethereum (Yellow Paper and ethereum/execution-specs, CC0 approximate). Cancun opcode set, precompiles 0x01 to 0x09 | Semantics on a DAG: `block.number` is selected-chain height, `block.timestamp` is non-decreasing by a max rule, `prevrandao` is the VDF epoch seed, chain id 4464 on the devnet and 4461 reserved for mainnet (the current id is in /release.json); 0x0a absent; gas has a second dimension | Blocks on a DAG have no single parent and no header state root; proving cost is a second resource; the random beacon must be unbiasable | Spec section 7.1 (normative table); devnet measurement R9 for timestamp drift; `ethereum/tests` replay in the differential plan | +| The EVM | Ethereum (Yellow Paper and ethereum/execution-specs, CC0 approximate). Cancun opcode set, precompiles 0x01 to 0x09 | Semantics on a DAG: `block.number` is selected-chain height, `block.timestamp` is non-decreasing by a max rule, `prevrandao` is the VDF epoch seed, chain id 4465 on the Igneum 2.0 devnet (4463 and 4464 on earlier devnets) and 4461 reserved for mainnet (the current id is in /release.json); 0x0a absent; gas has a second dimension | Blocks on a DAG have no single parent and no header state root; proving cost is a second resource; the random beacon must be unbiasable | Spec section 7.1 (normative table); devnet measurement R9 for timestamp drift; `ethereum/tests` replay in the differential plan | | kHeavyHash (kept as a stub) | Kaspa, rusty-kaspa `crypto/hashes/src/pow_hashers.rs` and `consensus/pow/src/matrix.rs`, ISC, verified | Kept untouched as `HeavyHashEngine`, the default engine when the `igneum-pow` feature is off, and the block-level source for pruning proofs until seeds are threaded through | Lets the devnet run and lets upstream pow changes merge cleanly | Fork-divergence rows 14 and 15; open item in the same file (pruning-proof block levels) | ## What is new in Igneum diff --git a/site/404.html b/site/404.html index de511b685..2806775a6 100644 --- a/site/404.html +++ b/site/404.html @@ -77,7 +77,7 @@ main{flex:1} IGNEUM - Igneum 2.0 devnet starting + Igneum 2.0 devnet starting