Skip to content

feat: proof engine zkboost ingreation test#10

Merged
frisitano merged 8 commits into
feat/eip8025from
feat/proof-engine-zkboost-ingreation-test
Mar 19, 2026
Merged

feat: proof engine zkboost ingreation test#10
frisitano merged 8 commits into
feat/eip8025from
feat/proof-engine-zkboost-ingreation-test

Conversation

@frisitano
Copy link
Copy Markdown
Owner

Issue Addressed

Which issue # does this PR address?

Proposed Changes

Please list or describe the changes introduced by this PR.

Additional Info

Please provide any additional information. For example, future considerations
or information useful for reviewers.

nova-tau-assistant and others added 8 commits March 19, 2026 00:33
Add a new test crate `testing/proof_engine_zkboost` that verifies
wire-level compatibility between lighthouse's HttpProofNodeClient
and the zkboost Proof Node API.

The test framework includes:
- MockZkboostServer: axum-based mock server mimicking zkboost's
  HTTP API (POST/GET proof requests, SSE events, proof download,
  proof verification)
- 8 integration tests covering all 4 API endpoints, SSE streaming,
  full request lifecycle, and proof_type encoding analysis

Key bug fix found during integration testing:
- HttpProofNodeClient::request_proofs was passing Vec<u8> directly
  to reqwest's .query() which serde_urlencoded doesn't support.
  Fixed to serialize proof_types as a comma-separated string
  matching zkboost's expected format.

Known compatibility gap documented:
- Lighthouse uses ProofType = u8 while zkboost uses string-based
  ProofType enum (e.g., "reth-sp1"). This mismatch exists in both
  query params and SSE event payloads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Restructure test names, docs, and assertions to explicitly categorize
each test as either "compatible transport" (works today) or "compatibility
boundary" (ProofType encoding mismatch). Tests now assert the actual wire
format rather than just logging, making the gap visible in test output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add inline comment documenting that the serde_urlencoded serialization
bug was discovered by the proof_engine_zkboost integration tests, not
caught by existing unit tests because MockProofNodeClient bypasses HTTP.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@frisitano frisitano merged commit e15b5b4 into feat/eip8025 Mar 19, 2026
3 of 6 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.

2 participants