Skip to content

feat: add output matching metrics for execution and proving processes#287

Merged
jsign merged 2 commits into
masterfrom
jsign-include-output-match-result
May 22, 2026
Merged

feat: add output matching metrics for execution and proving processes#287
jsign merged 2 commits into
masterfrom
jsign-include-output-match-result

Conversation

@jsign
Copy link
Copy Markdown
Collaborator

@jsign jsign commented May 22, 2026

Adds an output_matched flag to successful execution and proving metrics so benchmark results can distinguish performance success from public-output correctness.

  • Records execution.success.output_matched for execute runs.
  • Records proving.success.output_matched for prove runs, requiring both prover and verifier public outputs to match.
  • Converts public-output mismatches from fatal errors into warnings while still writing successful metrics with output_matched: false.
  • Keeps zkVM errors, proof verification errors, expected-output computation errors, and panics on the existing error/crash paths.
  • Updates metrics docs and adds serialization/unit coverage for the new field and zkVM padding normalization.

To be clear: before this PR, when the received guest program output wasn't what we expected, we halted the whole fixtures run. Now we aren't strict on that front and consider success to refer to the guest program run, with the new output_matched field indicating correctness! If the guest program crashes, we still get teh "crashed" variant as usual.

Example new fixture result:

{
  "name": "rpc_block_24949813",
  "timestamp_completed": "2026-05-22T19:15:11.428143406Z",
  "metadata": {
    "block_used_gas": 32959986
  },
  "execution": {
    "success": {
      "output_matched": true,
      "total_num_cycles": 426715495,
      "region_cycles": {},
      "execution_duration": {
        "secs": 16,
        "nanos": 198990895
      }
    }
  }
}

@jsign jsign marked this pull request as ready for review May 22, 2026 19:44
@jsign jsign merged commit d27512d into master May 22, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant