Merge remote-tracking branch 'build/master' into reference-apps
This commit is contained in:
commit
fe3d57ad7d
13 changed files with 412 additions and 4 deletions
1
contracts/bridge/test/vectors/.gitignore
vendored
1
contracts/bridge/test/vectors/.gitignore
vendored
|
|
@ -6,4 +6,3 @@ checkpoint-dn3.json
|
|||
weights-dn3.json
|
||||
checkpoints-dn3.json
|
||||
dn3-table.json
|
||||
dn3-account.json
|
||||
|
|
|
|||
15
contracts/bridge/test/vectors/dn3-account.json
Normal file
15
contracts/bridge/test/vectors/dn3-account.json
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"chain_id": "igneum-devnet-3",
|
||||
"state_root": "0x1fd551393d84009c398a9b9747cd296d0fdf1e31f85fa21c10426bc219694561",
|
||||
"block_number": 28462,
|
||||
"account": "0x085a7ca7338efaf797f3300fa7c64afa9d2c539b",
|
||||
"account_nonce": "0",
|
||||
"account_balance": "547807747463600000000",
|
||||
"account_storage_root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
|
||||
"account_code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
|
||||
"account_proof": [
|
||||
"0xf90211a035a5663e80bde9c005c3f519613b5c3ff2add9bb9310908d4b6478ddfdd42b09a0628c3663581b1c12c36c5103080474c8f1503dc78e498e290e0ce309ee5dd580a048442259307de1a1ddc270914b19054e914a59f7ad1992c88fe9e5eeb91b91d3a0e72f8245f6bfe8fe9356e186352dc55a7f16e4eaf8bebfa8950625f0185ea699a0c8cf4b30c816ffbc8fc615de2e87ff7fe7ff384e22286b5cbb8aa29f126d2688a06819cfcddf29f3b1c72b4df680105c393217282d22439e204bfaf42eb5dfc3e0a0eafc7b7ab68e87b1574ce1c0a383b876ca03eb851e6d4074a6faa11583f8938fa0077c5575ade9c4657ef3094d44b493452279890fdd2028cbc46d7d7b260bfdf4a0f56e310ad31c53de3dd63db5823d99375f0ebed359d81efc13bc48e0fec734baa0a3a9b96516f395397fc8f86ada0e75c6b56fb56f26686b0de9b994828e7050a3a0f721a95427f32ec9105a8b6ae61ea87d68409f005eb4bb1bce08f8682de0f23aa08a09b8aba440e829c5b75680940ab07f7af7de4d5b784a7ebb4a9a55d5482686a072fed18995aede9d7cd457a87f58abb19b16d2794d7197e8808d049aa81fe4b1a058f1fadf00854cbe3d7b9fc0bdd2e38fe6c25bd944bc5b55f916c394282ba527a01e2b4f50116b9f85ef2b704b4e0858317961a715ff891e996eef10e4856c9d09a0588251a542d92fd21df94204ef0e7eb19224979273f6fa25a276ded6eca00b2080",
|
||||
"0xf8b180808080a0420981c3d36f89ff245988aee9cf67b0852aa20aac3c0dd683b6441b8325ee6680a077d4821f911305b34d67a0f25372b5102b157ed8a3bcbcca278d663f41c2740ba0ca001aa786bbd28c50b735599b74b883185be98a9ea6118b519720fbed7720b9808080a04ea6a6815f895cbcf98aab72a2db87a197fd077953c650a9d74782dd1ca064df808080a025c2908da5906b49a3da3c07e84912f3428889a96f91da09057604c4bf189ab880",
|
||||
"0xf872a0200f6ca86de6ec8bae815e435db88eb1e3ccc026af0d2049dc0299f37ac21622b84ff84d80891db25c13e886c5cc00a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"
|
||||
]
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@ What was measured today (all on igneum-build-1, the counter-asic-4 crate at 5984
|
|||
| The sound per-load shadow (one pass of a 256-instruction sub-block after every load, `mx8+shl4096x1`), the form 20.2a-close named and never drew | 234 of 256 seeds accepted within the 32-attempt cap, 0.927 rejection per candidate, mean accepted attempt 9.7; the iterated 16 x 27 form on the same seeds 76 of 256, 0.989 per candidate | measured (section 3.1) |
|
||||
| The same at class v4's instruction count (`mx8+shl2304x3`: 16 sub-blocks of 144, three passes, 55,296 shadow instructions per hash) | 224 of 256 seeds, 0.935 per candidate | measured |
|
||||
| The verifier on the sound forms, cold warp on core 40 with core 88 loaded (the ladder's method) | shl4096x1 8.28 to 8.55 ms; shl2304x3 8.44 to 8.82; class v4's shape 8.33 to 8.63 on the same core in the same minutes; all under the 10 ms gate | measured (section 3.2) |
|
||||
| The F8-form uniformity read at 2^20 nonces on 64 seeds (`v6inv-uniform`, the crate's own `trace_load_indices` in the class's execution order) | the sound forms read clean: `shl4096x1` 0 of 60 seeds over 1.2x at the top 0.1 percent of items (max 1.034x, one item at 251 reads against the control's 29 on seed 23), 0 sites under the (c''') floor of 0.995 (min 0.99707); `shl2304x3` 0 of 61 over 1.02x (max 1.0019), min site 0.99962; the raw class v4 shape drawn through the same v2/v3 rule (no (a'), no (c''): the pre-amendment class) 41 of 64 seeds over 1.2x at 7x to 36x the control, items at 350,000 to 396,564 reads, min site ratio 0.093: AP-F8-1's hot-set class, the harness's known-failed firing on real programs | measured (section 3.5) |
|
||||
| The per-load prototype's acceptance under a drawn era | 0 of 256 seeds on every per-load form: 5,536 of 7,862 bias rejections name index bit 26 or 27 "set in 0 or 16,384 of 16,384", the era WINDOW's fixed top bits, an instrument fault; so 20.2a-close's "1.4 percent accepted, 42 of 64 seeds exhaust" (run across drawn eras) measured the instrument, not the construction | measured; a correction for the research file (section 3.3) |
|
||||
| The two packs for the card row | `mx8_shl4096x1` (id 75ca9547da21b200) and `mx8_shl2304x3` (id bbfdfc1dcdda0b46), OVERALL PASS, in the hash lane's PC 1 job after the AMD grid (about 12:45 UK) | exported; the card row owed |
|
||||
|
||||
|
|
@ -198,6 +199,18 @@ The per-load forms verify in class v4's time within the run's noise (the same in
|
|||
|
||||
The same 2,816 rows with `--era igneum-era-test/<seed mod 16>` (`ERA=era`): every per-load form 0 of 256 seeds accepted, 8,192 candidates per form, rejection 1.000; the class v4 shape 256 of 256. Of the 256 x 1 form's 7,862 bias rejections, 5,536 name index bit 26 or 27 "set in 0 of 16,384" or "set in 16,384 of 16,384" at a load site, which is the era's working-set window (spec 1.13.1: `k_off = below(3)` per site puts the site on the whole dataset, a half or a quarter by fixing the top `k` bits of the index to the drawn offset `o`); the prototype's `BiasedIndexBit` test loops bits 0 to 27 and does not exclude bits at or above `28 - k_off_s`, so under any era it refuses every program with a half- or quarter-window site, which is nearly every program. The research file's 20.2a-close ("the 16 x 27 per-load class accepts 22 of 1,621 candidates over 64 seeds, 1.4 percent; 42 of 64 seeds exhaust the chain's 32 attempts") was read across drawn eras and therefore measured the instrument on most of its rows; the no-era census above is the construction's own figure (the 16 x 27 form 0.989 per candidate, 76 of 256 seeds accepted, which still fails the test of 2.1 and keeps that form dead). Owed to the research file (the Counter ASIC coordinator): the instrument fix (skip the window bits per site) and the 20.2a-close figures re-read with it; neither is made this week by this lane, which changes no code in the crate.
|
||||
|
||||
### 3.5 The uniformity read (`tools/attack/v6-invention/uniform`, 11:5x to 12:0x UK; 64 seeds `igneum-v6inv/0..63`, the first accepted candidate of each, 2^20 nonces, every load's index through the library's `trace_load_indices` on the closed-form dataset at 2^28 words, no era; per site the distinct-index ratio `d_s / E_s` at N = 2^23 evaluations, the cross-hash item histogram's top 0.1 percent share against a uniform SplitMix64 control of the same read count; logs `docs/analysis/class-v6/logs/uniform-*.tsv`)
|
||||
|
||||
| Form | Seeds read (exhausted at the 32 cap) | Min site ratio: min / median / max | Sites under 0.995 (the (c''') floor) | Top 0.1 percent share against the control: min / median / max | Seeds over 1.2x | Heaviest item, reads (the control's max 29) | Reading |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| `mx8+sh256x27`, drawn through the v2/v3 rule only (the crate's `accept` on this spelling runs no (a'), (c') or (c''): the class v4 shape BEFORE sub-version 3) | 64 (0) | 0.093 / 0.540 / 1.00008 | 60 | 0.999 / 7.42 / 36.3 | 41 | 396,564 (seed 39, site 13), 358,161, 350,025 | AP-F8-1's class seen whole: the value-level hot sets the dataflow rule and the floor were added for; the harness's known-failed case fired on real programs, which is what makes the two rows below a reading |
|
||||
| **`mx8+shl4096x1`** (16 x 256 x 1, the sound form) | 60 (4) | 0.99707 / 1.00009 / 1.00013 | 0 | 0.9984 / 1.0003 / 1.0339 | 0 (1 over 1.02x) | 251 (seed 23, site 13; 8.7x the control's max, 0.0002 percent of the reads) | clean on 59 of 60 at the F8 line; one mild hot item on seed 23 that the 0.995 floor admits (0.99707) and the top-0.1-percent share reads at 1.034x: the residual class of the in-house pass (a few-item concentration under the floor's resolution, about 1.0004x to a chip there, under 1.002x here) |
|
||||
| **`mx8+shl2304x3`** (16 x 144 x 3, class v4's instruction count) | 61 (3) | 0.99962 / 1.00009 / 1.00013 | 0 | 0.9984 / 1.0002 / 1.0019 | 0 (0 over 1.02x) | 31 | clean on every seed read: the uniform control's own figures |
|
||||
|
||||
What the three rows say together: the per-load forms, with their draw's redraw rule (a sub-block writer of the next load's source never a product or an `or`) and the value-level bias test, read as clean at 2^20 as the uniform control on 119 of 121 seeds, where the raw class v4 shape through the same rule reads hot on 41 of 64; the chain's class v4 sub-version 3 (the dataflow fixpoint and the (c'') floor) read 60 of 64 under 1.2x on F8's census at 2^24. So the two per-load tests are at least as strong as sub-version 3's on this read, at the price of the 0.93 rejection of 3.1; and the dataflow rule in execution order, when it lands, is expected to move the rejection down and the uniformity not at all. Owed: the same read under drawn eras on the fixed instrument (the research lane's commit), and at 2^24 on the four seeds nearest the line (23, 29, 49 and the first exhausted).
|
||||
|
||||
The box record, stated because it cost the network something: the 24-thread run of this harness on build-1 took 30.8 to 31.7 GB resident (16 hash sets of 2^20 indices and two 2^24-bucket histograms per thread, about 1.2 GB per thread) and the kernel's OOM killer ended its second and third forms at 11:58 and 11:59 UK; the same pressure killed the Devnet 3 seed and node1-dn3 on build-1 in that window (the build-server lane's read, 12:0x UK). The lease holds cores, not memory; the rerun was 8 threads (about 10 GB, released after 684 s with 0 kills); every further run of this lane names its resident memory in the lease label and goes to build-4 (88 GB free at 12:0x UK), never the seed box. The build-server lane carries the memory rule for the lease tool and the hands' `oom_score_adj`.
|
||||
|
||||
### 3.4 The packs
|
||||
|
||||
`igneum-pow export --seed igneum-genesis --day 2026-10-03 --class <form> --out <dir>` on build-1: `mx8_shl4096x1` (attempt 7, id 75ca9547da21b200, OVERALL PASS, kernel.cu 245,267 bytes, 4,308 lines) and `mx8_shl2304x3` (attempt 8, id bbfdfc1dcdda0b46, OVERALL PASS, kernel.cu 142,010 bytes, 2,516 lines), under `/srv/builds/v6-invention/packs/`, tarred as `v6inv-perload-packs.tgz` (sha256 ca1986b7fc5fab20a643fc37151a55e01f91edbfacc6f1a22a7384ae87cc11bc). Handed to the hash lane at 11:1x UK, taken into its v6 PC 1 job (the 5090 alone, the packs beside today's class v3 x8 and x16, the two re-weighted shadow packs, and the controls `mx8-genesis` and `mx8_sh256x27`; self-test, the 2^24 fingerprint, MH/s and W unlocked and at the 1,300 MHz lock), queued after the AMD grid, publish about 12:00 UK, close about 12:45 UK. Nothing of the packs' output goes to a served page or the spec.
|
||||
|
|
@ -241,6 +254,7 @@ Hours: the dataflow rule in execution order 2 to 3 (the research file's own esti
|
|||
|
||||
## 7. Unverified and owed
|
||||
|
||||
- The uniformity read under drawn eras (the fixed instrument's commit), and at 2^24 on the seeds nearest the line.
|
||||
- The sound forms' card rows (the 5090 today through the hash lane; the 4070 and the 9070 XT later; the M5 Max footprint by the lane that runs the Mac).
|
||||
- The 16 x 432 x 1 form itself: bracketed by the 256 x 1 and 144 x 3 rows (0.927 and 0.935) and the flat ladder between 36 and 256; not drawn (the cap).
|
||||
- The instrument fix (the window bits) and the re-read of 20.2a-close: owed to the research file's owner, not made here.
|
||||
|
|
|
|||
65
docs/analysis/class-v6/logs/uniform-mx8_sh256x27.tsv
Normal file
65
docs/analysis/class-v6/logs/uniform-mx8_sh256x27.tsv
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
class seed attempt program_id min_site_ratio min_site top0.1_share control_share ratio_to_control max_item_reads max_item control_max reads
|
||||
mx8+sh256x27 6 0 59f94dd9f119f1fe 0.19558 0 0.047505 0.002380 19.9617 254982 0 28 134217728
|
||||
mx8+sh256x27 1 0 75bf2c3f1f939ece 0.10129 2 0.069935 0.002381 29.3675 350025 0 27 134217728
|
||||
mx8+sh256x27 5 0 c7f73fa4e574a061 0.53753 10 0.018618 0.002379 7.8267 7874 0 28 134217728
|
||||
mx8+sh256x27 7 0 b10475207fb37f74 0.99256 15 0.002381 0.002379 1.0010 29 0 27 134217728
|
||||
mx8+sh256x27 3 0 c57665eab7c1b1ca 0.53024 4 0.017687 0.002380 7.4310 8484 0 28 134217728
|
||||
mx8+sh256x27 0 0 6ba933a7c9b4ddfb 0.53044 15 0.017678 0.002382 7.4199 8504 0 27 134217728
|
||||
mx8+sh256x27 4 0 541c9fc000f62049 0.53755 9 0.017245 0.002377 7.2540 7992 0 29 134217728
|
||||
mx8+sh256x27 2 0 65a3d11943181bec 0.59118 9 0.017105 0.002380 7.1879 7946 0 29 134217728
|
||||
mx8+sh256x27 8 0 c515313506cf6f92 0.53023 13 0.034130 0.002379 14.3473 16662 0 27 134217728
|
||||
mx8+sh256x27 11 0 ce2a79324e8c7863 0.53030 9 0.017686 0.002382 7.4249 8253 0 27 134217728
|
||||
mx8+sh256x27 9 0 98e518813fca319f 0.99988 0 0.002381 0.002380 1.0004 27 0 28 134217728
|
||||
mx8+sh256x27 10 0 3dc9fa7d63f5bf7b 0.98508 9 0.002439 0.002381 1.0241 28 0 27 134217728
|
||||
mx8+sh256x27 15 0 48e40802a9edccd4 0.11667 11 0.053312 0.002380 22.3999 335722 0 27 134217728
|
||||
mx8+sh256x27 13 0 1755e3a1545277d5 0.53742 11 0.033744 0.002383 14.1628 16366 0 27 134217728
|
||||
mx8+sh256x27 14 0 42db57cf012bb876 1.00008 13 0.002379 0.002382 0.9990 27 0 27 134217728
|
||||
mx8+sh256x27 12 0 4740b9f1d6099328 0.56249 15 0.017509 0.002381 7.3529 8319 0 27 134217728
|
||||
mx8+sh256x27 16 0 a428c1329e456049 0.10229 3 0.053492 0.002381 22.4632 340535 0 27 134217728
|
||||
mx8+sh256x27 17 0 60b7eec3d4fa3ca5 0.10127 9 0.069958 0.002380 29.3995 348315 0 27 134217728
|
||||
mx8+sh256x27 18 0 65ac09f5691a9434 0.53030 7 0.050022 0.002381 21.0123 24414 0 27 134217728
|
||||
mx8+sh256x27 22 0 6d21392be96440d5 0.99255 14 0.002380 0.002382 0.9993 27 0 27 134217728
|
||||
mx8+sh256x27 19 0 b66d73c9923a1980 0.53024 0 0.025273 0.002381 10.6155 8567 0 27 134217728
|
||||
mx8+sh256x27 20 0 2a697583a62fc7c3 0.97219 1 0.002385 0.002378 1.0028 26 0 27 134217728
|
||||
mx8+sh256x27 23 0 011448f4c45c2b57 0.99264 14 0.002382 0.002378 1.0018 29 0 28 134217728
|
||||
mx8+sh256x27 21 0 7d95136e82c75b3a 0.99185 6 0.002423 0.002382 1.0171 31 0 28 134217728
|
||||
mx8+sh256x27 24 0 3a06ce07234c1926 0.61005 11 0.013259 0.002380 5.5714 3665 0 28 134217728
|
||||
mx8+sh256x27 25 0 863696571362ecd9 0.19009 1 0.045627 0.002381 19.1663 195471 0 26 134217728
|
||||
mx8+sh256x27 26 0 f90e6a19f77e1ad3 0.11049 4 0.068859 0.002380 28.9316 314307 0 26 134217728
|
||||
mx8+sh256x27 29 0 197bb9f218a5c204 0.53057 9 0.017687 0.002379 7.4340 8315 0 27 134217728
|
||||
mx8+sh256x27 28 0 55f1cea0e6dc5b6b 0.53019 14 0.017679 0.002380 7.4295 8483 0 28 134217728
|
||||
mx8+sh256x27 27 0 57195f71a76b1bc7 0.98675 11 0.002383 0.002381 1.0007 29 0 26 134217728
|
||||
mx8+sh256x27 30 0 cde8e1f729e42daa 0.99258 13 0.002380 0.002381 0.9997 26 0 27 134217728
|
||||
mx8+sh256x27 31 0 4a3435feb3302d75 0.99266 8 0.002385 0.002382 1.0014 27 0 28 134217728
|
||||
mx8+sh256x27 32 0 15272ee7eb43378f 0.59034 4 0.014170 0.002379 5.9559 3755 0 28 134217728
|
||||
mx8+sh256x27 34 0 83d02ec262f3d5c5 0.53038 6 0.017663 0.002381 7.4181 8436 0 27 134217728
|
||||
mx8+sh256x27 33 0 5181fb017cc2feb2 0.99255 1 0.002401 0.002381 1.0088 27 0 28 134217728
|
||||
mx8+sh256x27 35 0 1b13044909e7a39b 0.53031 10 0.017688 0.002381 7.4286 8329 0 28 134217728
|
||||
mx8+sh256x27 37 0 2cfccfd3f29d49fc 0.53055 0 0.017729 0.002380 7.4483 8853 0 27 134217728
|
||||
mx8+sh256x27 38 0 d22450bfb6dc253c 0.99252 8 0.002395 0.002380 1.0063 29 0 27 134217728
|
||||
mx8+sh256x27 36 0 af7b63ce492a2184 0.52959 0 0.066383 0.002380 27.8905 33258 0 28 134217728
|
||||
mx8+sh256x27 39 0 7b3432ca80bb9b1a 0.09324 13 0.070846 0.002382 29.7419 396564 0 27 134217728
|
||||
mx8+sh256x27 41 1 b9d2760ddf67bed5 0.52890 1 0.050664 0.002383 21.2621 25481 0 27 134217728
|
||||
mx8+sh256x27 40 0 c5bbcc04fdbb3aaf 0.53017 5 0.017678 0.002381 7.4233 8264 0 27 134217728
|
||||
mx8+sh256x27 42 0 cd5ae1b7ab486cc8 0.58490 3 0.017253 0.002381 7.2468 7891 0 26 134217728
|
||||
mx8+sh256x27 43 0 aecb18472317e5f9 0.55918 5 0.032408 0.002381 13.6094 14867 0 27 134217728
|
||||
mx8+sh256x27 44 0 109f7b7924e25cea 1.00005 5 0.002382 0.002381 1.0004 26 0 27 134217728
|
||||
mx8+sh256x27 45 0 e93b531865ca58fb 0.53045 15 0.034130 0.002382 14.3280 16632 0 26 134217728
|
||||
mx8+sh256x27 46 0 0cc0e896058fca29 0.99254 4 0.002380 0.002381 0.9997 28 0 28 134217728
|
||||
mx8+sh256x27 47 0 1b1fb9e84a44dc2d 0.53017 14 0.034008 0.002378 14.2984 16999 0 28 134217728
|
||||
mx8+sh256x27 48 0 18a179054742e758 0.54001 0 0.017140 0.002381 7.1981 7732 0 28 134217728
|
||||
mx8+sh256x27 49 0 1fde2a7f6b5eedb7 0.10130 10 0.086438 0.002381 36.3106 358161 0 27 134217728
|
||||
mx8+sh256x27 51 0 e03ce538897560a6 0.50444 7 0.019046 0.002378 8.0084 10546 0 27 134217728
|
||||
mx8+sh256x27 50 0 9488018a92e64c11 0.56237 6 0.017550 0.002379 7.3765 8328 0 27 134217728
|
||||
mx8+sh256x27 52 0 0cfebad92d81f64e 0.53030 4 0.034105 0.002379 14.3331 17053 0 28 134217728
|
||||
mx8+sh256x27 54 0 440fb6a7918bdfc0 0.99043 2 0.002382 0.002380 1.0009 32 0 26 134217728
|
||||
mx8+sh256x27 53 0 faf0fae7e7e3c233 0.99255 14 0.002388 0.002380 1.0032 28 0 27 134217728
|
||||
mx8+sh256x27 55 0 84b4a4fc055bb2e0 0.99899 8 0.002385 0.002380 1.0023 27 0 27 134217728
|
||||
mx8+sh256x27 56 0 272cd6667284d2f6 0.53068 11 0.017680 0.002381 7.4252 8579 0 28 134217728
|
||||
mx8+sh256x27 57 0 0fb23f439801b9b9 0.91309 14 0.002407 0.002382 1.0106 32 0 27 134217728
|
||||
mx8+sh256x27 58 0 c6d31831662f6e35 0.53039 3 0.050358 0.002380 21.1548 24908 0 26 134217728
|
||||
mx8+sh256x27 59 0 e8da19c8686961d7 0.99259 2 0.002385 0.002381 1.0015 27 0 27 134217728
|
||||
mx8+sh256x27 60 1 fc150b874c1c2b26 0.56227 14 0.017555 0.002380 7.3761 8355 0 26 134217728
|
||||
mx8+sh256x27 62 0 c205732373fc4eac 0.96813 9 0.002381 0.002380 1.0004 27 0 27 134217728
|
||||
mx8+sh256x27 63 0 d5e897d32c12e13a 0.98843 4 0.002550 0.002381 1.0711 72 0 26 134217728
|
||||
mx8+sh256x27 61 1 4333461849082c5a 0.99257 8 0.002401 0.002383 1.0076 31 0 29 134217728
|
||||
|
65
docs/analysis/class-v6/logs/uniform-mx8_shl2304x3.tsv
Normal file
65
docs/analysis/class-v6/logs/uniform-mx8_shl2304x3.tsv
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
class seed attempt program_id min_site_ratio min_site top0.1_share control_share ratio_to_control max_item_reads max_item control_max reads
|
||||
mx8+shl2304x3 6 1 9527b9571efc012e 1.00008 7 0.002381 0.002380 1.0007 28 0 28 134217728
|
||||
mx8+shl2304x3 4 11 84944416dac88d57 1.00006 6 0.002382 0.002377 1.0019 29 0 29 134217728
|
||||
mx8+shl2304x3 5 11 1b8ee7a3a1131c03 1.00006 7 0.002379 0.002379 1.0003 27 0 28 134217728
|
||||
mx8+shl2304x3 0 31 a820f7ddd35c02d1 1.00013 14 0.002379 0.002382 0.9984 27 0 27 134217728
|
||||
mx8+shl2304x3 2 0 e61f5dca9abc62d3 1.00008 2 0.002380 0.002380 1.0000 29 0 29 134217728
|
||||
mx8+shl2304x3 9 exhausted
|
||||
mx8+shl2304x3 7 6 ea52f6e08a7d660d 1.00006 15 0.002380 0.002379 1.0005 26 0 27 134217728
|
||||
mx8+shl2304x3 1 21 4b5eeff2deea71bf 1.00013 14 0.002382 0.002381 1.0002 26 0 27 134217728
|
||||
mx8+shl2304x3 3 20 31c63382b2c98865 1.00012 6 0.002384 0.002380 1.0017 27 0 28 134217728
|
||||
mx8+shl2304x3 12 8 16549c7d637fe449 1.00006 10 0.002381 0.002381 0.9997 28 0 27 134217728
|
||||
mx8+shl2304x3 8 20 5d5cc864f3e43db0 1.00008 7 0.002383 0.002379 1.0016 27 0 27 134217728
|
||||
mx8+shl2304x3 10 8 44cbd1628f7cd0b5 1.00010 3 0.002380 0.002381 0.9994 29 0 27 134217728
|
||||
mx8+shl2304x3 13 11 650fcc81e8f6713c 1.00011 2 0.002380 0.002383 0.9989 28 0 27 134217728
|
||||
mx8+shl2304x3 11 8 3a19792efa300ffa 1.00009 6 0.002382 0.002382 1.0001 27 0 27 134217728
|
||||
mx8+shl2304x3 15 12 f90e9d3ce1e3bd48 1.00008 2 0.002381 0.002380 1.0003 27 0 27 134217728
|
||||
mx8+shl2304x3 16 14 233962a9d9480e3f 1.00004 10 0.002383 0.002381 1.0006 27 0 27 134217728
|
||||
mx8+shl2304x3 14 0 331b650531df6209 1.00008 14 0.002380 0.002382 0.9994 28 0 27 134217728
|
||||
mx8+shl2304x3 17 2 5ab27785a8cf57c9 1.00007 12 0.002382 0.002380 1.0012 26 0 27 134217728
|
||||
mx8+shl2304x3 18 18 c4aef3f59d632f1e 1.00010 0 0.002382 0.002381 1.0007 28 0 27 134217728
|
||||
mx8+shl2304x3 20 2 8f03b0d74069d184 0.99962 8 0.002380 0.002378 1.0009 28 0 27 134217728
|
||||
mx8+shl2304x3 19 10 c6157a48ca7b80c4 1.00008 14 0.002382 0.002381 1.0004 28 0 27 134217728
|
||||
mx8+shl2304x3 22 3 c8108af63069637c 1.00011 7 0.002381 0.002382 0.9995 28 0 27 134217728
|
||||
mx8+shl2304x3 23 6 6d76f2cb80e7219a 1.00006 13 0.002381 0.002378 1.0013 31 0 28 134217728
|
||||
mx8+shl2304x3 21 25 011719c4bfbbf91f 1.00009 7 0.002381 0.002382 0.9995 27 0 28 134217728
|
||||
mx8+shl2304x3 24 2 c8ce2560bf46d601 1.00012 3 0.002381 0.002380 1.0003 27 0 28 134217728
|
||||
mx8+shl2304x3 31 exhausted
|
||||
mx8+shl2304x3 25 0 5ee91d5f2ba3f0a4 1.00006 5 0.002379 0.002381 0.9994 26 0 26 134217728
|
||||
mx8+shl2304x3 26 7 beff30e8610da986 1.00006 8 0.002381 0.002380 1.0002 26 0 26 134217728
|
||||
mx8+shl2304x3 28 6 8f66d6d334836cbf 1.00012 7 0.002380 0.002380 1.0001 28 0 28 134217728
|
||||
mx8+shl2304x3 29 18 d8bf4433ed44aaeb 1.00005 9 0.002382 0.002379 1.0010 28 0 27 134217728
|
||||
mx8+shl2304x3 27 23 515a5fe888090db6 1.00008 2 0.002383 0.002381 1.0008 27 0 26 134217728
|
||||
mx8+shl2304x3 30 8 6f25bd4f4aab99ef 1.00009 3 0.002381 0.002381 1.0001 27 0 27 134217728
|
||||
mx8+shl2304x3 32 7 fddd29a75d5305f8 1.00009 0 0.002380 0.002379 1.0005 28 0 28 134217728
|
||||
mx8+shl2304x3 33 25 9131928cb80a747e 1.00009 14 0.002381 0.002381 1.0003 27 0 28 134217728
|
||||
mx8+shl2304x3 34 1 af09f974574a354b 1.00007 4 0.002381 0.002381 0.9998 29 0 27 134217728
|
||||
mx8+shl2304x3 36 1 ac021db7775368e2 1.00010 15 0.002377 0.002380 0.9986 27 0 28 134217728
|
||||
mx8+shl2304x3 35 29 72c2d1dbdf096864 1.00007 10 0.002380 0.002381 0.9995 27 0 28 134217728
|
||||
mx8+shl2304x3 43 exhausted
|
||||
mx8+shl2304x3 37 12 21180cca7fee526e 1.00009 14 0.002381 0.002380 1.0004 29 0 27 134217728
|
||||
mx8+shl2304x3 39 13 aef8a74cd6a789b5 1.00011 12 0.002381 0.002382 0.9997 27 0 27 134217728
|
||||
mx8+shl2304x3 38 1 3512feaa1923cee9 1.00007 2 0.002379 0.002380 0.9994 26 0 27 134217728
|
||||
mx8+shl2304x3 40 21 3b3d6730aa1bed86 1.00005 0 0.002379 0.002381 0.9991 29 0 27 134217728
|
||||
mx8+shl2304x3 41 9 37953c8af2eef1dc 1.00008 10 0.002381 0.002383 0.9991 26 0 27 134217728
|
||||
mx8+shl2304x3 42 4 7963bc66dc5269b6 1.00010 13 0.002379 0.002381 0.9993 27 0 26 134217728
|
||||
mx8+shl2304x3 44 0 0f603ad5e7345c45 1.00010 2 0.002381 0.002381 1.0000 27 0 27 134217728
|
||||
mx8+shl2304x3 45 14 1b0ff5a133de4b73 1.00004 1 0.002380 0.002382 0.9990 27 0 26 134217728
|
||||
mx8+shl2304x3 48 1 e5de4ffa5ff74e5b 1.00009 12 0.002383 0.002381 1.0008 26 0 28 134217728
|
||||
mx8+shl2304x3 47 6 de8dcd1dac65e4df 1.00009 4 0.002380 0.002378 1.0007 27 0 28 134217728
|
||||
mx8+shl2304x3 46 0 bb6c6630f4690b74 1.00007 6 0.002382 0.002381 1.0003 28 0 28 134217728
|
||||
mx8+shl2304x3 50 2 2a0e0aed9270a971 1.00005 2 0.002381 0.002379 1.0006 26 0 27 134217728
|
||||
mx8+shl2304x3 49 27 b88483b1e1e0964a 1.00011 11 0.002378 0.002381 0.9989 27 0 27 134217728
|
||||
mx8+shl2304x3 51 18 2ee1055d1ff42b36 1.00010 0 0.002381 0.002378 1.0013 29 0 27 134217728
|
||||
mx8+shl2304x3 52 3 06e2740b99bbd358 1.00009 9 0.002384 0.002379 1.0019 27 0 28 134217728
|
||||
mx8+shl2304x3 53 8 dd6621b58d8e9777 1.00009 2 0.002379 0.002380 0.9994 28 0 27 134217728
|
||||
mx8+shl2304x3 54 21 d8923d811eb288ef 1.00011 3 0.002383 0.002380 1.0013 27 0 26 134217728
|
||||
mx8+shl2304x3 55 9 cfa772fa29dfebd2 1.00009 13 0.002379 0.002380 0.9997 26 0 27 134217728
|
||||
mx8+shl2304x3 56 26 0cf3506bb52cc03c 1.00012 11 0.002380 0.002381 0.9996 26 0 28 134217728
|
||||
mx8+shl2304x3 57 0 80664c0cbbcf9f04 1.00006 14 0.002381 0.002382 0.9998 28 0 27 134217728
|
||||
mx8+shl2304x3 58 4 73787a50dbf4df0e 1.00011 12 0.002380 0.002380 0.9998 29 0 26 134217728
|
||||
mx8+shl2304x3 59 0 5e60995ec3140606 1.00009 0 0.002382 0.002381 1.0003 26 0 27 134217728
|
||||
mx8+shl2304x3 60 5 2b3db670b6d1b8e7 1.00009 15 0.002379 0.002380 0.9998 27 0 26 134217728
|
||||
mx8+shl2304x3 61 12 9c8106cbccf40cdf 0.99997 0 0.002382 0.002383 0.9996 29 0 29 134217728
|
||||
mx8+shl2304x3 63 7 c647131d75335d5c 1.00008 7 0.002382 0.002381 1.0004 27 0 26 134217728
|
||||
mx8+shl2304x3 62 3 55c3d4c861d94dea 1.00007 13 0.002381 0.002380 1.0005 27 0 27 134217728
|
||||
|
Can't render this file because it has a wrong number of fields in line 7.
|
65
docs/analysis/class-v6/logs/uniform-mx8_shl4096x1.tsv
Normal file
65
docs/analysis/class-v6/logs/uniform-mx8_shl4096x1.tsv
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
class seed attempt program_id min_site_ratio min_site top0.1_share control_share ratio_to_control max_item_reads max_item control_max reads
|
||||
mx8+shl4096x1 3 exhausted
|
||||
mx8+shl4096x1 17 2 b0f95f83c8b9848a 1.00010 14 0.002381 0.002380 1.0006 28 0 27 134217728
|
||||
mx8+shl4096x1 24 2 4f25c8f1d38840d2 1.00007 15 0.002381 0.002380 1.0006 28 0 28 134217728
|
||||
mx8+shl4096x1 9 7 6059f333a16dbf81 1.00009 3 0.002381 0.002380 1.0007 27 0 28 134217728
|
||||
mx8+shl4096x1 0 21 340d3f5acca526f7 1.00006 5 0.002381 0.002382 0.9993 28 0 27 134217728
|
||||
mx8+shl4096x1 20 12 44d5d0a1c21c2c08 1.00008 10 0.002383 0.002378 1.0019 27 0 27 134217728
|
||||
mx8+shl4096x1 4 21 227c9ea969b4f0be 1.00007 8 0.002383 0.002377 1.0023 28 0 29 134217728
|
||||
mx8+shl4096x1 13 11 cc2a38356847026b 1.00005 1 0.002382 0.002383 0.9998 28 0 27 134217728
|
||||
mx8+shl4096x1 1 9 545090fe5d5d48fe 1.00009 1 0.002382 0.002381 1.0003 30 0 27 134217728
|
||||
mx8+shl4096x1 8 20 e857640d0270f30f 1.00011 15 0.002383 0.002379 1.0018 26 0 27 134217728
|
||||
mx8+shl4096x1 16 2 d925a29d984cd513 1.00009 5 0.002384 0.002381 1.0011 27 0 27 134217728
|
||||
mx8+shl4096x1 12 3 ed43bca34cd7c2a2 1.00013 9 0.002379 0.002381 0.9989 29 0 27 134217728
|
||||
mx8+shl4096x1 10 8 5c87a72e42c9de86 1.00011 6 0.002379 0.002381 0.9992 26 0 27 134217728
|
||||
mx8+shl4096x1 6 1 05834442251198a1 1.00009 13 0.002381 0.002380 1.0006 27 0 28 134217728
|
||||
mx8+shl4096x1 23 8 93a81f4565355861 0.99707 13 0.002459 0.002378 1.0339 251 0 28 134217728
|
||||
mx8+shl4096x1 11 6 c416ed8bbe7d4ea0 1.00006 4 0.002379 0.002382 0.9987 27 0 27 134217728
|
||||
mx8+shl4096x1 2 0 6edd24933e170d70 1.00013 8 0.002379 0.002380 0.9999 27 0 29 134217728
|
||||
mx8+shl4096x1 22 3 823529821cdf93ab 1.00010 13 0.002382 0.002382 0.9999 27 0 27 134217728
|
||||
mx8+shl4096x1 18 18 df5d9390d3d83cb1 1.00008 10 0.002381 0.002381 1.0003 27 0 27 134217728
|
||||
mx8+shl4096x1 14 0 f865448dc76d5aca 1.00007 5 0.002378 0.002382 0.9984 27 0 27 134217728
|
||||
mx8+shl4096x1 7 3 470478a4eb187067 0.99964 4 0.002385 0.002379 1.0024 26 0 27 134217728
|
||||
mx8+shl4096x1 5 30 254c9c5fb60381ed 1.00010 14 0.002381 0.002379 1.0011 27 0 28 134217728
|
||||
mx8+shl4096x1 21 18 c52bcee3ca0baa30 1.00010 15 0.002382 0.002382 0.9999 28 0 28 134217728
|
||||
mx8+shl4096x1 19 2 ddab5a93bd139bc8 1.00011 14 0.002378 0.002381 0.9990 28 0 27 134217728
|
||||
mx8+shl4096x1 15 10 08a70d0dbe8faa8c 1.00010 2 0.002379 0.002380 0.9995 27 0 27 134217728
|
||||
mx8+shl4096x1 31 exhausted
|
||||
mx8+shl4096x1 41 exhausted
|
||||
mx8+shl4096x1 25 0 36ab9c36661531c3 1.00011 11 0.002383 0.002381 1.0009 27 0 26 134217728
|
||||
mx8+shl4096x1 26 8 81f861fdce42d06e 1.00011 11 0.002379 0.002380 0.9996 27 0 26 134217728
|
||||
mx8+shl4096x1 29 0 11b231ddd567c9e8 0.99970 15 0.002382 0.002379 1.0012 31 0 27 134217728
|
||||
mx8+shl4096x1 28 9 3b227938c0e2231c 1.00010 11 0.002382 0.002380 1.0008 27 0 28 134217728
|
||||
mx8+shl4096x1 53 exhausted
|
||||
mx8+shl4096x1 27 23 dc1f09a3ef9d2a99 1.00012 12 0.002382 0.002381 1.0004 28 0 26 134217728
|
||||
mx8+shl4096x1 39 4 4e7c182baa1a4a1b 1.00009 9 0.002381 0.002382 0.9994 28 0 27 134217728
|
||||
mx8+shl4096x1 44 0 36953ab1f2180836 1.00007 12 0.002382 0.002381 1.0005 27 0 27 134217728
|
||||
mx8+shl4096x1 43 12 48580e6c2b59439b 1.00011 9 0.002380 0.002381 0.9993 27 0 27 134217728
|
||||
mx8+shl4096x1 37 4 d5013a9522ad5543 1.00008 2 0.002380 0.002380 1.0000 27 0 27 134217728
|
||||
mx8+shl4096x1 34 5 1c5a9cb1f2d42cca 1.00007 14 0.002380 0.002381 0.9996 28 0 27 134217728
|
||||
mx8+shl4096x1 33 2 7c6a199c86313f69 1.00008 14 0.002382 0.002381 1.0004 28 0 28 134217728
|
||||
mx8+shl4096x1 30 19 b783565b6523434c 1.00006 12 0.002380 0.002381 0.9996 26 0 27 134217728
|
||||
mx8+shl4096x1 45 16 628bac1c72879c6d 1.00010 12 0.002382 0.002382 0.9998 27 0 26 134217728
|
||||
mx8+shl4096x1 32 7 36488864cadf6ca7 1.00008 1 0.002381 0.002379 1.0008 28 0 28 134217728
|
||||
mx8+shl4096x1 36 1 3fdecb3b8e921f75 1.00010 11 0.002382 0.002380 1.0009 27 0 28 134217728
|
||||
mx8+shl4096x1 49 5 b77e74a67bb6c771 1.00002 2 0.002380 0.002381 0.9996 32 0 27 134217728
|
||||
mx8+shl4096x1 46 0 5eb5626db2690873 1.00002 13 0.002378 0.002381 0.9990 26 0 28 134217728
|
||||
mx8+shl4096x1 35 7 6c3967bb0b566f09 1.00007 12 0.002381 0.002381 0.9998 26 0 28 134217728
|
||||
mx8+shl4096x1 40 14 e7f5c35cfb86a17c 1.00000 4 0.002381 0.002381 1.0000 27 0 27 134217728
|
||||
mx8+shl4096x1 50 2 549f8dba3fcba122 1.00011 3 0.002381 0.002379 1.0008 27 0 27 134217728
|
||||
mx8+shl4096x1 38 1 4b79b3b55f4764aa 1.00012 3 0.002379 0.002380 0.9995 28 0 27 134217728
|
||||
mx8+shl4096x1 47 3 b3c9b8bac363b4c5 1.00006 10 0.002380 0.002378 1.0008 26 0 28 134217728
|
||||
mx8+shl4096x1 42 4 0428662243e68699 1.00011 7 0.002383 0.002381 1.0009 27 0 26 134217728
|
||||
mx8+shl4096x1 48 14 be0d1e64f5ba21bb 1.00011 1 0.002381 0.002381 0.9997 27 0 28 134217728
|
||||
mx8+shl4096x1 54 21 7d1a5b56479af4ec 1.00013 10 0.002382 0.002380 1.0008 26 0 26 134217728
|
||||
mx8+shl4096x1 52 16 9bc4cf406998d9a2 1.00007 4 0.002381 0.002379 1.0005 27 0 28 134217728
|
||||
mx8+shl4096x1 51 3 26a54134632ad738 1.00012 10 0.002383 0.002378 1.0020 27 0 27 134217728
|
||||
mx8+shl4096x1 55 0 3167b616ff2705fc 1.00002 15 0.002380 0.002380 1.0003 30 0 27 134217728
|
||||
mx8+shl4096x1 56 25 ad1e66ae16b7962f 1.00010 7 0.002380 0.002381 0.9997 27 0 28 134217728
|
||||
mx8+shl4096x1 60 1 2fd619b39ec1cada 1.00004 8 0.002383 0.002380 1.0011 28 0 26 134217728
|
||||
mx8+shl4096x1 57 0 051e980b891b4123 1.00008 11 0.002380 0.002382 0.9992 27 0 27 134217728
|
||||
mx8+shl4096x1 59 26 0bd2c17514f67fd4 1.00009 13 0.002380 0.002381 0.9995 26 0 27 134217728
|
||||
mx8+shl4096x1 58 6 8bc36a3e9c765a1c 1.00006 2 0.002381 0.002380 1.0004 27 0 26 134217728
|
||||
mx8+shl4096x1 63 10 39fab9b0e5f88aa8 1.00008 15 0.002383 0.002381 1.0010 27 0 26 134217728
|
||||
mx8+shl4096x1 62 3 1ccf354dd44307ed 0.99999 1 0.002380 0.002380 1.0002 27 0 27 134217728
|
||||
mx8+shl4096x1 61 30 a6b85d02886ea796 1.00009 10 0.002381 0.002383 0.9992 27 0 29 134217728
|
||||
|
Can't render this file because it has a wrong number of fields in line 2.
|
|
|
@ -34,9 +34,22 @@
|
|||
"source": "igneum.network/api/checkpoint?index=2127 (dn3_live_certificates), the bytes the chain carried; verified by eth_call before the send (true, 4833, 7164)"
|
||||
}
|
||||
],
|
||||
"interface": "IIgneumCertificateVerifier in contracts/bridge/src/IgneumCertificateVerifier.sol: chainId(), tableId(), verifyCertificate(uint64 index, bytes32 checkpoint, bytes bitmap, bytes signature) view returns (bool ok, uint256 signedWeight, uint256 totalWeight), submitCertificate(...), finalCheckpoint(uint64) view returns (bytes32), isFinal(bytes32) view returns (bool), verifyAccount(bytes32 stateRoot, address account, bytes[] proof) pure returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash)"
|
||||
"interface": "IIgneumCertificateVerifier in contracts/bridge/src/IgneumCertificateVerifier.sol: chainId(), tableId(), verifyCertificate(uint64 index, bytes32 checkpoint, bytes bitmap, bytes signature) view returns (bool ok, uint256 signedWeight, uint256 totalWeight), submitCertificate(...), finalCheckpoint(uint64) view returns (bytes32), isFinal(bytes32) view returns (bool), verifyAccount(bytes32 stateRoot, address account, bytes[] proof) pure returns (bool exists, uint256 nonce, uint256 balance, bytes32 storageRoot, bytes32 codeHash)",
|
||||
"account_proofs": [
|
||||
{
|
||||
"account": "0x085a7ca7338efaf797f3300fa7c64afa9d2c539b",
|
||||
"devnet3_block": 28462,
|
||||
"state_root": "0x1fd551393d84009c398a9b9747cd296d0fdf1e31f85fa21c10426bc219694561",
|
||||
"balance_wei": "547807747463600000000",
|
||||
"balance_ign": "547.8077",
|
||||
"proof_nodes": 3,
|
||||
"source": "eth_getProof on the reference-apps lane's Devnet 3 reader node (igneum-light-reader on build-1, fork branch light-apps-node), the block's stateRoot equal to the proof's root",
|
||||
"verified": "eth_call verifyAccount on the live contract 13:0x UTC: (true, nonce 0, 547807747463600000000, empty storage root, empty code hash); the suite's test_devnet3_account_balance_proven green on build-3 (10 of 10)",
|
||||
"caveat": "the root is the chain's own but no certificate ties it to a checkpoint (gap 1 in docs/bridge/light-client-bridge.md)"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"first_deploy_note": "A first creation at 0xD7dd375E14F92A4CE4782040325189e6d6E394b6 (tx 0x4db10565\u2026, block 11869633) ran out of gas at Foundry's Prague-spec estimate of 3,323,884; Sepolia runs Osaka pricing (EIP-7883 modexp), so the test EVM and the deploy now use osaka and the RPC's own estimate. That address holds no code.",
|
||||
"tests": "contracts/bridge/test/Verifier.t.sol: 9 of 9 green on build-3 (Foundry, osaka), 12:3x UTC 8 October 2026; the live contract verified and recorded Devnet 3 checkpoint 2127 at 12:5x UTC"
|
||||
"tests": "contracts/bridge/test/Verifier.t.sol: 10 of 10 green on build-3 (Foundry, osaka), 13:0x UTC 8 October 2026, including one Devnet 3 account under a real Devnet 3 state root"
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -265,6 +265,7 @@ dt{color:var(--ash)}dd{margin:0;font-family:var(--f-mono);font-size:13px;overflo
|
|||
<input id="amount-out" name="amount-out" readonly placeholder="0.0">
|
||||
<select id="token-out" aria-label="Token to receive"></select>
|
||||
</div>
|
||||
<p class="small">The Igneum Wallet is found on this machine through 127.0.0.1; Chrome asks once per site to allow local network access, and the wallet asks once to connect igneum.network. Nothing on this page asks for a seed or a key.</p>
|
||||
<p class="small" id="quote-line">Enter an amount for a quote. Slippage limit 1 percent, deadline 10 minutes.</p>
|
||||
<button class="btn" id="go" type="submit" disabled>Swap</button>
|
||||
<div class="status" id="status" role="status" aria-live="polite"></div>
|
||||
|
|
|
|||
15
tools/attack/v6-invention/README.md
Normal file
15
tools/attack/v6-invention/README.md
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# Class v6 invention lane harnesses (8 October 2026)
|
||||
|
||||
Research harnesses over the `igneum-pow` crate of branch `counter-asic-4` (the experimental per-load shadow class
|
||||
`+shl<S>x<R>` lives there, not on master): build them from a worktree of that branch with `tools/build-remote.sh`
|
||||
and run them on the boxes under `/srv/builds/_bin/lease`. Nothing here is consensus code or a chain class.
|
||||
|
||||
- `v6inv-census.sh`: the acceptance census of a list of load classes over N seeds (`igneum-v6inv/<i>`), with or without
|
||||
a drawn era, one TSV row per (form, seed): candidates, accepted, the first accepted attempt, the first failing parts.
|
||||
- `uniform/`: the F8-form uniformity read for any class the crate draws, through the library's own `trace_load_indices`
|
||||
(the class's execution order): per site the distinct-index ratio at 2^20 nonces, the cross-hash item histogram's top
|
||||
0.1 percent share against a uniform control of the same size.
|
||||
- `v6_window_bits.rs.offered`: a known-failed test for the per-load bias test's era-window fault (offered to the
|
||||
counter-asic-4 crate's suite; not built here).
|
||||
|
||||
The record: `docs/analysis/class-v6/invention.md`.
|
||||
15
tools/attack/v6-invention/uniform/Cargo.toml
Normal file
15
tools/attack/v6-invention/uniform/Cargo.toml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
[package]
|
||||
name = "v6inv-uniform"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
||||
[[bin]]
|
||||
name = "v6inv-uniform"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
igneum-pow = { path = "../../../../igneum-pow" }
|
||||
|
||||
[profile.release]
|
||||
opt-level = 3
|
||||
95
tools/attack/v6-invention/uniform/src/main.rs
Normal file
95
tools/attack/v6-invention/uniform/src/main.rs
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
//! v6inv-uniform (class v6 invention lane, 8 October 2026): the F8-form uniformity read for any load class the crate can
|
||||
//! draw, the per-load shadow forms included, through the library's own `trace_load_indices` (the execution order the
|
||||
//! class defines, not a mirror). Per seed: the first accepted candidate of `attempts_class`, then over `nonces` nonces
|
||||
//! (warps of 32) every load's index; per site the distinct-index ratio `d_s / E_s` with `E_s = N - N^2 / (2 W)` at
|
||||
//! W = 2^log2 (no era: every site on the whole dataset), and the cross-hash item histogram's top 0.1 percent share
|
||||
//! against a uniform SplitMix64 control of the same size (the F8 harness's null without an era). One TSV row per seed.
|
||||
//!
|
||||
//! v6inv-uniform --class mx8+shl4096x1 --seeds 64 --nonces 1048576 --threads 48 [--log2 28] [--day 2026-10-03]
|
||||
use igneum_pow::generator::{attempts_class, LoadClass};
|
||||
use igneum_pow::seed::{seed_words_from_bytes, SplitMix64};
|
||||
use igneum_pow::verify::{trace_load_indices, DatasetMode, DatasetSource};
|
||||
use std::collections::HashSet;
|
||||
use std::io::Write;
|
||||
use std::sync::atomic::{AtomicUsize, Ordering};
|
||||
use std::sync::Mutex;
|
||||
|
||||
fn arg(args: &[String], k: &str, d: &str) -> String {
|
||||
args.iter().position(|a| a == k).and_then(|i| args.get(i + 1).cloned()).unwrap_or_else(|| d.to_string())
|
||||
}
|
||||
|
||||
fn top_share(counts: &mut Vec<u32>, frac: f64) -> (f64, u32) {
|
||||
let total: u64 = counts.iter().map(|&c| c as u64).sum();
|
||||
counts.sort_unstable_by(|a, b| b.cmp(a));
|
||||
let k = ((counts.len() as f64) * frac) as usize;
|
||||
let top: u64 = counts[..k].iter().map(|&c| c as u64).sum();
|
||||
(top as f64 / total as f64, counts[0])
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
let class_name = arg(&args, "--class", "mx8+shl4096x1");
|
||||
let seeds: u32 = arg(&args, "--seeds", "64").parse().unwrap();
|
||||
let nonces: u32 = arg(&args, "--nonces", "1048576").parse().unwrap();
|
||||
let threads: usize = arg(&args, "--threads", "16").parse().unwrap();
|
||||
let log2: u32 = arg(&args, "--log2", "28").parse().unwrap();
|
||||
let day = arg(&args, "--day", "2026-10-03");
|
||||
let prefix = arg(&args, "--prefix", "igneum-v6inv");
|
||||
let class = LoadClass::parse(&class_name).expect("class");
|
||||
let ds = DatasetSource::new(&day, DatasetMode::ClosedForm, log2);
|
||||
let items = 1usize << (log2 - 4);
|
||||
let w = (1u64 << log2) as f64;
|
||||
let n = (nonces as f64) * (igneum_pow::generator::ITERATIONS as f64); // evaluations per site
|
||||
let e_s = n - n * n / (2.0 * w);
|
||||
let next = AtomicUsize::new(0);
|
||||
let out = Mutex::new(std::io::stdout());
|
||||
println!("class\tseed\tattempt\tprogram_id\tmin_site_ratio\tmin_site\ttop0.1_share\tcontrol_share\tratio_to_control\tmax_item_reads\tmax_item\tcontrol_max\treads");
|
||||
std::thread::scope(|s| {
|
||||
for _ in 0..threads {
|
||||
s.spawn(|| loop {
|
||||
let i = next.fetch_add(1, Ordering::Relaxed) as u32;
|
||||
if i >= seeds {
|
||||
break;
|
||||
}
|
||||
let label = format!("{prefix}/{i}");
|
||||
let tries = attempts_class(&label, label.as_bytes(), class);
|
||||
let Some((p, _)) = tries.into_iter().find(|(_, r)| r.is_ok()) else {
|
||||
let mut o = out.lock().unwrap();
|
||||
writeln!(o, "{class_name}\t{i}\texhausted").unwrap();
|
||||
continue;
|
||||
};
|
||||
let seed = seed_words_from_bytes(label.as_bytes());
|
||||
let sites = p.instrs.iter().filter(|x| x.op.is_load()).count();
|
||||
let mut distinct: Vec<HashSet<u32>> = (0..sites).map(|_| HashSet::with_capacity(nonces as usize)).collect();
|
||||
let mut counts = vec![0u32; items];
|
||||
let mut reads: u64 = 0;
|
||||
let mut base = 0u32;
|
||||
while base < nonces {
|
||||
let rows = trace_load_indices(&p, &seed, base, &ds);
|
||||
for (k, row) in rows.iter().enumerate() {
|
||||
let site = k % sites;
|
||||
for &idx in row.iter() {
|
||||
distinct[site].insert(idx);
|
||||
counts[(idx >> 4) as usize] += 1;
|
||||
reads += 1;
|
||||
}
|
||||
}
|
||||
base += 32;
|
||||
}
|
||||
let (min_ratio, min_site) = distinct.iter().enumerate().map(|(s, d)| (d.len() as f64 / e_s, s)).fold((f64::MAX, 0usize), |a, b| if b.0 < a.0 { b } else { a });
|
||||
let (share, max_reads) = top_share(&mut counts, 0.001);
|
||||
let max_item = 0u32; // the heaviest item's index is not kept (the sort loses it); the count is the number
|
||||
// the uniform control: the same number of reads over the same items
|
||||
let mut ctrl = vec![0u32; items];
|
||||
let mut rng = SplitMix64::new(0x9e37_79b9_7f4a_7c15 ^ i as u64);
|
||||
for _ in 0..reads {
|
||||
let x = rng.next() as usize & (items - 1);
|
||||
ctrl[x] += 1;
|
||||
}
|
||||
let (cshare, cmax) = top_share(&mut ctrl, 0.001);
|
||||
let mut o = out.lock().unwrap();
|
||||
writeln!(o, "{class_name}\t{i}\t{}\t{:016x}\t{min_ratio:.5}\t{min_site}\t{share:.6}\t{cshare:.6}\t{:.4}\t{max_reads}\t{max_item}\t{cmax}\t{reads}", p.attempt, p.program_id(), share / cshare).unwrap();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
46
tools/attack/v6-invention/v6_window_bits.rs.offered
Normal file
46
tools/attack/v6-invention/v6_window_bits.rs.offered
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
//! Class v6 invention lane (8 October 2026): the per-load acceptance's value-level bias test must not judge the era
|
||||
//! window's fixed top index bits. Known-failed first: at counter-asic-4 5984ffab every per-load form under every drawn
|
||||
//! era was refused with "index bit 26 (or 27) at load site s set in 0 (or 16,384) of 16,384" (0 of 256 seeds on 11
|
||||
//! forms, build-1, 11:0x UK); with the window bits skipped the sound form accepts under an era as it does without one.
|
||||
use igneum_pow::accept::Reject;
|
||||
use igneum_pow::generator::{attempts_class, LoadClass};
|
||||
use igneum_pow::seed::seed_words_from_bytes;
|
||||
|
||||
fn era_class(name: &str, n: u32) -> LoadClass {
|
||||
let era_seed = seed_words_from_bytes(format!("igneum-era-test/{n}").as_bytes());
|
||||
let mut bytes = Vec::new();
|
||||
for w in era_seed {
|
||||
bytes.extend_from_slice(&w.to_le_bytes());
|
||||
}
|
||||
LoadClass::era(LoadClass::parse(name).unwrap(), &bytes, &igneum_pow::generator::V3_ALLOWED)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn per_load_bias_test_skips_the_era_window_bits() {
|
||||
let mut accepted = 0usize;
|
||||
let mut window_bit_rejections = 0usize;
|
||||
for i in 0..8u32 {
|
||||
let class = era_class("mx8+shl4096x1", i);
|
||||
let label = format!("igneum-v6inv/{i}");
|
||||
for (_, verdict) in attempts_class(&label, label.as_bytes(), class) {
|
||||
match verdict {
|
||||
Ok(()) => accepted += 1,
|
||||
Err(Reject::BiasedIndexBit { bit, ones, .. }) if bit >= 26 && (ones == 0 || ones == 16_384) => window_bit_rejections += 1,
|
||||
Err(_) => {}
|
||||
}
|
||||
}
|
||||
}
|
||||
assert_eq!(window_bit_rejections, 0, "a window's fixed top bit was judged as biased");
|
||||
assert!(accepted >= 4, "the sound per-load form accepted on {accepted} of 8 seeds under drawn eras (0 before the fix)");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn per_load_bias_test_still_refuses_a_biased_real_bit_without_an_era() {
|
||||
// the no-era census: every rejection on the real address bits stands (bit 0 at a one-count near 4,096 is the
|
||||
// product's low-bit law); the known-pass of the fix is that no era-free verdict moves
|
||||
let class = LoadClass::parse("mx8+shl4096x1").unwrap();
|
||||
let label = "igneum-v6inv/3";
|
||||
let v = attempts_class(label, label.as_bytes(), class);
|
||||
assert!(v.iter().all(|(_, r)| r.is_err()), "seed 3 exhausted the cap on the no-era census (0 of 32) and must still");
|
||||
assert!(v.iter().any(|(_, r)| matches!(r, Err(Reject::BiasedIndexBit { bit: 0, .. }))), "a bit-0 refusal on seed 3 stands");
|
||||
}
|
||||
Loading…
Reference in a new issue