Compare commits

...

35 commits

Author SHA1 Message Date
igneum-labs
7c48454e36 bench log: Devnet 2 zero program-id class closed (paidSegments 4 at 22:28Z)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:31:17 +00:00
igneum-labs
0f48f75740 ledger and bench log: the export-disk row is X34 (X31 to X33 are the site lane's) and the consensus proof verification ships as 0.3.17 (0.3.16 is tonight's corrective cut)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 22:00:16 +00:00
igneum-labs
98fc78189c 0.3.16 app side: the forged-record harness; ledger P21 round 4 and X31 (the export-disk class); bench-log verify costs
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:05:19 +00:00
igneum-labs
5bbb73ecc1 prover: the proving directory owns its disk (size and age caps, delete on submit, a free-disk floor before each export)
The fleet's segment exports (50 to 500 MB each with the old [0, last] export, never pruned) filled 42 GB on the hub
(586 segment dirs, 60 GB disk, 100 percent) and 3 to 46 GB on every standing box between about 13:00Z and 20:44Z on
6 October 2026, 4 to 6 GB an hour a box; the hub's node died on the full disk at 20:42:31Z (its two earlier deaths
at 19:58:08Z and 20:01:55Z were the sync KeyNotFound). The app's prover now:
- enforces a cap on <app dir>/proving before every export: entries older than IGNEUM_PROVING_DIR_MAX_DAYS (7) go,
  then the oldest until the total is under IGNEUM_PROVING_DIR_MAX_GB (20); the plan is a pure function with a
  unit test (provingdir::prune_plan); the defaults leave 80 GB of a 100 GB box to the node and the system
- skips the export with a logged line when the disk is under 10 percent free (statvfs on unix, GetDiskFreeSpaceExW
  on Windows), and the Prove page says so
- deletes a segment's directory (fixtures, proofs, logs) the moment its record is submitted, on the first try or on
  a retry; seq.json was already removed after the cut
The fleet's kit (box-prover.py, gpu-fleet f9ad70e) carries the same rule on the boxes since 20:5xZ.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 21:01:01 +00:00
igneum-labs
91cbe968c6 prover: a stale igneum-prove-export is named when the node's export carries the account dump and the exporter never reads it
PC 1 on 0.3.14 (6 October 2026, 18:16Z, block 140,662): "segment 140661: port state root 0xe45c... differs from the
node's 0xddd7...". The export was [140661, 140662] with the dump; the 0.3.14 exporter seeds from segment 140,661 and
never replays it, so the only exporter that replays 140,661 (from the restart state, hence the mismatch) is the one
from before 0.3.14: the installed binary was not replaced, the same class as the stale verifier host. The prover's
failure line now names the stale exporter by path when the export carries preState and the output has no "account
dump" line (exporter_failure, unit-tested with the PC 1 text); the real line stays when the exporter did read the dump.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:25:02 +00:00
igneum-labs
025c214bf3 exec-sync harness case 7: the PC shape (tip-0 pair, peer flag) recovers over p2p; bench-log line
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 18:13:44 +00:00
igneum-labs
c5a9b4c466 bench log: the first segment above the restart cut from a snapshot-restored node on the new export (8 blocks, roots equal node 1)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:57:54 +00:00
igneum-labs
1b7d2a7407 infra/fast-time/override-60x.json: the four exec restart fields at their never values (the devnet-profile test wants every override field present; the 0.3.14 node added them)
Measured: IGNEUM_FAST_TIME_FILE=<this file> cargo test -p kaspa-consensus-core --lib fast_time_60x: 1 passed (fork 1f59c5d0, 6 October 2026 17:54Z).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 17:54:52 +00:00
igneum-labs
9ff5ef4010 exec-sync plan and bench log: the 15:43Z reorg incident, the 0.3.13.1/0.3.14 rules, the harness numbers
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:51:39 +00:00
igneum-labs
aa78d877c7 exec 0.3.14 app side: the prover exports from one block below and seeds from the account dump; the reorg harness; the 4060 rows
- app/igneum-app/src/prover.rs: igneum_exportSegments [n-1, n] for a shard and [first-1, last] for a segment (never
  from 0: on a restarted node the records below the restart carry zero roots and the exporter refused every cut,
  the fleet 16:02Z); exec_boundary() reads igneum_getExecStatus.restartNumber (or the startedFrom text on a
  0.3.13 node) and the prover never claims a shard or a segment below it
- proving/igneum-prove/export: seeds the port from the export's preState, checks its root against the node's at the
  dump's block and replays from the next segment; the restart-replay path stays for exports without a dump
- tools/exec-sync/reorg.mjs: a 300-chain-block reorg on a private fast-time simnet, two cases (the ring, the
  persisted-generation fallback after a restart), 18 checks; A's lone miner casts no finality vote because one key
  at 83% of the window certified its own branch in the first run and the finality rule refused B's chain, by design
- tools/exec-sync/net.mjs: case 5 (an unreadable flag file blocks loudly, never genesis) and case 6 (the export from
  one block below carries the dump; the exporter cuts from it), 15 checks
- bench/proof-systems: the rented RTX 4060 8 GB rows (46) and the table

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 16:50:25 +00:00
igneum-labs
5f77004b17 proving v2 plan: the CUDA rows (4090, 3060, 4060, PC 2) and the per-tier table; the verdict: SP1 patched 4 to 6x faster on every card, RISC Zero's edge the 5.7x smaller proof
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 15:11:45 +00:00
igneum-labs
224d18ec4c bench-log: the exec-sync harness (12 checks) and the fresh node's run on the rented 4090
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 15:08:24 +00:00
igneum-labs
80ccf79c84 exec-sync plan: what the first 45,537 DAA lost (about 124,600 IGN of producer rewards and 31,100 IGN of escrow from the schedule, approximate; the per-address split unrecoverable) and the before column
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 14:57:14 +00:00
igneum-labs
2acf826f19 bench/proof-systems: the rented RTX 3060 12 GB and RTX 4090 24 GB rows (SP1 stock, SP1 patched at four thresholds, RISC Zero at po2 20 and 19; the v1 shard, the empty shard, the 23.6 M-cycle shard, the prototype shard; every proof verified) and the table
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 14:53:37 +00:00
igneum-labs
6e041ae1e9 exec-sync plan: the fresh node's IBD finding (10 retries over 40 min from the finality route's capacity; the igneum-pow feature needed to join)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 14:49:10 +00:00
igneum-labs
c586f6ee92 exec sync: the plan (what happened, the fork commits, the copy measurements, the per-tier consequence) and the bench-log entry; the exec-sync harness
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 13:46:31 +00:00
igneum-labs
123b45c012 bench/proof-systems: block-72854-empty-block-first is a 23.6 M-cycle shard; the empty shard is block-58927-empty-reward
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 13:44:22 +00:00
igneum-labs
9a2e665a33 bench/proof-systems: a failed run keeps its logs beside the row, labelled rows do not overwrite each other
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:56:07 +00:00
igneum-labs
73e6d5766d bench/proof-systems: a wall-clock cap per prove run (the patched server hangs on a card too small, the fleet finding), --r0-po2
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:53:54 +00:00
igneum-labs
e987de5be8 bench/proof-systems: the Mac RISC Zero rows (CPU HAL: the v1 shard 574 s at po2 20 and 10.2 GB RSS, 699 s at po2 19 and 8.0 GB; the empty shard 46 to 49 s at 7.9 GB; receipt 223,882 B, verify 0.21 s)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:44:55 +00:00
igneum-labs
e199c322ab the Apple route corrected from the measurement: RISC Zero 3.0.6 has no Metal HAL (the analysis's Metal sentence, route D's header, route I, the ranking and the Apple tier line rewritten); the Apple route is SP1 on the CPU, 71.7 s a v1 shard on the M5 Max (the tier line in both plans, the app's Apple default line); RISC Zero stays in the v2 slot for the 8 GB CUDA tier and its 5.7x smaller proof
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:44:21 +00:00
igneum-labs
f748620e0b proving v2: the Mac measurement of RISC Zero 3.0.6 (CPU HAL, no Metal path in 3.0.6), bench-log entry and plan
v1 shard 574.4 s at po2 20 (10.66 GB RSS), 698.7 s at po2 19 (8.40 GB), 560.9 s at po2 21 (20.44 GB); empty shard
47.9 s (8.32 GB); receipt 223,882 bytes at every po2; verify 9 to 10 ms in process, 0.21 s verify mode; every
receipt verified against the pinned image id; CPU build 585.8 s for the ratio 0.98. Metal: no circuit in 3.0.6
selects the Metal HAL and this Mac has no metal compiler, so no Metal figure exists; PC 2 (CUDA) measures next.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:42:05 +00:00
igneum-labs
bb76130836 plan: the 12 GB row measured on the 4070 itself (mines and proves compressed at 2^26, 9,034 MiB of 12,282 beside its miner, 24.1 s a v1 shard)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:18:56 +00:00
igneum-labs
a95eb4059e bench/proof-systems: PC 2 rows (job bench-a-pc2, beside the miner): SP1 stock v1 shard 14.8 s at 22,477 MiB, patched default 15.1 s at 18,637 MiB, patched 2^26 27.0 s at 12,012 MiB; the prototype full shard 37.6 s at 30,413 MiB stock, 138.0 s at 12,129 MiB patched 2^26; every proof verified in 0.32 s
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:06:56 +00:00
igneum-labs
8835d1512f bench/proof-systems: the fixtures named right (block-338-shard1 is the prototype full shard, the empty shard is block-72854)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 12:06:18 +00:00
igneum-labs
0136d2b84b proving v2: RISC Zero 3.0.6 workspace (guest, pinned image id, host with the SP1 host's CLI and results keys, Metal and CUDA features, pin script)
The same shard statement bytes as the SP1 guest, committed as the journal. RISC Zero's accelerated crates pinned by
tag (k256 0.13.4, crypto-bigint 0.5.5, tiny-keccak 2.0.2, sha2 0.10.9 and 0.11.0). Pinned image id
0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72 under elf/manifest-r0.json. This Mac has no
metal compiler (Command Line Tools, no Xcode) and risc0 3.0.6 selects no Metal HAL in any circuit, so a local
risc0-build-kernel patch writes an empty metallib behind RISC0_SKIP_METAL_KERNELS.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:58:34 +00:00
igneum-labs
48af9d75e2 bench: run.sh --patched-env; the PC 2 bench job A script (SP1 stock and patched, default and 2^26, beside the miner)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:57:57 +00:00
igneum-labs
95ee92a233 bench/proof-systems: run.sh portable (GNU time on Linux, host and out paths, a row label, the patched server's HOME), the table keys on the label and fixture
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:56:22 +00:00
igneum-labs
67d6e24c51 bench/proof-systems: the first Mac rows (SP1 stock on the M5 Max CPU: 4,717,439 cycles, 71.7 s, 27,821 MiB RSS, 1,272,897 B, verify 0.258 s; sp1-patched and jolt n/a with the reason) and the table
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:55:11 +00:00
igneum-labs
5d0eae3d64 bench-log: the proof-system slot on the fast-time harness (21 and 34 checks)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:54:40 +00:00
igneum-labs
073637ec44 proving v2: the harness gains --v2 <daa> (case 5: both proof systems and the switch; version 3 and version 2 records refused before, paid from it, an SP1 fresh chain after a system 2 segment), the fast-time file carries the switch; bench/proof-systems: the proof-system watch (run.sh one row per candidate, table.mjs, README)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:51:19 +00:00
igneum-labs
953345d246 app, proving v2: the proof system is a setting (prove_system, 1 = SP1 default, 2 = RISC Zero), /api/prove takes {on, system}, the prover runs the system's host (igneum-prove-r0-host next to the SP1 host, WSL2 too) and signs shard records with --system, the segment path and the aggregator stay on SP1 proofs (one system per segment), the tile has the selector
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:41:49 +00:00
igneum-labs
76d690fedf Funding plan: proof-system audit line item beside the hash cryptanalysis row
Scope (SP1 shard and aggregator guests, pinned ids and pin script, the node's
verifier path and record rules of spec 7.7 and 7.8, the version 2 RISC Zero
guest when it lands), deliverables, six candidate reviewers with published
zkVM audits and their sources, cost basis from public rate cards and
comparable engagement sizes, and when it bites. Totals refreshed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 11:36:10 +00:00
igneum-labs
b4c089cdaa plan: 12 GB mine-and-prove met on the 5090's allocation by a core-only prover at 2^25 (8.1 GB before the display, 19.8 s a shard), pending the core-proof hand-off path and the card itself
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 09:14:28 +00:00
igneum-labs
1ba45a6039 plan: the prover-floor agent's route 2 rows (core-only prover 7.8 GB own beside the miner; the core-only server is the step to 12 GB mine-and-prove)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-06 08:54:38 +00:00
221 changed files with 18701 additions and 126 deletions

View file

@ -69,6 +69,10 @@ pub struct Settings {
/// Prove the shards assigned to this machine's keys (src/prover.rs). Default off until the GPU numbers exist.
#[serde(default)]
pub prove: bool,
/// proving v2 (6 October 2026): the proof system this machine proves with, 1 = SP1 (the default), 2 = RISC Zero
/// (`igneum-prove-r0-host` next to the SP1 host); shard records carry it as their version
#[serde(default = "default_prove_system")]
pub prove_system: u8,
/// The efficiency sweep (src/sweep.rs): once after install, then weekly, each NVIDIA card's cap is stepped from
/// 100% to 50% on the live program and held at the best MH per watt. Default on. A pinned card is skipped.
#[serde(default = "yes")]
@ -102,7 +106,7 @@ fn yes() -> bool {
impl Default for Settings {
fn default() -> Settings {
Settings { setup_done: false, address: String::new(), address_source: String::new(), key_saved: false, identities: 1, cards: HashMap::new(), display_name: String::new(), vote: true, paused: false, accepted_total: 0, auto_update: true, remote_jobs: true, prove: false, sweep: true, installed_at: 0, dev_fee: true, fee_total: 0, proof_verify_trust: false, prove_default_applied: false }
Settings { setup_done: false, address: String::new(), address_source: String::new(), key_saved: false, identities: 1, cards: HashMap::new(), display_name: String::new(), vote: true, paused: false, accepted_total: 0, auto_update: true, remote_jobs: true, prove: false, prove_system: 1, sweep: true, installed_at: 0, dev_fee: true, fee_total: 0, proof_verify_trust: false, prove_default_applied: false }
}
}
@ -439,3 +443,7 @@ mod tests {
assert!(p.node_override_params.is_none());
}
}
fn default_prove_system() -> u8 {
1
}

View file

@ -116,7 +116,7 @@ impl Shared {
st.mining.accepted_total = settings.accepted_total;
st.mining.fee_total = settings.fee_total;
st.address = address_state(&settings, &wallet_path);
st.settings = crate::state::SettingsState { identities: settings.identities, vote: settings.vote, start_at_login: crate::platform::start_at_login_is_on(), auto_update: settings.auto_update, remote_jobs: settings.remote_jobs, prove: settings.prove, sweep: settings.sweep, dev_fee: settings.dev_fee, proof_verify_trust: settings.proof_verify_trust };
st.settings = crate::state::SettingsState { identities: settings.identities, vote: settings.vote, start_at_login: crate::platform::start_at_login_is_on(), auto_update: settings.auto_update, remote_jobs: settings.remote_jobs, prove: settings.prove, prove_system: settings.prove_system.max(1), sweep: settings.sweep, dev_fee: settings.dev_fee, proof_verify_trust: settings.proof_verify_trust };
st.dev_fee = crate::state::DevFeeState { on: settings.dev_fee, percent: if settings.dev_fee { 1 } else { 0 }, address: String::new(), line: String::new() };
st.live_page = packaged.live_page.clone();
st.finality.message = "waiting for the miner".into();
@ -301,14 +301,26 @@ impl Shared {
}
/// The prover service switch (src/prover.rs); the thread picks it up within 10 s.
pub fn set_prove(&self, on: bool) -> Result<Value, String> {
pub fn set_prove(&self, on: bool, system: Option<u8>) -> Result<Value, String> {
if let Some(sy) = system {
if !(1..=2).contains(&sy) {
return Err(format!("proof system {sy} is not 1 (SP1) or 2 (RISC Zero)"));
}
}
{
let mut s = self.settings.lock().unwrap();
s.prove = on;
if let Some(sy) = system {
s.prove_system = sy;
}
}
self.save_settings();
let mut st = self.state.lock().unwrap();
st.settings.prove = on;
if let Some(sy) = system {
st.settings.prove_system = sy;
st.proving.system = sy;
}
st.proving.enabled = on;
if !on {
st.proving.status = "off".into();

View file

@ -30,6 +30,7 @@ mod jobrun;
mod jobbuild;
mod prover;
mod provedefault;
mod provingdir;
mod segments;
mod verifier;
mod wslhost;

View file

@ -9,7 +9,7 @@
//! | NVIDIA card under 16 GB | off | 13,874 MiB does not fit; the project lead's 12 GB requirement is open until a prover build with a smaller floor is measured |
//! | Windows under 32 GB of RAM | off, with the line saying why | the WSL2 prover held 7.9 GB on a 63 GB PC; a 16 GB PC would swap |
//! | Windows with a qualifying card but WSL2 silent | off, with the Set up hint | nothing can prove until the distribution exists |
//! | Apple silicon | off | the M5 Max CPU took 41 to 55 s for an EMPTY shard's compressed proof under load and 272 s for a 200-pgas shard; a full shard was never under 60 s (bench-log 4 and 5 October 2026) |
//! | Apple silicon | off | the SP1 CPU prover takes 71.7 s and 27.8 GB of RSS for the v1 shard on the M5 Max (bench/proof-systems, 6 October 2026), about one shard a minute, inside the 600 DAA-s window; off by the project lead's decision of 5 October, the switch runs it; no GPU route (RISC Zero 3.0.6 has no Metal HAL, 574 s on the CPU) |
//! | AMD-only (no NVIDIA card) | off, "mines and does not prove" | no zkVM proves on an AMD GPU today (docs/analysis/amd-proving.md); the SP1 CPU prover on PC 1 cost 82 to 87 s core plus 199 to 202 s compressed a shard at a 30 GB RSS whatever the shard size (bench-log, "the SP1 CPU prover on PC 1") |
//!
//! Decided 5 October 2026 (delegated by the project lead: "deploy what is absolute best"), docs/plans/proving-v1.md. The default
@ -55,7 +55,9 @@ pub fn decide(cards: &[CardState], os: &str, wsl_answers: Option<bool>, ram_mb:
let able: Vec<&CardState> = nvidia.iter().copied().filter(|c| c.vram_mb >= if c.enabled { MIN_VRAM_MB_MINING } else { MIN_VRAM_MB_PROVE_ONLY }).collect();
let off = |line: String| Decision { on: false, line };
if os == "macos" {
return off("proving stays off on Apple silicon: the M5 Max CPU took 41 to 55 s for an empty shard and minutes for a full one; Settings switches it on (CPU, slow)".into());
// the Apple route is SP1 on the CPU (6 October 2026, bench/proof-systems): the v1 shard in 71.7 s at 27.8 GB of
// RSS on the M5 Max, inside the 600 DAA-s window; off by default (the project lead, 5 October 2026), the switch runs it
return off("proving stays off on Apple silicon by default; the SP1 CPU prover took 71.7 s and 28 GB of RAM for a v1 shard on the M5 Max (about one shard a minute), and Settings switches it on".into());
}
let Some(best) = able.iter().max_by_key(|c| c.vram_mb) else {
let seen = if nvidia.is_empty() {

View file

@ -124,6 +124,8 @@ pub fn chain_name(shared: &Shared) -> String {
struct Tools {
host: PathBuf,
/// proving v2: the RISC Zero host (`igneum-prove-r0-host`), next to the SP1 host, when present
host_r0: Option<PathBuf>,
export: PathBuf,
miner: PathBuf,
/// Windows: the host and the exporter run inside WSL2 (paths are WSL paths then).
@ -132,6 +134,42 @@ struct Tools {
cuda: bool,
}
/// The node's re-derivation boundary (0.3.13.1, 6 October 2026): the chain block its EVM restarted at after the
/// bodies below the pruning point were gone (`igneum_getExecStatus.restartNumber`; on a 0.3.13 node the
/// `startedFrom` text "restart at chain block N"), else 0. A prover exports from the block before it, never from
/// 0 (the records below carry zero state roots and the exporter refused every cut: the fleet, 16:02Z), and never
/// The exporter's failure line. When the node's export carries the account dump (0.3.14) and the exporter's output
/// never mentions it, the exporter at `path` predates 0.3.14: it replays the dump's own segment from the restart
/// state and fails there with "port state root differs" (PC 1, 6 October 2026 18:16Z, block 140,662: the installer
/// had not replaced igneum-prove-export); the line names the stale binary instead of the misleading root error.
fn exporter_failure(export_has_dump: bool, out: &str, path: &Path, block: Option<u64>) -> String {
let last = out.lines().rev().find(|l| !l.trim().is_empty()).unwrap_or("failed");
let what = match block {
Some(b) => format!("exporter, block {b}"),
None => "exporter".to_string(),
};
if export_has_dump && !out.contains("account dump") {
return format!("{what}: stale igneum-prove-export at {}: the node's export carries the account dump and this exporter does not read it (it predates 0.3.14); install this release's exporter there ({last})", path.display());
}
format!("{what}: {last}")
}
/// claims work below it (no bodies, no state: unprovable on every node).
fn exec_boundary(shared: &Shared) -> u64 {
let st = match evm_rpc(shared, "igneum_getExecStatus", json!([]), Duration::from_secs(5)) {
Ok(v) => v,
Err(_) => return 0,
};
if let Some(n) = st["restartNumber"].as_u64() {
return n;
}
if let Some(n) = st["restartNumber"].as_str().and_then(|x| u64::from_str_radix(x.trim_start_matches("0x"), 16).ok()) {
return n;
}
let text = st["startedFrom"].as_str().unwrap_or("");
text.strip_prefix("restart at chain block ").and_then(|t| t.split_whitespace().next()).and_then(|t| t.parse().ok()).unwrap_or(0)
}
fn evm_rpc(shared: &Shared, method: &str, params: Value, timeout: Duration) -> Result<Value, String> {
let body = json!({ "jsonrpc": "2.0", "id": 1, "method": method, "params": params }).to_string();
let tmp = std::env::temp_dir().join(format!("igneum-prover-{}-{}.json", std::process::id(), method));
@ -151,6 +189,19 @@ fn evm_rpc(shared: &Shared, method: &str, params: Value, timeout: Duration) -> R
Ok(v.get("result").cloned().unwrap_or(Value::Null))
}
/// The host of a proof system: the SP1 host for 1, the RISC Zero host for 2 (an error naming what is missing).
fn host_for(t: &Tools, system: u8) -> Result<&Path, String> {
match system {
2 => t.host_r0.as_deref().ok_or_else(|| "proof system 2 needs igneum-prove-r0-host next to igneum-prove-host (the RISC Zero host is not installed); Settings keeps SP1 until it is".to_string()),
_ => Ok(t.host.as_path()),
}
}
/// The trailing `--system` arguments the miner's sign commands take (none for SP1, the default).
pub fn system_args(system: u8) -> Vec<String> {
if system >= 2 { vec!["--system".into(), system.to_string()] } else { Vec::new() }
}
fn find_tools(bin_dir: &Path) -> Result<Tools, String> {
let miner = bin_dir.join(if cfg!(windows) { "igneum-miner.exe" } else { "igneum-miner" });
if cfg!(windows) {
@ -159,7 +210,7 @@ fn find_tools(bin_dir: &Path) -> Result<Tools, String> {
// (the order and the list are src/wslhost.rs, shared with igneum-prove-verify.exe)
// from a file, never inline (src/wslhost.rs: an inline script with double quotes and a path with a space
// reached bash mangled on 5 October 2026 and the app said the setup was missing)
let body = format!("{}\ncommand -v nvidia-smi >/dev/null && echo cuda\ntrue", crate::wslhost::lookup_script(bin_dir));
let body = format!("{}\n{}\ncommand -v nvidia-smi >/dev/null && echo cuda\ntrue", crate::wslhost::lookup_script(bin_dir), crate::wslhost::lookup_script_r0(bin_dir));
let file = crate::wslhost::write_script("prove-probe", &body).map_err(|e| format!("cannot write the WSL probe script: {e}"))?;
let probe = crate::platform::quiet(&mut crate::wslhost::command(&crate::platform::tool("wsl"), crate::wslhost::DISTRO, None, &file.path, true, &[])).output();
let answered = probe.is_ok();
@ -171,7 +222,8 @@ fn find_tools(bin_dir: &Path) -> Result<Tools, String> {
// a Linux path: never PathBuf::join here, which writes a backslash on Windows ("/opt/igneum\\igneum-prove-export"
// broke every export on PC 2 under 0.3.7, 5 October 2026)
let export = PathBuf::from(format!("{}/igneum-prove-export", host.to_string_lossy().rsplit_once('/').map(|(d, _)| d).unwrap_or("")));
Ok(Tools { host, export, miner, wsl: true, setup_script: setup.exists().then_some(setup), cuda: text.contains("cuda") })
let host_r0 = text.lines().find(|l| l.contains("igneum-prove-r0-host")).map(|l| PathBuf::from(l.trim()));
Ok(Tools { host, host_r0, export, miner, wsl: true, setup_script: setup.exists().then_some(setup), cuda: text.contains("cuda") })
}
None => Err(probe_message(bin_dir, answered, setup.exists())),
}
@ -181,7 +233,8 @@ fn find_tools(bin_dir: &Path) -> Result<Tools, String> {
if !host.exists() || !export.exists() {
return Err(format!("igneum-prove-host and igneum-prove-export are not next to the engine ({})", bin_dir.display()));
}
Ok(Tools { host, export, miner, wsl: false, setup_script: None, cuda: false })
let r0 = bin_dir.join("igneum-prove-r0-host");
Ok(Tools { host, host_r0: r0.exists().then_some(r0), export, miner, wsl: false, setup_script: None, cuda: false })
}
}
@ -418,6 +471,19 @@ fn loop_forever(shared: Arc<Shared>, bin_dir: PathBuf) {
}
}
let Some(t) = tools.as_ref() else { continue };
// proving v2: the proof system from Settings (1 = SP1, 2 = RISC Zero); without its host the loop waits
let system = shared.settings.lock().unwrap().prove_system.max(1);
set(&shared, |p| {
p.system = system;
p.system_host = host_for(t, system).is_ok();
});
if let Err(e) = host_for(t, system) {
set(&shared, |p| {
p.status = "waiting".into();
p.message = e;
});
continue;
}
// consequences review C22 (5 October 2026): the SP1 CPU prover takes 29.5 to 30.5 GB of RSS and about five
// minutes a shard whatever the shard size (PC 1, bench-log "the SP1 CPU prover on PC 1"); on a machine under
// 32 GB it would swap the node out, so the CPU path is refused here, Settings or not, with the reason
@ -555,7 +621,9 @@ fn loop_forever(shared: Arc<Shared>, bin_dir: PathBuf) {
// proving v1 segment path (src/segments.rs, 6 October 2026): a whole segment first, the newest shard only
// when no whole segment qualifies
let payout = shared.settings.lock().unwrap().address.clone();
if payout.len() == 42 {
// the segment path folds SP1 shard proofs with the SP1 aggregator; proof system 2 proves shards only until an
// r0 aggregator exists (segments stay on SP1 either way: one system per segment)
if payout.len() == 42 && system == 1 {
if let Some((seg, prev_file, expected_pv)) = pick_segment(&shared, &work, &keys[0].1, &mut attempted_segments, last_segment_secs) {
attempted_segments.insert(seg.first);
let started = Instant::now();
@ -602,6 +670,9 @@ fn loop_forever(shared: Arc<Shared>, bin_dir: PathBuf) {
continue;
}
}
// shards below the re-derivation boundary are never attempted (no bodies, no state on any node)
let boundary = exec_boundary(&shared);
let work: Vec<Work> = work.into_iter().filter(|w| w.number >= boundary).collect();
let Some(w) = choose(&work, &attempted) else {
set(&shared, |p| {
p.status = if submitted.is_empty() { "idle".into() } else { "submitted".into() };
@ -626,7 +697,8 @@ fn loop_forever(shared: Arc<Shared>, bin_dir: PathBuf) {
p.started_at = crate::platform::unix_now_f();
p.message = "exporting the chain and cutting the shard".into();
});
shared.log(&format!("prover: block {} shard {} assigned to {label}: export, cut, prove ({}), sign, submit", w.number, w.shard, if t.cuda { "CUDA" } else { "CPU" }));
shared.log(&format!("prover: block {} shard {} assigned to {label}: export, cut, prove ({}, proof system {system}), sign, submit", w.number, w.shard, if t.cuda { "CUDA" } else { "CPU" }));
let shard_host = host_for(t, system).map(|h| h.to_path_buf()).unwrap_or_else(|_| t.host.clone());
// 2. export and cut
let dir = shared.runtime.app_dir.join("proving");
let _ = std::fs::create_dir_all(&dir);
@ -634,16 +706,18 @@ fn loop_forever(shared: Arc<Shared>, bin_dir: PathBuf) {
let fixture = dir.join(format!("block-{}.json", w.number));
let results = dir.join(format!("results-{}-{}.json", w.number, w.shard));
let outcome: Result<(), String> = (|| {
let export = evm_rpc(&shared, "igneum_exportSegments", json!(["0x0", format!("{:#x}", w.number)]), Duration::from_secs(120))?;
// the export from one block below (0.3.14): the node's account dump after block n-1 seeds the exporter
let from = w.number.saturating_sub(1);
let export = evm_rpc(&shared, "igneum_exportSegments", json!([format!("{from:#x}"), format!("{:#x}", w.number)]), Duration::from_secs(120))?;
std::fs::write(&seq, export.to_string()).map_err(|e| e.to_string())?;
let (seq_p, fix_p, res_p) = if t.wsl { (wsl_path(&seq), wsl_path(&fixture), wsl_path(&results)) } else { (seq.display().to_string(), fixture.display().to_string(), results.display().to_string()) };
let (ok, out) = run_tool(&shared, t, &t.export, &[seq_p, w.number.to_string(), fix_p.clone()], &[], Duration::from_secs(600), &dir.join(format!("export-{}.log", w.number)));
if !ok || !fixture.exists() {
return Err(format!("exporter: {}", out.lines().rev().find(|l| !l.trim().is_empty()).unwrap_or("failed")));
return Err(exporter_failure(export["preState"].is_array(), &out, &t.export, None));
}
set(&shared, |p| p.message = if t.cuda { "proving on the GPU".into() } else { "CPU prover: about five minutes a shard, 30 GB of RAM, paid only when no card proves first".into() });
let prover_env = if t.cuda { "cuda" } else { "cpu" };
let (ok, out) = run_tool(&shared, t, &t.host, &[fix_p, "--mode".into(), "compressed".into(), "--shard".into(), w.shard.to_string(), "--prover".into(), payout.clone(), "--out".into(), res_p], &[("SP1_PROVER", prover_env), ("RUST_LOG", "off")], Duration::from_secs(3 * 3600), &dir.join(format!("prove-{}-{}.log", w.number, w.shard)));
let (ok, out) = run_tool(&shared, t, &shard_host, &[fix_p, "--mode".into(), "compressed".into(), "--shard".into(), w.shard.to_string(), "--prover".into(), payout.clone(), "--out".into(), res_p], &[("SP1_PROVER", prover_env), ("RUST_LOG", "off")], Duration::from_secs(3 * 3600), &dir.join(format!("prove-{}-{}.log", w.number, w.shard)));
if !ok || !results.exists() {
let last = out.lines().rev().find(|l| l.contains("RESULT") || l.contains("rror")).unwrap_or("failed").to_string();
// the root-socket class (5 October 2026, PC 2 at 20:00Z and 21:25Z): a job that ran the host as root
@ -662,7 +736,7 @@ fn loop_forever(shared: Arc<Shared>, bin_dir: PathBuf) {
p.last_prove_s = secs;
});
// 3. sign and submit
let sg = crate::detect::run_timeout(crate::platform::quiet(&mut Command::new(&t.miner)).args(["sign-record", &label, &chain_name(&shared), &w.hash, &w.number.to_string(), &w.shard.to_string(), &payout, &statement, &proof_sha]), None, Duration::from_secs(20)).ok_or("sign-record did not run")?;
let sg = crate::detect::run_timeout(crate::platform::quiet(&mut Command::new(&t.miner)).args(["sign-record", &label, &chain_name(&shared), &w.hash, &w.number.to_string(), &w.shard.to_string(), &payout, &statement, &proof_sha]).args(system_args(system)), None, Duration::from_secs(20)).ok_or("sign-record did not run")?;
let signed: Value = serde_json::from_str(sg.lines().last().unwrap_or("")).map_err(|_| format!("sign-record: {}", sg.trim()))?;
let record = signed["record"].as_str().ok_or("sign-record gave no record")?.to_string();
let proof = std::fs::read(&proof_path).map_err(|e| format!("proof file {}: {e}", proof_path.display()))?;
@ -750,6 +824,9 @@ fn pick_segment(shared: &Shared, work: &[Work], key_hash: &str, attempted: &mut
return None;
}
let (start, n, unproven, tip_daa) = (hexu(&v1["start"]), hexu(&v1["segmentBlocks"]).max(1), hexu(&v1["unprovenDaa"]), hexu(&st["tipDaa"]));
// segments below the re-derivation boundary are never claimed: no bodies, no state, unprovable anywhere
let boundary = exec_boundary(shared);
let start = if boundary > start { boundary.div_ceil(n) * n } else { start };
let segs = crate::segments::whole_segments(start, n, unproven, work);
let need = crate::segments::need_daa(last_secs);
let cands = crate::segments::candidates(&segs, tip_daa, need, key_hash, attempted);
@ -815,14 +892,17 @@ fn prove_segment(shared: &Shared, t: &Tools, seg: &crate::segments::SegmentWork,
shared.log(&format!("prover: segment {first}..{last} claimed ({} shards{}): export, cut, chain ({}), sign, submit", seg.shards.len(), if prev_file.is_some() { ", continuing the previous segment's proof" } else { ", fresh" }, if t.cuda { "CUDA" } else { "CPU" }));
// 1. export once, cut every block
let seq = dir.join("seq.json");
let export = evm_rpc(shared, "igneum_exportSegments", json!(["0x0", format!("{last:#x}")]), Duration::from_secs(300))?;
// the export from one block below the segment (0.3.14): the node's account dump after block first-1 seeds the
// exporter; nothing older is read
let from = first.saturating_sub(1);
let export = evm_rpc(shared, "igneum_exportSegments", json!([format!("{from:#x}"), format!("{last:#x}")]), Duration::from_secs(300))?;
std::fs::write(&seq, export.to_string()).map_err(|e| e.to_string())?;
let mut fixtures: Vec<String> = Vec::new();
for b in first..=last {
let fixture = dir.join(format!("block-{b}.json"));
let (ok, out) = run_tool(shared, t, &t.export, &[as_host_path(&seq), b.to_string(), as_host_path(&fixture)], &[], Duration::from_secs(600), &dir.join(format!("export-{b}.log")));
if !ok || !fixture.exists() {
return Err(format!("exporter, block {b}: {}", out.lines().rev().find(|l| !l.trim().is_empty()).unwrap_or("failed")));
return Err(exporter_failure(export["preState"].is_array(), &out, &t.export, Some(b)));
}
fixtures.push(as_host_path(&fixture));
}
@ -957,7 +1037,9 @@ fn aggregate_once(shared: &Shared, t: &Tools, label: &str, payout: &str, attempt
let have = b["shardProofs"].as_array().cloned().unwrap_or_default();
let mut files = Vec::new();
for i in 0..shards {
let pick = have.iter().find(|e| e["shard"].as_u64() == Some(i as u64) && e["verified"] == json!(true)).or_else(|| have.iter().find(|e| e["shard"].as_u64() == Some(i as u64)));
// one system per segment: the SP1 aggregator folds SP1 shard proofs (record version 1) only
let sp1 = |e: &&Value| e["shard"].as_u64() == Some(i as u64) && e["version"].as_u64().unwrap_or(1) == 1;
let pick = have.iter().find(|e| sp1(e) && e["verified"] == json!(true)).or_else(|| have.iter().find(sp1));
let Some(e) = pick else {
missing.push(format!("{n}/{i}"));
continue;
@ -1060,6 +1142,21 @@ pub fn setup(shared: &Shared) -> Result<Value, String> {
mod tests {
use super::*;
#[test]
fn a_stale_exporter_is_named_when_the_export_carries_the_dump() {
let p = Path::new("C:/x/igneum-prove-export.exe");
let old_out = "Error: segment 140661: port state root 0xe45c differs from the node's 0xddd7; the port is not the node's executor, stop\n";
let line = exporter_failure(true, old_out, p, Some(140662));
assert!(line.contains("stale igneum-prove-export at C:/x/igneum-prove-export.exe"), "{line}");
assert!(line.starts_with("exporter, block 140662:"));
// the 0.3.14 exporter read the dump and failed later: the real line, not the stale one
let new_out = "account dump: 79 accounts after chain block 140661, state root 0x1 (equals the node's)\nError: segment 140662: port state root 0x2 differs from the node's 0x3\n";
let line = exporter_failure(true, new_out, p, None);
assert_eq!(line, "exporter: Error: segment 140662: port state root 0x2 differs from the node's 0x3");
// an export without a dump (an older node): never the stale line
assert_eq!(exporter_failure(false, old_out, p, None), format!("exporter: {}", old_out.trim()));
}
#[test]
fn pinned_ids_come_out_of_the_hosts_id_line() {
let out = "RESULT id: pinned guests: shard program id 0x2b1a81cb413236cf063077b46ed3111628f6c41036bcf6e23ee4cbbf5679ef7a (2832504 bytes, sha256 0x150f4c05a2951fc5) aggregator id 0x474678f35f7545db28055d5e5bbc308231d84a5a072202087a2a8d5b09123896 (319744 bytes), pinned 2026-10-05T16:20:38Z on Darwin, SP1 5.0 circuit v5\n";

View file

@ -0,0 +1,178 @@
//! The prover's working directory (`<app dir>/proving`) owns its disk (0.3.16, 6 October 2026): the fleet's segment
//! exports (50 to 500 MB each with the old [0, last] export, never pruned) filled 60 GB on the hub and 3 to 46 GB on
//! every standing box, and the hub's node died three times on "No space left on device" (the last at 21:42 UK).
//! Rules: a size cap and an age cap on the directory (defaults that fit a 100 GB box for a week), enforced before
//! every export; a segment's directory is deleted the moment its record is submitted or paid; no export starts
//! below 10% free disk, and the skip is logged.
use std::path::{Path, PathBuf};
use std::time::{Duration, SystemTime};
/// Defaults: 20 GB and 7 days. `IGNEUM_PROVING_DIR_MAX_GB` and `IGNEUM_PROVING_DIR_MAX_DAYS` change them.
pub const DEFAULT_MAX_BYTES: u64 = 20 * 1024 * 1024 * 1024;
pub const DEFAULT_MAX_AGE: Duration = Duration::from_secs(7 * 24 * 3600);
/// No export below this share of free disk.
pub const MIN_FREE_FRACTION: f64 = 0.10;
pub fn max_bytes() -> u64 {
std::env::var("IGNEUM_PROVING_DIR_MAX_GB").ok().and_then(|v| v.parse::<u64>().ok()).map(|g| g * 1024 * 1024 * 1024).unwrap_or(DEFAULT_MAX_BYTES)
}
pub fn max_age() -> Duration {
std::env::var("IGNEUM_PROVING_DIR_MAX_DAYS").ok().and_then(|v| v.parse::<u64>().ok()).map(|d| Duration::from_secs(d * 24 * 3600)).unwrap_or(DEFAULT_MAX_AGE)
}
/// One entry of the directory as the planner sees it: a top-level file or a segment directory, its total bytes
/// and its age.
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct Entry {
pub path: PathBuf,
pub bytes: u64,
pub age: Duration,
}
/// What to delete so the directory fits: everything older than `max_age`, then the oldest entries until the total
/// is at or under `max_bytes`. Pure, so the cap is unit-tested.
pub fn prune_plan(entries: &[Entry], max_bytes: u64, max_age: Duration) -> Vec<PathBuf> {
let mut keep: Vec<&Entry> = Vec::new();
let mut out: Vec<PathBuf> = Vec::new();
for e in entries {
if e.age > max_age {
out.push(e.path.clone());
} else {
keep.push(e);
}
}
let mut total: u64 = keep.iter().map(|e| e.bytes).sum();
// oldest first
keep.sort_by(|a, b| b.age.cmp(&a.age));
for e in keep {
if total <= max_bytes {
break;
}
total = total.saturating_sub(e.bytes);
out.push(e.path.clone());
}
out
}
fn dir_bytes(p: &Path) -> u64 {
let mut total = 0;
if let Ok(rd) = std::fs::read_dir(p) {
for e in rd.flatten() {
let m = match e.metadata() {
Ok(m) => m,
Err(_) => continue,
};
total += if m.is_dir() { dir_bytes(&e.path()) } else { m.len() };
}
}
total
}
/// The directory's entries, oldest by modification time.
pub fn scan(dir: &Path) -> Vec<Entry> {
let now = SystemTime::now();
let mut out = Vec::new();
if let Ok(rd) = std::fs::read_dir(dir) {
for e in rd.flatten() {
let Ok(m) = e.metadata() else { continue };
let age = m.modified().ok().and_then(|t| now.duration_since(t).ok()).unwrap_or_default();
let bytes = if m.is_dir() { dir_bytes(&e.path()) } else { m.len() };
out.push(Entry { path: e.path(), bytes, age });
}
}
out
}
/// Enforces the caps on `dir`; returns (entries deleted, bytes freed).
pub fn enforce(dir: &Path) -> (usize, u64) {
let entries = scan(dir);
let plan = prune_plan(&entries, max_bytes(), max_age());
let mut freed = 0;
for p in &plan {
if let Some(e) = entries.iter().find(|e| &e.path == p) {
freed += e.bytes;
}
let _ = if p.is_dir() { std::fs::remove_dir_all(p) } else { std::fs::remove_file(p) };
}
(plan.len(), freed)
}
/// Free disk as a share of the volume `path` is on; None when the platform call fails.
#[cfg(unix)]
pub fn free_fraction(path: &Path) -> Option<f64> {
use std::ffi::CString;
use std::os::unix::ffi::OsStrExt;
let c = CString::new(path.as_os_str().as_bytes()).ok()?;
let mut st: libc::statvfs = unsafe { std::mem::zeroed() };
if unsafe { libc::statvfs(c.as_ptr(), &mut st) } != 0 {
return None;
}
let total = st.f_blocks as f64 * st.f_frsize as f64;
if total <= 0.0 {
return None;
}
Some(st.f_bavail as f64 * st.f_frsize as f64 / total)
}
#[cfg(windows)]
pub fn free_fraction(path: &Path) -> Option<f64> {
use std::os::windows::ffi::OsStrExt;
#[link(name = "kernel32")]
extern "system" {
fn GetDiskFreeSpaceExW(dir: *const u16, avail: *mut u64, total: *mut u64, free: *mut u64) -> i32;
}
let wide: Vec<u16> = path.as_os_str().encode_wide().chain(std::iter::once(0)).collect();
let (mut avail, mut total, mut free) = (0u64, 0u64, 0u64);
if unsafe { GetDiskFreeSpaceExW(wide.as_ptr(), &mut avail, &mut total, &mut free) } == 0 || total == 0 {
return None;
}
Some(avail as f64 / total as f64)
}
/// The pre-export gate: the caps enforced, then the free-disk check. Err carries the line to log when the export
/// must be skipped.
pub fn before_export(dir: &Path) -> Result<(), String> {
let _ = std::fs::create_dir_all(dir);
let (n, freed) = enforce(dir);
if n > 0 {
eprintln!("prover: proving dir cap: {n} entries deleted, {} MB freed", freed / (1024 * 1024));
}
match free_fraction(dir) {
Some(f) if f < MIN_FREE_FRACTION => Err(format!("no export: {:.1}% of the disk is free, under the {:.0}% floor; the proving dir is {} MB after its cap; free space or lower IGNEUM_PROVING_DIR_MAX_GB", f * 100.0, MIN_FREE_FRACTION * 100.0, dir_bytes(dir) / (1024 * 1024))),
_ => Ok(()),
}
}
/// A segment's directory goes the moment its record is submitted or paid.
pub fn remove_segment(dir: &Path, first: u64) {
let _ = std::fs::remove_dir_all(dir.join(format!("seg-{first}")));
}
#[cfg(test)]
mod tests {
use super::*;
fn e(name: &str, mb: u64, days: u64) -> Entry {
Entry { path: PathBuf::from(name), bytes: mb * 1024 * 1024, age: Duration::from_secs(days * 24 * 3600) }
}
#[test]
fn the_cap_deletes_the_old_then_the_oldest_until_it_fits() {
let entries = vec![e("seg-1", 400, 9), e("seg-2", 300, 3), e("seg-3", 300, 2), e("seg-4", 200, 1), e("block-5.json", 1, 0)];
// the age cap takes seg-1; the size cap (600 MB) then takes seg-2 (oldest kept), leaving 501 MB
let plan = prune_plan(&entries, 600 * 1024 * 1024, Duration::from_secs(7 * 24 * 3600));
assert_eq!(plan, vec![PathBuf::from("seg-1"), PathBuf::from("seg-2")]);
// under both caps: nothing
assert!(prune_plan(&entries[1..], 2 * 1024 * 1024 * 1024, Duration::from_secs(30 * 24 * 3600)).is_empty());
// a 100 GB box for a week: the default caps leave 80 GB to the node and the system
assert_eq!(DEFAULT_MAX_BYTES, 20 * 1024 * 1024 * 1024);
assert_eq!(DEFAULT_MAX_AGE, Duration::from_secs(7 * 24 * 3600));
}
#[test]
fn the_free_check_answers_on_this_machine() {
let f = free_fraction(Path::new(".")).expect("statvfs");
assert!((0.0..=1.0).contains(&f));
}
}

View file

@ -261,7 +261,8 @@ fn api_post(shared: &Arc<Shared>, path: &str, body: Value) -> Result<Value, Stri
let proof_verify_trust = body.get("proof_verify_trust").and_then(|v| v.as_bool());
shared.apply_settings(identities, vote, login, address.as_deref(), display_name.as_deref(), dev_fee, proof_verify_trust)
}
"/api/prove" => shared.set_prove(body.get("on").and_then(|v| v.as_bool()).unwrap_or(false)),
// {"on": bool, "system": 1|2} (system optional: the proof system the machine proves with)
"/api/prove" => shared.set_prove(body.get("on").and_then(|v| v.as_bool()).unwrap_or(false), body.get("system").and_then(|v| v.as_u64()).map(|x| x as u8)),
"/api/prove/setup" => crate::prover::setup(shared),
"/api/update/check" => {
shared.send(Cmd::CheckUpdate);

View file

@ -165,6 +165,9 @@ pub struct ProvingState {
pub available: bool,
pub setup_hint: String,
pub backend: String, // cpu | cuda
/// proving v2: the proof system the prover runs with (1 = SP1, 2 = RISC Zero) and whether its host is present
pub system: u8,
pub system_host: bool,
pub status: String, // off | setup | waiting | idle | proving | submitted
pub keys: u32,
pub assigned: u32,
@ -256,6 +259,8 @@ pub struct SettingsState {
pub remote_jobs: bool,
/// the prover service (src/prover.rs)
pub prove: bool,
/// proving v2: the proof system the prover runs with (1 = SP1, 2 = RISC Zero)
pub prove_system: u8,
/// the efficiency sweep (src/sweep.rs): once after install, then weekly
pub sweep: bool,
/// the miner software's dev fee switch (settings; `--dev-fee 0` when off)

View file

@ -40,6 +40,17 @@ pub fn candidates(bin_dir: &Path) -> Vec<String> {
]
}
/// proving v2: where the RISC Zero host may be inside WSL2 (next to the SP1 host in every candidate location).
pub fn candidates_r0(bin_dir: &Path) -> Vec<String> {
candidates(bin_dir).into_iter().map(|c| c.replace("igneum-prove-host", "igneum-prove-r0-host")).collect()
}
/// The lookup for the RISC Zero host, printing its path when one is executable (nothing otherwise).
pub fn lookup_script_r0(bin_dir: &Path) -> String {
let list: Vec<String> = candidates_r0(bin_dir).into_iter().map(|c| if c.starts_with('~') { c } else { format!("'{}'", c.replace('\'', "'\\''")) }).collect();
format!("for f in {}; do [ -x \"$f\" ] && {{ echo \"$f\"; break; }}; done", list.join(" "))
}
/// The candidates as one line for a message.
/// Whether the distribution answers at all (`wsl.exe -d Ubuntu-24.04 -- echo <marker>` within 30 s): the install-time
/// prover default (src/provedefault.rs) needs WSL2 on Windows before it switches proving on. Elsewhere: false.

View file

@ -528,6 +528,8 @@ if (typeof document !== 'undefined') (function () {
// ---------- Prove ----------
$('s-prove').addEventListener('change', function () { var on = this.checked; api('api/prove', { on: on }).then(function (r) { if (r.ok) toast(on ? 'Proving on; the first shard arrives within a minute' : 'Proving off'); else { toast(r.error || 'could not change'); $('s-prove').checked = !on; } }); });
// proving v2: the proof system (1 = SP1, 2 = RISC Zero); the prover switches host and record version on its next pass
$('s-prove-system').addEventListener('change', function () { var sy = Number(this.value); api('api/prove', { on: $('s-prove').checked, system: sy }).then(function (r) { if (r.ok) toast(sy === 2 ? 'Proof system 2 (RISC Zero): shards only, until its aggregator lands' : 'Proof system 1 (SP1)'); else toast(r.error || 'could not change'); }); });
$('pv-setup').addEventListener('click', function () { api('api/prove/setup', {}).then(function (r) { toast(r.ok ? 'Setup started in its own window' : (r.error || 'could not start')); }); });
// ---------- Rewards ----------
@ -1001,6 +1003,7 @@ if (typeof document !== 'undefined') (function () {
function renderProve(s) {
var pv = s.proving || {}, enabled = !!(s.settings && s.settings.prove);
if (document.activeElement !== $('s-prove')) $('s-prove').checked = enabled;
if (document.activeElement !== $('s-prove-system')) $('s-prove-system').value = String((s.settings && s.settings.prove_system) || 1);
var w = View.proveWords(pv, enabled, s.node.synced);
setText('pv-state', w.word + (pv.backend && enabled && pv.available ? ' (' + pv.backend.toUpperCase() + ')' : ''));
setText('pv-state-sub', w.sub);

View file

@ -209,6 +209,7 @@
<p class="help">Every block on Igneum is turned into a short mathematical proof, in pieces called shards. The chain assigns shards to your keys; this machine proves them and is paid for each one. On by default on an NVIDIA card with 24 GB or more (a full shard needs 20.4 GB of GPU memory, measured); off on a Mac, whose CPU prover is slow.</p>
</div>
<label class="switch lg" title="Prove assigned shards"><input type="checkbox" id="s-prove" aria-label="Prove shards on this machine"><span class="track"></span></label>
<select id="s-prove-system" aria-label="Proof system" title="The proof system this machine proves with"><option value="1">SP1 (version 1)</option><option value="2">RISC Zero (version 2, preview)</option></select>
</div>
<p class="note" id="pv-note">Off. Switch it on and this machine proves the shards the chain assigns to its keys.</p>
<div class="row" id="pv-setup-row" hidden><button class="btn small primary" id="pv-setup">Set up</button><span class="note">About 20 minutes, once.</span></div>

View file

@ -0,0 +1,36 @@
# Proof-system watch
One fixed shard, every candidate, one row each. The row says what a 12 GB card and a phone verifier would
see; the quarterly run says what moved.
## The fixed shard
Four fixtures, shard 0 of each: `proving/fixtures/fees-v1-shards2.json` (the adopted shard size `S_p`, 4,717,439
SP1 cycles, "the v1 shard"), `proving/fixtures/block-338-shard1.json` (one FULL shard at the prototype shard size,
60,415,376 cycles: the heaviest shard the chain ever cut; 30 GB on the stock SP1 server),
`proving/fixtures/block-72854-empty-block-first.json` (despite its name a 23.6 M-cycle shard: the first block after
an empty one; 17 s at 20 GB on the stock server) and `proving/fixtures/block-58927-empty-reward.json` (an empty
block, 278,423 RISC Zero cycles, "the empty shard"). The statement is
`igneum_prove_core::shard::shard_statement`; every candidate commits the same `ShardOutput` bytes. The 12 GB tier
is judged on the v1 shard; the prototype shard is the ceiling, not the gate.
## The candidates and how each is run
| Candidate | Binary | How | Recursion | Audit |
|---|---|---|---|---|
| SP1 stock 6.8.1 (Hypercube: SP1 6.x is the Hypercube prover, docs/analysis/proving-methods.md 1.1) | `proving/igneum-prove/target/release/igneum-prove-host` | `--mode compressed --shard 0`, `SP1_PROVER=cpu` on the Mac, `cuda` on PC 2 | yes (compressed, aggregator guest) | yes (KALOS, Cantina, Zellic, Veridise; docs/plans/funding.md 2a) |
| SP1 patched server (the prover-floor agent's v3/v4 build) | the same host, `~/.sp1/bin/sp1-gpu-server` replaced | PC 2 only (`HOME=/opt/igneum-floor/home`); n/a on the Mac (no CUDA) | yes | the server fork is not audited; the guest and verifier are the stock ones |
| SP1 Hypercube separate release | n/a | the stock row is the Hypercube prover; no separate release exists to run | | |
| RISC Zero (proof system 2) | `proving/igneum-prove-r0/target/release/igneum-prove-r0-host` | `--mode compressed --shard 0`, Metal on the Mac, CUDA on PC 2 | yes (succinct receipt; composition for an aggregator) | yes (Veridise, Hexens; funding.md 2a) |
| Jolt | n/a | no guest for our shard, no shipped recursion, no Metal release used here (proving-methods.md route F): n/a until a guest is written | no | no |
## The row
`rows/<date>-<machine>-<candidate>.json`: `candidate, machine, backend (cpu|cuda|metal), fixture, shard, cycles,
wall_s, prove_s, peak_memory_mib (max RSS on the Mac; nvidia-smi memory.used on a CUDA box), proof_bytes,
verify_s (one core), recursion, audit, verified (by the pinned verifier), command, source`. `node table.mjs`
renders every row into the table below. A cell that was not measured says `n/a` and why.
## Latest table
(rendered by `node bench/proof-systems/table.mjs > bench/proof-systems/TABLE.md`)

View file

@ -0,0 +1,86 @@
| Candidate | Machine, backend, note | Fixture | Cycles | Prove s | Wall s | Peak memory MiB | Proof bytes | Verify s (one core) | Recursion | Audit | Verified | Date |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^25 | block-338-shard1.json shard 0 | 60415376 | 87.0 | 94.9 | 7628 | 1272897 | 0.319 | yes | no | yes | 20261006-1604 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^26 | block-338-shard1.json shard 0 | 60415376 | 41.3 | 49.3 | 7596 | 1272897 | 0.328 | yes | no | yes | 20261006-1603 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.7ILTbMmhGd/time.log:Error: CudaClientError: The server returned an internal error | | | | | | | | | | 20261006-1603 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, po2 19 | block-338-shard1.json shard 0 | 89482640 | 401.9 | 403.5 | 6752 | 223882 | 0.224 | yes | yes | yes | 20261006-1541 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 101): /tmp/tmp.75fL1zX5AZ/time.log: out of memory | | | | | | | | | | 20261006-1541 |
| sp1 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.klQ694HVLB/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1541 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^25 | block-72854-empty-block-first.json shard 0 | 23594943 | 79.6 | 87.2 | 7628 | 1272897 | 0.319 | yes | no | yes | 20261006-1539 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.13mBtKKglh/time.log:Error: CudaClientError: The server returned an internal error | | | | | | | | | | 20261006-1539 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, po2 19 | block-72854-empty-block-first.json shard 0 | 134734531 | 697.3 | 701.3 | 6730 | 223882 | 0.225 | yes | yes | yes | 20261006-1512 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 101): /tmp/tmp.JPJDVvnbik/time.log: out of memory | | | | | | | | | | 20261006-1512 |
| sp1 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.NUem292PRA/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1511 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^25 | block-58927-empty-reward.json shard 0 | 257467 | 5.9 | 12.9 | 7596 | 1272897 | 0.325 | yes | no | yes | 20261006-1511 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^26 | block-58927-empty-reward.json shard 0 | 257467 | 4.2 | 11.2 | 7564 | 1272897 | 0.321 | yes | no | yes | 20261006-1511 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^27 | block-58927-empty-reward.json shard 0 | 257467 | 3.3 | 10.5 | 7470 | 1272897 | 0.320 | yes | no | yes | 20261006-1511 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched default | block-58927-empty-reward.json shard 0 | 257467 | 3.3 | 10.4 | 7406 | 1272897 | 0.323 | yes | no | yes | 20261006-1511 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, po2 19 | block-58927-empty-reward.json shard 0 | 278423 | 3.8 | 4.3 | 6876 | 223882 | 0.225 | yes | yes | yes | 20261006-1510 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, po2 20 | block-58927-empty-reward.json shard 0 | 278423 | 3.8 | 4.3 | 6812 | 223882 | 0.223 | yes | yes | yes | 20261006-1510 |
| sp1 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.0JSHMJ96SK/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1510 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^25 | fees-v1-shards2.json shard 0 | 4717439 | 12.8 | 19.8 | 7660 | 1272897 | 0.318 | yes | no | yes | 20261006-1510 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, patched 2^26 | fees-v1-shards2.json shard 0 | 4717439 | 7.9 | 15.1 | 7692 | 1272897 | 0.316 | yes | no | yes | 20261006-1510 |
| sp1-patched | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 124): /tmp/tmp.pKGGDBy0r0/time.log:called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(456), called `Result::unwrap()` on an `Err` value: OutOfMemory, ...) | | | | | | | | | | 20261006-1455 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda, 4060 8 GB alone, po2 19 | fees-v1-shards2.json shard 0 | 10049917 | 47.1 | 47.7 | 6720 | 223882 | 0.221 | yes | yes | yes | 20261006-1454 |
| r0 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 101): /tmp/tmp.khG85FrAuh/time.log: out of memory | | | | | | | | | | 20261006-1453 |
| sp1 | rz-4060 (RTX 4060 8 GB, Vast.ai), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.yOqeSspoDW/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1453 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^26 | block-58927-empty-reward.json shard 0 | 257467 | 7.3 | 27.5 | 7203 | 1272897 | 0.542 | yes | no | yes | 20261006-1408 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^27 | block-58927-empty-reward.json shard 0 | 257467 | 5.6 | 25.9 | 7301 | 1272897 | 0.562 | yes | no | yes | 20261006-1408 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^25 | block-338-shard1.json shard 0 | 60415376 | 57.5 | 78.0 | 8128 | 1272897 | 0.571 | yes | no | yes | 20261006-1408 |
| r0 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, po2 19 | block-58927-empty-reward.json shard 0 | 278423 | 5.7 | 6.8 | 7345 | 223882 | 0.466 | yes | yes | yes | 20261006-1407 |
| r0 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, po2 20 | block-58927-empty-reward.json shard 0 | 278423 | 5.6 | 6.7 | 7345 | 223882 | 0.464 | yes | yes | yes | 20261006-1407 |
| sp1 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.qVtcFNc806/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1407 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched default | block-58927-empty-reward.json shard 0 | 257467 | 5.5 | 24.7 | 7205 | 1272897 | 0.537 | yes | no | yes | 20261006-1407 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^26 | block-338-shard1.json shard 0 | 60415376 | 29.2 | 51.3 | 8192 | 1272897 | 0.547 | yes | no | yes | 20261006-1407 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^27 | block-338-shard1.json shard 0 | 60415376 | 21.2 | 42.3 | 11202 | 1272897 | 0.548 | yes | no | yes | 20261006-1407 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched default | block-338-shard1.json shard 0 | 60415376 | 19.5 | 42.2 | 18344 | 1272897 | 0.546 | yes | no | yes | 20261006-1406 |
| r0 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, po2 19 | block-338-shard1.json shard 0 | 89482640 | 281.4 | 286.0 | 8846 | 223882 | 0.460 | yes | yes | yes | 20261006-1401 |
| r0 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, po2 20 | block-338-shard1.json shard 0 | 89482640 | 178.5 | 182.5 | 13390 | 223882 | 0.467 | yes | yes | yes | 20261006-1358 |
| r0 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, po2 19 | block-338-shard1.json shard 0 | 89482640 | 578.2 | 582.5 | 7285 | 223882 | 0.459 | yes | yes | yes | 20261006-1357 |
| sp1 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone | block-338-shard1.json shard 0 | 60415376 | 19.1 | 41.8 | 20680 | 1272897 | 0.540 | yes | yes | yes | 20261006-1357 |
| r0 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, po2 19 | fees-v1-shards2.json shard 0 | 10049917 | 68.5 | 69.9 | 7339 | 223882 | 0.459 | yes | yes | yes | 20261006-1356 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^25 | block-72854-empty-block-first.json shard 0 | 23594943 | 50.7 | 69.5 | 8192 | 1272897 | 0.549 | yes | no | yes | 20261006-1356 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^26 | block-72854-empty-block-first.json shard 0 | 23594943 | 27.1 | 46.1 | 8160 | 1272897 | 0.545 | yes | no | yes | 20261006-1355 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^27 | block-72854-empty-block-first.json shard 0 | 23594943 | 20.0 | 40.1 | 10754 | 1272897 | 0.533 | yes | no | yes | 20261006-1354 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched default | block-72854-empty-block-first.json shard 0 | 23594943 | 16.8 | 38.5 | 17576 | 1272897 | 0.544 | yes | no | yes | 20261006-1354 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^26 | block-338-shard1.json shard 0 | 60415376 | 58.3 | 81.1 | 7555 | 1272897 | 0.547 | yes | no | yes | 20261006-1349 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^27 | block-338-shard1.json shard 0 | 60415376 | 39.6 | 61.6 | 10661 | 1272897 | 0.550 | yes | no | yes | 20261006-1348 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched default | block-338-shard1.json shard 0 | 60415376 | 39.2 | 61.1 | 10661 | 1272897 | 0.555 | yes | no | yes | 20261006-1347 |
| r0 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, po2 19 | block-72854-empty-block-first.json shard 0 | 134734531 | 509.7 | 518.3 | 20484 | 223882 | 0.452 | yes | yes | yes | 20261006-1345 |
| r0 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone | block-338-shard1.json shard 0 | 89482640 | 427.6 | 431.7 | 10153 | 223882 | 0.460 | yes | yes | yes | 20261006-1339 |
| sp1 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.bcgeLFKAkK/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1339 |
| r0 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, po2 20 | block-72854-empty-block-first.json shard 0 | 134734531 | 354.6 | 362.9 | 20468 | 223882 | 0.453 | yes | yes | yes | 20261006-1339 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^26 | block-72854-empty-block-first.json shard 0 | 23594943 | 57.4 | 77.5 | 7491 | 1272897 | 0.546 | yes | no | yes | 20261006-1338 |
| sp1 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone | block-72854-empty-block-first.json shard 0 | 23594943 | 17.0 | 38.9 | 20136 | 1272897 | 0.531 | yes | yes | yes | 20261006-1338 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^25 | fees-v1-shards2.json shard 0 | 4717439 | 9.5 | 26.8 | 8384 | 1272897 | 0.546 | yes | no | yes | 20261006-1338 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^27 | block-72854-empty-block-first.json shard 0 | 23594943 | 39.5 | 60.7 | 10245 | 1272897 | 0.550 | yes | no | yes | 20261006-1337 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^26 | fees-v1-shards2.json shard 0 | 4717439 | 6.8 | 24.6 | 8192 | 1272897 | 0.546 | yes | no | yes | 20261006-1337 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched 2^27 | fees-v1-shards2.json shard 0 | 4717439 | 6.2 | 24.6 | 10850 | 1272897 | 0.543 | yes | no | yes | 20261006-1337 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched default | block-72854-empty-block-first.json shard 0 | 23594943 | 39.7 | 61.0 | 9957 | 1272897 | 0.556 | yes | no | yes | 20261006-1336 |
| r0 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, po2 19 | fees-v1-shards2.json shard 0 | 10049917 | 32.7 | 34.2 | 8500 | 223882 | 0.460 | yes | yes | yes | 20261006-1336 |
| sp1-patched | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, patched default | fees-v1-shards2.json shard 0 | 4717439 | 6.4 | 26.9 | 14696 | 1272897 | 0.546 | yes | no | yes | 20261006-1336 |
| r0 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone, po2 20 | fees-v1-shards2.json shard 0 | 10049917 | 23.1 | 24.6 | 13280 | 223882 | 0.455 | yes | yes | yes | 20261006-1335 |
| sp1 | rz-4090 (RTX 4090 24 GB, RunPod, driver 570), cuda, 4090 24 GB alone | fees-v1-shards2.json shard 0 | 4717439 | 6.4 | 127.5 | 17800 | 1272897 | 0.542 | yes | yes | yes | 20261006-1333 |
| r0 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone | block-72854-empty-block-first.json shard 0 | 134734531 | 773.0 | 781.3 | 10173 | 223882 | 0.478 | yes | yes | yes | 20261006-1323 |
| sp1 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.tTBbwV8taM/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1323 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^26 | fees-v1-shards2.json shard 0 | 4717439 | 13.1 | 31.6 | 7587 | 1272897 | 0.551 | yes | no | yes | 20261006-1322 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched 2^27 | fees-v1-shards2.json shard 0 | 4717439 | 9.5 | 31.5 | 10181 | 1272897 | 0.545 | yes | no | yes | 20261006-1321 |
| sp1-patched | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone, patched default | fees-v1-shards2.json shard 0 | 4717439 | 10.0 | 32.4 | 10117 | 1272897 | 0.536 | yes | no | yes | 20261006-1321 |
| r0 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda, 3060 12 GB alone | fees-v1-shards2.json shard 0 | 10049917 | 53.0 | 54.4 | 10071 | 223882 | 0.454 | yes | yes | yes | 20261006-1320 |
| sp1 | rz-3060 (RTX 3060 12 GB, Vast, driver 580), cuda | n/a: the prove run failed (exit 1): /tmp/tmp.rVivH09Uqp/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof } | | | | | | | | | | 20261006-1319 |
| sp1-patched | DESKTOP-KMCV30N, cuda, beside the miner, patched 2^26 | block-338-shard1.json shard 0 | 60415376 | 138.0 | 148.1 | 12129 | 1272897 | 0.323 | yes | no | yes | 20261006-1203 |
| sp1-patched | DESKTOP-KMCV30N, cuda, beside the miner, patched default | block-338-shard1.json shard 0 | 60415376 | 38.1 | 52.0 | 27501 | 1272897 | 0.327 | yes | no | yes | 20261006-1202 |
| sp1 | DESKTOP-KMCV30N, cuda, beside the miner | block-338-shard1.json shard 0 | 60415376 | 37.6 | 53.7 | 30413 | 1272897 | 0.327 | yes | yes | yes | 20261006-1201 |
| sp1-patched | DESKTOP-KMCV30N, cuda, beside the miner, patched 2^26 | fees-v1-shards2.json shard 0 | 4717439 | 27.0 | 36.2 | 12012 | 1272897 | 0.324 | yes | no | yes | 20261006-1201 |
| sp1-patched | DESKTOP-KMCV30N, cuda, beside the miner, patched default | fees-v1-shards2.json shard 0 | 4717439 | 15.1 | 28.9 | 18637 | 1272897 | 0.327 | yes | no | yes | 20261006-1200 |
| r0 | MacBook-Pro, cpu, CPU HAL (metal build), po2 19 | block-58927-empty-reward.json shard 0 | 278423 | 46.5 | 46.9 | 7935 | 223882 | 0.210 | yes | yes | yes | 20261006-1200 |
| r0 | MacBook-Pro, cpu, CPU HAL (metal build), po2 20 | block-58927-empty-reward.json shard 0 | 278423 | 47.9 | 48.4 | 7933 | 223882 | 0.210 | yes | yes | yes | 20261006-1200 |
| r0 | MacBook-Pro, cpu, CPU HAL (metal build), po2 21 | block-58927-empty-reward.json shard 0 | 278423 | 49.0 | 49.4 | 7936 | 223882 | 0.210 | yes | yes | yes | 20261006-1200 |
| r0 | MacBook-Pro, cpu, CPU HAL (cpu build), po2 20 | fees-v1-shards2.json shard 0 | 10049917 | 585.8 | 587.7 | 10093 | 223882 | 0.210 | yes | yes | yes | 20261006-1200 |
| r0 | MacBook-Pro, cpu, CPU HAL (metal build), po2 19 | fees-v1-shards2.json shard 0 | 10049917 | 698.7 | 699.2 | 8013 | 223882 | 0.210 | yes | yes | yes | 20261006-1200 |
| r0 | MacBook-Pro, cpu, CPU HAL (metal build), po2 20 | fees-v1-shards2.json shard 0 | 10049917 | 574.4 | 575.0 | 10166 | 223882 | 0.210 | yes | yes | yes | 20261006-1200 |
| r0 | MacBook-Pro, cpu, CPU HAL (metal build), po2 21 | fees-v1-shards2.json shard 0 | 10049917 | 560.9 | 561.5 | 19497 | 223882 | 0.210 | yes | yes | yes | 20261006-1200 |
| sp1 | DESKTOP-KMCV30N, cuda, beside the miner | fees-v1-shards2.json shard 0 | 4717439 | 14.8 | 31.1 | 22477 | 1272897 | 0.321 | yes | yes | yes | 20261006-1159 |
| jolt | MacBook-Pro, cpu | n/a: no guest for our shard statement and no shipped recursion (proving-methods.md route F) | | | | | | | | | | 20261006-1146 |
| sp1-patched | MacBook-Pro, cpu | n/a: the patched server exists only on PC 2 (/opt/igneum-floor/home) | | | | | | | | | | 20261006-1146 |
| sp1 | MacBook-Pro, cpu | fees-v1-shards2.json shard 0 | 4717439 | 71.7 | 80.3 | 27821 | 1272897 | 0.258 | yes | yes | yes | 20261006-1146 |

View file

@ -0,0 +1 @@
{"candidate":"jolt","machine":"MacBook-Pro","backend":"cpu","na":"no guest for our shard statement and no shipped recursion (proving-methods.md route F)","date":"20261006-1146"}

View file

@ -0,0 +1 @@
{"candidate":"sp1-patched","machine":"MacBook-Pro","backend":"cpu","na":"the patched server exists only on PC 2 (/opt/igneum-floor/home)","date":"20261006-1146"}

View file

@ -0,0 +1,26 @@
{
"candidate": "sp1",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1146",
"cycles": 4717439,
"wall_s": 80.25,
"prove_s": 71.749146208,
"peak_memory_mib": 27821,
"proof_bytes": 1272897,
"verify_s": 0.258,
"verify_runs": [
0.258,
0.258,
0.258
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 1,
"image_or_program_id": null,
"command": "SP1_PROVER=cpu RUST_LOG=off - <host> /Users/joshm/Projects/igneum-wt-proving-v2/proving/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1",
"machine": "DESKTOP-KMCV30N",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1159",
"cycles": 4717439,
"wall_s": 31.05,
"prove_s": 14.79086266,
"peak_memory_mib": 22477,
"proof_bytes": 1272897,
"verify_s": 0.321,
"verify_runs": [
0.324,
0.321,
0.401
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 1,
"image_or_program_id": null,
"command": "SP1_PROVER=cuda RUST_LOG=off <host> /mnt/c/Users/Admin/AppData/Local/igneum/prove/bench-ps/bench-ps/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "beside the miner",
"job": "bench-a-pc2"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "DESKTOP-KMCV30N",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 4717439,
"wall_s": 28.95,
"prove_s": 15.114874631,
"peak_memory_mib": 18637,
"proof_bytes": 1272897,
"verify_s": 0.327,
"verify_runs": [
0.327,
0.335,
0.343
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /mnt/c/Users/Admin/AppData/Local/igneum/prove/bench-ps/bench-ps/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "beside the miner, patched default",
"job": "bench-a-pc2"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 278423,
"wall_s": 46.91,
"prove_s": 46.465535042,
"peak_memory_mib": 7935,
"proof_bytes": 223882,
"verify_s": 0.21,
"verify_runs": [
0.21,
0.21,
0.21
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"po2": 19,
"command": "RISC0_PROVER=local igneum-prove-r0-host proving/fixtures/block-58927-empty-reward.json --mode compressed --shard 0 --po2 19 (features: metal; 3.0.6 selects no Metal HAL, so both builds are the CPU HAL)",
"source": "proving/igneum-prove-r0/bench/mac-2026-10-06.sh (the RISC Zero agent), bench-log \"RISC Zero as proof system 2 on the Mac\"",
"label": "CPU HAL (metal build), po2 19"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 278423,
"wall_s": 48.4,
"prove_s": 47.948946833,
"peak_memory_mib": 7933,
"proof_bytes": 223882,
"verify_s": 0.21,
"verify_runs": [
0.21,
0.21,
0.21
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"po2": 20,
"command": "RISC0_PROVER=local igneum-prove-r0-host proving/fixtures/block-58927-empty-reward.json --mode compressed --shard 0 --po2 20 (features: metal; 3.0.6 selects no Metal HAL, so both builds are the CPU HAL)",
"source": "proving/igneum-prove-r0/bench/mac-2026-10-06.sh (the RISC Zero agent), bench-log \"RISC Zero as proof system 2 on the Mac\"",
"label": "CPU HAL (metal build), po2 20"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 278423,
"wall_s": 49.44,
"prove_s": 48.974515,
"peak_memory_mib": 7936,
"proof_bytes": 223882,
"verify_s": 0.21,
"verify_runs": [
0.21,
0.21,
0.21
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"po2": 21,
"command": "RISC0_PROVER=local igneum-prove-r0-host proving/fixtures/block-58927-empty-reward.json --mode compressed --shard 0 --po2 21 (features: metal; 3.0.6 selects no Metal HAL, so both builds are the CPU HAL)",
"source": "proving/igneum-prove-r0/bench/mac-2026-10-06.sh (the RISC Zero agent), bench-log \"RISC Zero as proof system 2 on the Mac\"",
"label": "CPU HAL (metal build), po2 21"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 10049917,
"wall_s": 587.71,
"prove_s": 585.765148792,
"peak_memory_mib": 10093,
"proof_bytes": 223882,
"verify_s": 0.21,
"verify_runs": [
0.21,
0.21,
0.21
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"po2": 20,
"command": "RISC0_PROVER=local igneum-prove-r0-host proving/fixtures/fees-v1-shards2.json --mode compressed --shard 0 --po2 20 (features: cpu; 3.0.6 selects no Metal HAL, so both builds are the CPU HAL)",
"source": "proving/igneum-prove-r0/bench/mac-2026-10-06.sh (the RISC Zero agent), bench-log \"RISC Zero as proof system 2 on the Mac\"",
"label": "CPU HAL (cpu build), po2 20"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 10049917,
"wall_s": 699.24,
"prove_s": 698.704864625,
"peak_memory_mib": 8013,
"proof_bytes": 223882,
"verify_s": 0.21,
"verify_runs": [
0.21,
0.21,
0.21
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"po2": 19,
"command": "RISC0_PROVER=local igneum-prove-r0-host proving/fixtures/fees-v1-shards2.json --mode compressed --shard 0 --po2 19 (features: metal; 3.0.6 selects no Metal HAL, so both builds are the CPU HAL)",
"source": "proving/igneum-prove-r0/bench/mac-2026-10-06.sh (the RISC Zero agent), bench-log \"RISC Zero as proof system 2 on the Mac\"",
"label": "CPU HAL (metal build), po2 19"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 10049917,
"wall_s": 574.95,
"prove_s": 574.4259095,
"peak_memory_mib": 10166,
"proof_bytes": 223882,
"verify_s": 0.21,
"verify_runs": [
0.21,
0.21,
0.21
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"po2": 20,
"command": "RISC0_PROVER=local igneum-prove-r0-host proving/fixtures/fees-v1-shards2.json --mode compressed --shard 0 --po2 20 (features: metal; 3.0.6 selects no Metal HAL, so both builds are the CPU HAL)",
"source": "proving/igneum-prove-r0/bench/mac-2026-10-06.sh (the RISC Zero agent), bench-log \"RISC Zero as proof system 2 on the Mac\"",
"label": "CPU HAL (metal build), po2 20"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "MacBook-Pro",
"backend": "cpu",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1200",
"cycles": 10049917,
"wall_s": 561.46,
"prove_s": 560.90603875,
"peak_memory_mib": 19497,
"proof_bytes": 223882,
"verify_s": 0.21,
"verify_runs": [
0.22,
0.21,
0.21
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"po2": 21,
"command": "RISC0_PROVER=local igneum-prove-r0-host proving/fixtures/fees-v1-shards2.json --mode compressed --shard 0 --po2 21 (features: metal; 3.0.6 selects no Metal HAL, so both builds are the CPU HAL)",
"source": "proving/igneum-prove-r0/bench/mac-2026-10-06.sh (the RISC Zero agent), bench-log \"RISC Zero as proof system 2 on the Mac\"",
"label": "CPU HAL (metal build), po2 21"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1",
"machine": "DESKTOP-KMCV30N",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1201",
"cycles": 60415376,
"wall_s": 53.71,
"prove_s": 37.618382022,
"peak_memory_mib": 30413,
"proof_bytes": 1272897,
"verify_s": 0.327,
"verify_runs": [
0.33,
0.327,
0.327
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 1,
"image_or_program_id": null,
"command": "SP1_PROVER=cuda RUST_LOG=off <host> /mnt/c/Users/Admin/AppData/Local/igneum/prove/bench-ps/bench-ps/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "beside the miner",
"job": "bench-a-pc2"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "DESKTOP-KMCV30N",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1201",
"cycles": 4717439,
"wall_s": 36.19,
"prove_s": 27.043475202,
"peak_memory_mib": 12012,
"proof_bytes": 1272897,
"verify_s": 0.324,
"verify_runs": [
0.332,
0.324,
0.57
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /mnt/c/Users/Admin/AppData/Local/igneum/prove/bench-ps/bench-ps/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "beside the miner, patched 2^26",
"job": "bench-a-pc2"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "DESKTOP-KMCV30N",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1202",
"cycles": 60415376,
"wall_s": 51.96,
"prove_s": 38.06314695,
"peak_memory_mib": 27501,
"proof_bytes": 1272897,
"verify_s": 0.327,
"verify_runs": [
0.327,
0.331,
0.329
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /mnt/c/Users/Admin/AppData/Local/igneum/prove/bench-ps/bench-ps/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "beside the miner, patched default",
"job": "bench-a-pc2"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "DESKTOP-KMCV30N",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1203",
"cycles": 60415376,
"wall_s": 148.07,
"prove_s": 138.020570253,
"peak_memory_mib": 12129,
"proof_bytes": 1272897,
"verify_s": 0.323,
"verify_runs": [
0.323,
0.332,
0.337
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /mnt/c/Users/Admin/AppData/Local/igneum/prove/bench-ps/bench-ps/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "beside the miner, patched 2^26",
"job": "bench-a-pc2"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.4mZHXnufF3/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1254"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 101): /tmp/tmp.1TcWpVbwIg/prove.log:RESULT execute shard 0: 10049917 user cycles in 11 segment(s) [(20, 845030), (20, 894979), (20, 1000813), (20, 1000813), (20, 870778), (20, 884222), (20, 914126), (20, 10",
"date": "20261006-1255"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 137): /tmp/tmp.tmCsQI6CHt/time.log:called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(365), called `Result::unwrap()` on an `Err` value: OutOfMemory, ...)",
"date": "20261006-1255"
}

View file

@ -0,0 +1,10 @@
{
"candidate": "sp1",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.rVivH09Uqp/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1319",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1320",
"cycles": 10049917,
"wall_s": 54.44,
"prove_s": 52.998892992,
"peak_memory_mib": 10071,
"proof_bytes": 223882,
"verify_s": 0.454,
"verify_runs": [
0.454,
0.468,
0.478
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1321",
"cycles": 4717439,
"wall_s": 31.47,
"prove_s": 9.493617291,
"peak_memory_mib": 10181,
"proof_bytes": 1272897,
"verify_s": 0.545,
"verify_runs": [
0.604,
0.545,
0.549
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=134217728 <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^27",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1321",
"cycles": 4717439,
"wall_s": 32.4,
"prove_s": 10.006853318,
"peak_memory_mib": 10117,
"proof_bytes": 1272897,
"verify_s": 0.536,
"verify_runs": [
0.591,
0.536,
0.554
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched default",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1322",
"cycles": 4717439,
"wall_s": 31.58,
"prove_s": 13.08368216,
"peak_memory_mib": 7587,
"proof_bytes": 1272897,
"verify_s": 0.551,
"verify_runs": [
0.57,
0.551,
0.56
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^26",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1323",
"cycles": 134734531,
"wall_s": 781.32,
"prove_s": 772.963614179,
"peak_memory_mib": 10173,
"proof_bytes": 223882,
"verify_s": 0.478,
"verify_runs": [
0.483,
0.48,
0.478
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone",
"box": "rented box"
}

View file

@ -0,0 +1,10 @@
{
"candidate": "sp1",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.tTBbwV8taM/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1323",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1333",
"cycles": 4717439,
"wall_s": 127.45,
"prove_s": 6.393928569,
"peak_memory_mib": 17800,
"proof_bytes": 1272897,
"verify_s": 0.542,
"verify_runs": [
0.542,
0.549,
0.55
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 1,
"image_or_program_id": null,
"command": "SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1335",
"cycles": 10049917,
"wall_s": 24.61,
"prove_s": 23.113177324,
"peak_memory_mib": 13280,
"proof_bytes": 223882,
"verify_s": 0.455,
"verify_runs": [
0.468,
0.455,
0.459
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, po2 20",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1336",
"cycles": 23594943,
"wall_s": 60.95,
"prove_s": 39.680827242,
"peak_memory_mib": 9957,
"proof_bytes": 1272897,
"verify_s": 0.556,
"verify_runs": [
0.572,
0.556,
0.56
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched default",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1336",
"cycles": 10049917,
"wall_s": 34.16,
"prove_s": 32.691568753,
"peak_memory_mib": 8500,
"proof_bytes": 223882,
"verify_s": 0.46,
"verify_runs": [
0.46,
0.467,
0.461
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, po2 19",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1336",
"cycles": 4717439,
"wall_s": 26.94,
"prove_s": 6.384655778,
"peak_memory_mib": 14696,
"proof_bytes": 1272897,
"verify_s": 0.546,
"verify_runs": [
0.547,
0.546,
0.549
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched default",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1337",
"cycles": 23594943,
"wall_s": 60.74,
"prove_s": 39.495245151,
"peak_memory_mib": 10245,
"proof_bytes": 1272897,
"verify_s": 0.55,
"verify_runs": [
0.563,
0.564,
0.55
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=134217728 <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^27",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1337",
"cycles": 4717439,
"wall_s": 24.61,
"prove_s": 6.836229234,
"peak_memory_mib": 8192,
"proof_bytes": 1272897,
"verify_s": 0.546,
"verify_runs": [
0.546,
0.549,
0.553
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^26",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1337",
"cycles": 4717439,
"wall_s": 24.62,
"prove_s": 6.170337728,
"peak_memory_mib": 10850,
"proof_bytes": 1272897,
"verify_s": 0.543,
"verify_runs": [
0.545,
0.544,
0.543
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=134217728 <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^27",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1338",
"cycles": 23594943,
"wall_s": 77.48,
"prove_s": 57.438826024,
"peak_memory_mib": 7491,
"proof_bytes": 1272897,
"verify_s": 0.546,
"verify_runs": [
0.564,
0.546,
0.55
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^26",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1338",
"cycles": 23594943,
"wall_s": 38.92,
"prove_s": 16.994292507,
"peak_memory_mib": 20136,
"proof_bytes": 1272897,
"verify_s": 0.531,
"verify_runs": [
0.546,
0.531,
0.545
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 1,
"image_or_program_id": null,
"command": "SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1338",
"cycles": 4717439,
"wall_s": 26.82,
"prove_s": 9.515878389000001,
"peak_memory_mib": 8384,
"proof_bytes": 1272897,
"verify_s": 0.546,
"verify_runs": [
0.546,
0.552,
0.546
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=33554432 <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^25",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1339",
"cycles": 89482640,
"wall_s": 431.67,
"prove_s": 427.57214824,
"peak_memory_mib": 10153,
"proof_bytes": 223882,
"verify_s": 0.46,
"verify_runs": [
0.485,
0.478,
0.46
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone",
"box": "rented box"
}

View file

@ -0,0 +1,10 @@
{
"candidate": "sp1",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.bcgeLFKAkK/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1339",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1339",
"cycles": 134734531,
"wall_s": 362.88,
"prove_s": 354.600699627,
"peak_memory_mib": 20468,
"proof_bytes": 223882,
"verify_s": 0.453,
"verify_runs": [
0.453,
0.457,
0.459
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, po2 20",
"box": "rented box"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 101): /tmp/tmp.GdZyLDnsdm/time.log: out of memory",
"date": "20261006-1344"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.Lmvi8KzrkZ/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1344"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.BRDKgpts0L/time.log:Error: CudaClientError: The server returned an internal error ",
"date": "20261006-1344"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 124): /tmp/tmp.ihTlWEdxAp/time.log:called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(410), called `Result::unwrap()` on an `Err` value: OutOfMemory, ...)",
"date": "20261006-1345"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1345",
"cycles": 134734531,
"wall_s": 518.32,
"prove_s": 509.708173352,
"peak_memory_mib": 20484,
"proof_bytes": 223882,
"verify_s": 0.452,
"verify_runs": [
0.469,
0.461,
0.452
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, po2 19",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1347",
"cycles": 60415376,
"wall_s": 61.1,
"prove_s": 39.154191924,
"peak_memory_mib": 10661,
"proof_bytes": 1272897,
"verify_s": 0.555,
"verify_runs": [
0.623,
0.593,
0.555
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched default",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1348",
"cycles": 60415376,
"wall_s": 61.64,
"prove_s": 39.609893273,
"peak_memory_mib": 10661,
"proof_bytes": 1272897,
"verify_s": 0.55,
"verify_runs": [
0.556,
0.55,
0.551
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=134217728 <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^27",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1349",
"cycles": 60415376,
"wall_s": 81.14,
"prove_s": 58.268109996,
"peak_memory_mib": 7555,
"proof_bytes": 1272897,
"verify_s": 0.547,
"verify_runs": [
0.564,
0.547,
0.59
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^26",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1354",
"cycles": 23594943,
"wall_s": 40.11,
"prove_s": 20.047866011,
"peak_memory_mib": 10754,
"proof_bytes": 1272897,
"verify_s": 0.533,
"verify_runs": [
0.533,
0.55,
0.544
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=134217728 <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^27",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1354",
"cycles": 23594943,
"wall_s": 38.48,
"prove_s": 16.783101933,
"peak_memory_mib": 17576,
"proof_bytes": 1272897,
"verify_s": 0.544,
"verify_runs": [
0.544,
0.55,
0.549
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched default",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1355",
"cycles": 23594943,
"wall_s": 46.12,
"prove_s": 27.079176555,
"peak_memory_mib": 8160,
"proof_bytes": 1272897,
"verify_s": 0.545,
"verify_runs": [
0.549,
0.548,
0.545
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^26",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1356",
"cycles": 10049917,
"wall_s": 69.94,
"prove_s": 68.467072761,
"peak_memory_mib": 7339,
"proof_bytes": 223882,
"verify_s": 0.459,
"verify_runs": [
0.463,
0.468,
0.459
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, po2 19",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"date": "20261006-1356",
"cycles": 23594943,
"wall_s": 69.49,
"prove_s": 50.657004593,
"peak_memory_mib": 8192,
"proof_bytes": 1272897,
"verify_s": 0.549,
"verify_runs": [
0.549,
0.549,
0.55
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=33554432 <host> /root/kit/fixtures/block-72854-empty-block-first.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^25",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1357",
"cycles": 89482640,
"wall_s": 582.5,
"prove_s": 578.24987729,
"peak_memory_mib": 7285,
"proof_bytes": 223882,
"verify_s": 0.459,
"verify_runs": [
0.466,
0.459,
0.489
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, po2 19",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1357",
"cycles": 60415376,
"wall_s": 41.82,
"prove_s": 19.117317899,
"peak_memory_mib": 20680,
"proof_bytes": 1272897,
"verify_s": 0.54,
"verify_runs": [
0.548,
0.55,
0.54
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 1,
"image_or_program_id": null,
"command": "SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1358",
"cycles": 89482640,
"wall_s": 182.52,
"prove_s": 178.48036258,
"peak_memory_mib": 13390,
"proof_bytes": 223882,
"verify_s": 0.467,
"verify_runs": [
0.467,
0.467,
0.469
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, po2 20",
"box": "rented box"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"na": "the prove run failed (exit 101): /tmp/tmp.4usOX0H6PP/time.log: out of memory",
"date": "20261006-1400"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.VAI33Vs7MA/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1400"
}

View file

@ -0,0 +1,27 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1400",
"cycles": 4717439,
"wall_s": 14.88,
"prove_s": 7.903671741,
"peak_memory_mib": 7628,
"proof_bytes": 1272897,
"verify_s": 0.321,
"verify_runs": [
0.331,
0.322,
0.321
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4060 8 GB alone, patched 2^26"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.eMe07oNUXi/time.log:Error: CudaClientError: The server returned an internal error ",
"date": "20261006-1400"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.xkyOwzwG9w/time.log:Error: CudaClientError: The server returned an internal error ",
"date": "20261006-1400"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"na": "the prove run failed (exit 101): /tmp/tmp.pOnqtcsA7F/time.log: out of memory",
"date": "20261006-1401"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.rlPWh1xxVd/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1401"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-72854-empty-block-first.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.lyWxBwCi0A/time.log:Error: CudaClientError: The server returned an internal error ",
"date": "20261006-1401"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.nMYigoWqsD/time.log:Error: CudaClientError: The server returned an internal error ",
"date": "20261006-1401"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.aCaVLltPTe/time.log:Error: CudaClientError: The server returned an internal error ",
"date": "20261006-1401"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1401",
"cycles": 89482640,
"wall_s": 285.98,
"prove_s": 281.413875371,
"peak_memory_mib": 8846,
"proof_bytes": 223882,
"verify_s": 0.46,
"verify_runs": [
0.467,
0.46,
0.463
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, po2 19",
"box": "rented box"
}

View file

@ -0,0 +1,27 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1402",
"cycles": 60415376,
"wall_s": 49.32,
"prove_s": 41.32554294,
"peak_memory_mib": 7660,
"proof_bytes": 1272897,
"verify_s": 0.315,
"verify_runs": [
0.32,
0.319,
0.315
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4060 8 GB alone, patched 2^26"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1406",
"cycles": 60415376,
"wall_s": 42.19,
"prove_s": 19.482300341,
"peak_memory_mib": 18344,
"proof_bytes": 1272897,
"verify_s": 0.546,
"verify_runs": [
0.565,
0.552,
0.546
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched default",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1407",
"cycles": 278423,
"wall_s": 6.78,
"prove_s": 5.700978352,
"peak_memory_mib": 7345,
"proof_bytes": 223882,
"verify_s": 0.466,
"verify_runs": [
0.468,
0.466,
0.468
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-58927-empty-reward.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, po2 19",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "r0",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1407",
"cycles": 278423,
"wall_s": 6.66,
"prove_s": 5.611237802,
"peak_memory_mib": 7345,
"proof_bytes": 223882,
"verify_s": 0.464,
"verify_runs": [
0.487,
0.467,
0.464
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-58927-empty-reward.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, po2 20",
"box": "rented box"
}

View file

@ -0,0 +1,10 @@
{
"candidate": "sp1",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.qVtcFNc806/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1407",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1407",
"cycles": 257467,
"wall_s": 24.73,
"prove_s": 5.511343367,
"peak_memory_mib": 7205,
"proof_bytes": 1272897,
"verify_s": 0.537,
"verify_runs": [
0.542,
0.537,
0.545
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off <host> /root/kit/fixtures/block-58927-empty-reward.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched default",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1407",
"cycles": 60415376,
"wall_s": 51.33,
"prove_s": 29.195983578,
"peak_memory_mib": 8192,
"proof_bytes": 1272897,
"verify_s": 0.547,
"verify_runs": [
0.551,
0.572,
0.547
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^26",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1407",
"cycles": 60415376,
"wall_s": 42.26,
"prove_s": 21.165209198,
"peak_memory_mib": 11202,
"proof_bytes": 1272897,
"verify_s": 0.548,
"verify_runs": [
0.552,
0.548,
0.552
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=134217728 <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^27",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1408",
"cycles": 257467,
"wall_s": 27.53,
"prove_s": 7.288661415,
"peak_memory_mib": 7203,
"proof_bytes": 1272897,
"verify_s": 0.542,
"verify_runs": [
0.561,
0.542,
0.571
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=67108864 <host> /root/kit/fixtures/block-58927-empty-reward.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^26",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-3060 (RTX 3060 12 GB, Vast, driver 580)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1408",
"cycles": 257467,
"wall_s": 25.87,
"prove_s": 5.564675484,
"peak_memory_mib": 7301,
"proof_bytes": 1272897,
"verify_s": 0.562,
"verify_runs": [
0.562,
0.592,
0.568
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=134217728 <host> /root/kit/fixtures/block-58927-empty-reward.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "3060 12 GB alone, patched 2^27",
"box": "rented box"
}

View file

@ -0,0 +1,28 @@
{
"candidate": "sp1-patched",
"machine": "rz-4090 (RTX 4090 24 GB, RunPod, driver 570)",
"backend": "cuda",
"fixture": "block-338-shard1.json",
"shard": 0,
"date": "20261006-1408",
"cycles": 60415376,
"wall_s": 77.99,
"prove_s": 57.515469927,
"peak_memory_mib": 8128,
"proof_bytes": 1272897,
"verify_s": 0.571,
"verify_runs": [
0.571,
0.606,
0.608
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=33554432 <host> /root/kit/fixtures/block-338-shard1.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4090 24 GB alone, patched 2^25",
"box": "rented box"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 101): /tmp/tmp.khG85FrAuh/time.log: out of memory",
"date": "20261006-1453"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.yOqeSspoDW/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1453"
}

View file

@ -0,0 +1,27 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1454",
"cycles": 10049917,
"wall_s": 47.72,
"prove_s": 47.084915332,
"peak_memory_mib": 6720,
"proof_bytes": 223882,
"verify_s": 0.221,
"verify_runs": [
0.231,
0.221,
0.224
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4060 8 GB alone, po2 19"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.402Rj4YpeY/time.log:Error: CudaClientError: The server returned an internal error ",
"date": "20261006-1454"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"na": "the prove run failed (exit 124): /tmp/tmp.pKGGDBy0r0/time.log:called `Result::unwrap()` on an `Err` value: JoinError::Panic(Id(456), called `Result::unwrap()` on an `Err` value: OutOfMemory, ...)",
"date": "20261006-1455"
}

View file

@ -0,0 +1,27 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1510",
"cycles": 278423,
"wall_s": 4.26,
"prove_s": 3.771448435,
"peak_memory_mib": 6876,
"proof_bytes": 223882,
"verify_s": 0.225,
"verify_runs": [
0.227,
0.225,
0.226
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-58927-empty-reward.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4060 8 GB alone, po2 19"
}

View file

@ -0,0 +1,27 @@
{
"candidate": "r0",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"date": "20261006-1510",
"cycles": 278423,
"wall_s": 4.29,
"prove_s": 3.796924528,
"peak_memory_mib": 6812,
"proof_bytes": 223882,
"verify_s": 0.223,
"verify_runs": [
0.223,
0.224,
0.223
],
"verified": true,
"recursion": true,
"audit": true,
"proof_system": 2,
"image_or_program_id": "0x9ae0f416ee43e9ea8908c555d424fe23e3592677ffc42a763476623d0eb5cf72",
"command": "RISC0_PROVER=local RUST_LOG=off <host> /root/kit/fixtures/block-58927-empty-reward.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4060 8 GB alone, po2 20"
}

View file

@ -0,0 +1,9 @@
{
"candidate": "sp1",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "block-58927-empty-reward.json",
"shard": 0,
"na": "the prove run failed (exit 1): /tmp/tmp.0JSHMJ96SK/time.log:Error: CudaClientError: Failed to read the response: Custom { kind: UnexpectedEof, error: early eof }",
"date": "20261006-1510"
}

View file

@ -0,0 +1,27 @@
{
"candidate": "sp1-patched",
"machine": "rz-4060 (RTX 4060 8 GB, Vast.ai)",
"backend": "cuda",
"fixture": "fees-v1-shards2.json",
"shard": 0,
"date": "20261006-1510",
"cycles": 4717439,
"wall_s": 19.8,
"prove_s": 12.773214641,
"peak_memory_mib": 7660,
"proof_bytes": 1272897,
"verify_s": 0.318,
"verify_runs": [
0.323,
0.322,
0.318
],
"verified": true,
"recursion": true,
"audit": false,
"proof_system": 1,
"image_or_program_id": null,
"command": "HOME=/opt/igneum-floor/home SP1_PROVER=cuda RUST_LOG=off SP1_GPU_ELEMENT_THRESHOLD=33554432 <host> /root/kit/fixtures/fees-v1-shards2.json --mode compressed --shard 0",
"source": "bench/proof-systems/run.sh",
"label": "4060 8 GB alone, patched 2^25"
}

Some files were not shown because too many files have changed in this diff Show more