Bench log: proving v0 end to end on the 3-node test network (CPU prover, 150.6 s, three nodes agree on the payout)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
c372254051
commit
a438fdbb0a
2 changed files with 104 additions and 0 deletions
|
|
@ -892,3 +892,23 @@ after 7 minutes: 33 accepted blocks, 0 rejected, 21.0 MH/s average (24.3 MH/s at
|
|||
OK on every share. Node 1 counted 7 peers with the laptop connected. The log intake received its uploads every minute
|
||||
under the per-install id, so the machine is observable without any contact from its owner. Observed by the team; the
|
||||
machine is not ours, so this is the first row that is not "the project's own hardware".
|
||||
|
||||
## 2026-10-04 (afternoon) proving v0 end to end on a 3-node test network (Mac, CPU prover)
|
||||
|
||||
Machine: Apple M5 Max, load 5 to 8 shared with the live devnet, other agents' builds and a Windows cross-build in the last minutes. Node: branch `proving` of the fork at 8c0cff15 (`vendor/igneum-node-proving/target/release`), 3 nodes on 127.0.0.1:29800+, network igneum-devnet-955, `infra/fast-time/override-60x.json` with `skip_proof_of_work` and `proving_v0_activation_daa` 60; three `igneum-miner vmine` producers sharing 1 block/s and voting; node 0 with `IGNEUM_PROOF_VERIFIER` = the SP1 host, nodes 1 and 2 in trust mode. Prover: `proving/igneum-prove` host built 14:58 (guest rebuilt with the payouts input), `SP1_PROVER=cpu`. Script: `tools/proving-v0/run.mjs`; report `tools/proving-v0/report-2026-10-04.json`. Second run; the first (14:08) failed at the carriage step because the template never carried the record section (fixed in 8c0cff15), everything before it identical.
|
||||
|
||||
| Step | Measured |
|
||||
|---|---|
|
||||
| Activation DAA 60 reached | 62.8 s after start (DAA 65) |
|
||||
| Transfer executed in chain block 68 | 65.8 s |
|
||||
| Shard plan of block 68: 1 shard, 200 pgas (one transfer, intrinsic only), 3 eligible keys of 67 window blocks, 3 assignees (every eligible key holds a slot), shard credit 633,911,390,000,000,000 wei | identical on nodes 0 and 1 |
|
||||
| `igneum-prove-export` on the chain export (68 segments) | 0.005 s; plan equals the node's (pre-root, post-root, links, receipts root, pgas) |
|
||||
| `igneum-prove-host --mode compressed`, shard 0 of block 68 | execute 0.027 s, 293,603 cycles; compressed proof 61.3 s, 1,272,897 bytes, local verify 0.029 s; 70.3 s with setup |
|
||||
| `igneum-miner sign-record` + `igneum_submitProofRecord` to node 1 (trust mode) | accepted (native statement matched), 137.6 s after start |
|
||||
| Record on node 0 over p2p (message 71) | 1.0 s after the submission |
|
||||
| Carried by a block and paid on node 0 (chain block 150, carrier 0x8302cf39...) | 4.0 s after the submission |
|
||||
| Node 0's verifier (SP1 compressed proof against the shard vk, statement compared) | VERIFIED, 9.3 s in all (SP1 client and key setup; the verify itself 0.029 s) |
|
||||
| Payout on all three nodes | 0x8cc1b0cf4062c00 wei on each; the payout address holds exactly the shard's credit; pool escrow 100.16 IGN after the payment |
|
||||
| End to end | PASSED in 150.6 s |
|
||||
|
||||
Reading. The whole loop (plan, export, cut, prove, sign, submit, relay, verify, carry, pay) runs and three nodes agree on the payment. The exporter's cut equals the node's cut on the same trace, which is the condition for a prover to prove what the node pays. The 200-pgas shard is the smallest possible (one plain transfer); its 61 s compressed proof on this CPU is a correctness number, not a throughput number, and says nothing about `S_p`. The verifier's 9.3 s is nearly all SP1 setup per invocation (the pool runs one process per proof); a resident verifier would cut it to the 0.03 s verify. The trust-mode nodes carried the record before node 0 had verified it, which is the v0 limitation of spec 7.7 item 4 in one line: carriage and payout rest on the native statement, verification on the producer's pool policy.
|
||||
|
|
|
|||
84
tools/proving-v0/report-2026-10-04.json
Normal file
84
tools/proving-v0/report-2026-10-04.json
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{
|
||||
"activation": 60,
|
||||
"steps": {
|
||||
"status": {
|
||||
"activationDaa": "0x3c",
|
||||
"verifier": "Command(\"/Users/joshm/Projects/igneum/proving/igneum-prove/target/release/igneum-prove-host\")"
|
||||
},
|
||||
"activation": {
|
||||
"daa": 65,
|
||||
"secs": 62.8
|
||||
},
|
||||
"transfer": {
|
||||
"txHash": "0xd6c9137f61dfd5a1fcd6d683f675caa9f12238864be54b0660078bdb314477af",
|
||||
"number": 68,
|
||||
"secs": 65.8
|
||||
},
|
||||
"plan": {
|
||||
"number": 68,
|
||||
"hash": "0xc91c558b0761b90dbff760307711657474af8bab156a667d7aa876629677d5af",
|
||||
"shards": 1,
|
||||
"eligibleKeys": 3,
|
||||
"windowBlocks": 67,
|
||||
"assignees": 3,
|
||||
"pgas": 200,
|
||||
"shardWei": "0x8cc1b0cf4062c00",
|
||||
"sameOnNode1": true
|
||||
},
|
||||
"export": {
|
||||
"secs": 0.005,
|
||||
"exporterShards": 1,
|
||||
"matchesNode": true,
|
||||
"preRoot": "0xa222c8a15d4e930528757750eec969f2fa5742edeffff6f6b6d7b4bb85583c56",
|
||||
"postRoot": "0x5f44ce6385f0a45bf72aacb75648e5f92c907c8ea63981f2f018b7b36351379d"
|
||||
},
|
||||
"prove": {
|
||||
"secs": 70.272,
|
||||
"cycles": 293603,
|
||||
"executeSeconds": 0.027182958,
|
||||
"compressedSeconds": 61.26230775,
|
||||
"verifySeconds": 0.029462625,
|
||||
"proofBytes": 1272897,
|
||||
"statement": "0x24dd6e3da29a32fd1763b80711a0aeffac27aae6ca29512c6f8fb0d5b19b0c5a",
|
||||
"proofSha256": "0xf254a884a0726864adc69650daab9f65058305566f4e5e7a15e53b9857f24314"
|
||||
},
|
||||
"submit": {
|
||||
"to": "n1",
|
||||
"accepted": true,
|
||||
"block": "0xc91c558b0761b90dbff760307711657474af8bab156a667d7aa876629677d5af",
|
||||
"keyHash": "0xc379ba2cdb239d2884d6bdb391d243ddfa869ab95ec4e72372e0e31fc9025fa0",
|
||||
"new": true,
|
||||
"number": "0x44",
|
||||
"reason": "accepted",
|
||||
"shard": 0,
|
||||
"secs": 137.6
|
||||
},
|
||||
"relay_verify_pay": {
|
||||
"relayedAt": 138.6,
|
||||
"verified": true,
|
||||
"verifiedAt": 147.6,
|
||||
"paidAt": 141.6,
|
||||
"carriedBy": "0x8302cf39c34e53bcbda2d9daeb20699df8d7f0f472a64f4bf885d73ef7e30bde",
|
||||
"paid": {
|
||||
"carrierNumber": "0x96",
|
||||
"keyHash": "0xc379ba2cdb239d2884d6bdb391d243ddfa869ab95ec4e72372e0e31fc9025fa0",
|
||||
"payout": "0x4242424242424242424242424242424242424242",
|
||||
"shard": 0,
|
||||
"wei": "0x8cc1b0cf4062c00"
|
||||
}
|
||||
},
|
||||
"payout": {
|
||||
"paidWeiPerNode": [
|
||||
"0x8cc1b0cf4062c00",
|
||||
"0x8cc1b0cf4062c00",
|
||||
"0x8cc1b0cf4062c00"
|
||||
],
|
||||
"payoutBalanceWei": "633911390000000000",
|
||||
"shardWei": "633911390000000000",
|
||||
"balanceEqualsShardWei": true,
|
||||
"poolBalanceWei": "100161854910000000000",
|
||||
"paidShards": 1
|
||||
}
|
||||
},
|
||||
"ok": true
|
||||
}
|
||||
Loading…
Reference in a new issue