ethrex integration: Crypto-trait guest + synthetic block fixture generator#666
Conversation
Codex Code ReviewNo issues found in the PR diff. Notes:
|
|
Benchmark Results for unmodified programs 🚀
|
# Conflicts: # Cargo.lock
…k temp tool (#678) Addresses review findings on PR #666: - Cargo.toml: the comment claimed the lambdavm feature provides KZG 'incl. kzg-rs', but the guest Cargo.lock has no kzg/c-kzg — KZG is NOT linked. Remove the false claim; state 0x0a is unsupported (consistent with main.rs) and clarify the dep is an immutable rev pin (not a moving branch). - main.rs: make the KZG note precise — blob txs still execute (stateless block execution doesn't verify blob proofs); only the point-eval precompile (0x0a) fails closed/reverts. - rust.rs: add test_ethrex_empty_block so the committed ethrex_empty_block.bin fixture (previously read by no test) exercises the 0-tx rkyv layout and the guest==host path; mirrors test_ethrex_simple_tx. - tooling/ethrex-fixtures: add a grep-able TODO marking the crate temporary (delete once ethrex-replay replaces it), and a .gitignore for the stray .ethrex-fixtures-tmp store dir + target/. - bench README: point at the canonical 'rev' in Cargo.toml, not the lockfile.
|
/ai-review |
Codex Code ReviewFound one issue: High - unsupported KZG precompile can silently produce non-Ethereum execution output The guest now builds Action: either keep/restore KZG support in I could not run the targeted compile check because rustup tried to write under the read-only home directory in this environment. |
|
Review — ethrex Crypto-trait guest + fixture generator Reviewed the source/config changes (skimmed the Cargo.lock and vendored keccak/blake2f asm deletions, which are mechanical). Overall this is a clean, well-documented temporary-integration PR — fixtures are now committed and generated reproducibly in-repo, removing the network download. No blocking issues found. A few notes: Soundness caveat to track (not a bug today) — The Minor cleanup — Things I checked that are fine:
|
AI ReviewPR #666 · 35 changed files
Findings
Status column reflects the verdict from the verifier: deepseek-verifier (openrouter/deepseek/deepseek-v4-pro). AI-001: KZG/point-evaluation precompile (0x0a) support removed without migration path
Claim The new ethrex-guest-program with lambdavm feature explicitly does not include KZG/c-kzg, so the point-evaluation precompile (0x0a) fails closed (reverts) instead of returning a result. This is a breaking change for any workloads relying on EIP-4844 blob verification. Evidence Cargo.toml comment: 'KZG is NOT linked under this feature (no kzg-rs/c-kzg in the guest Cargo.lock), so the point-evaluation precompile (0x0a) is unsupported — see src/main.rs.' The c-kzg and kzg-rs dependencies were removed from both root and guest Cargo.lock files. Suggested fix Document this limitation clearly in the README and migration guide. If KZG support is needed, consider adding a separate feature flag or tracking issue for re-implementing KZG via pure-Rust crates (e.g., bls12_381 + arkworks) instead of c-kzg. AI-004: Manual README checksum refresh after fixture regeneration
Claim The Evidence
Suggested fix Extend AI-005: Dead gitignore entry for removed ethrex_hoodi.bin
Claim The PR removes the Evidence
Suggested fix Remove line 3 ( Reviewer Lanes
Verification Lanes
Native Codex and Claude reviews run separately and post their own comments. They are not included in this structured provenance report. Discarded candidates (3) — rejected by the verifier
Raw lane outputs, candidates, final issues, and model metrics are uploaded as workflow artifacts. |
|
/ai-review |
Codex Code ReviewFindings
Verification I could not run the targeted cargo test because this sandbox has a read-only |
Review: ethrex Crypto-trait guest + fixture generatorReviewed the substantive changes (guest
Two minor, non-blocking observations:
Nice work, and clear TODOs for the eventual re-pin + generator removal. |
Description
main, we re-pin to the merge commit and switch fixture generation toethrex-replay. The in-repo generator is then removed.What this does
execution_program(input, LambdaVmCrypto)); keccak runs through our precompile. Removes the old[patch] ethrex-cryptoand c-kzg.tooling/ethrex-fixtures— a small offline tool that builds ethrex blocks with an arbitrary number of ETH transfers and writes the serializedProgramInput. Pinned to the same ethrex rev as the guest so fixtures stay compatible.Current limitations
0x0a) are unsupported under the LambdaVM guest today. Thelambdavmfeature does not wire akzg-rs/c-kzgbackend, so those calls fail closed/revert. The committed temporary fixtures are ETH-transfer-only and do not exercise this; wire KZG before switching toethrex-replayor arbitrary real blocks.