deps: upgrade gnark-crypto v0.19.1 → v0.20.0#19808
Conversation
Picks up GLV/wNAF scalar multiplication and pairing pre-computation optimizations that benefit BN254 and BLS12-381 precompiled contracts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
gnark-crypto v0.20.0 declares go 1.25.7, which forces our minimum go version up from 1.25.0. Drop the separate toolchain directive since go 1.25.7 subsumes it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Giulio2002
left a comment
There was a problem hiding this comment.
LGTM — dependency bump gnark-crypto v0.19.1 → v0.20.0 and bitset patch update
Benchmark: bn254 & BLS12-381 precompiles — gnark-crypto v0.20.0 vs v0.19.1Machine: Apple M2 Max, Note: Both benchmarks ran concurrently, so the "old" (main) numbers have slightly higher variance due to resource contention. The large improvements on cdetrio12–14 are likely contention artifacts; real improvement for those is probably ~5–7%, consistent with cdetrio11. BLS12-381 G1Add partial data (benchmarks killed before all ~500 test vectors completed): no measurable difference (~2930–2950 ns/op on both branches). Summary: gnark-crypto v0.20.0 is faster across all three bn254 precompiles. Biggest gains in ScalarMul (−5% to −18%), followed by Add (−4% to −8%) and Pairing (−1% to −5%). Geomean: −8.4%. |
)" This reverts commit 38f2050. gnark-crypto v0.20.0 brings in a go.mod that requires go 1.25.7, which forces the root go.mod to 1.25.7. This breaks hive CI because the erigon Dockerfile uses golang:1.25.0-trixie as builder and builds with GOTOOLCHAIN=local — the version patch sed only matched -alpine. Co-authored-by: Giulio rebuffo <giulio.rebuffo@gmail.com> Co-authored-by: Giulio Rebuffo <giulio.rebuffo@gmail.com>
This reverts commit 38f2050.
## Summary - The Hive workflow sed pattern only matched `golang:X.Y.Z-alpine`, but the upstream Hive `Dockerfile.git` uses `golang:X.Y.Z-trixie` - This caused the Go version to never be patched, so when #19808 bumped `go.mod` from `go 1.25.0` to `go 1.25.7`, the Hive container still had Go 1.25.0 and the build failed with `go: ../../go.mod requires go >= 1.25.7` - Fix: match any distro suffix (`s|golang:[0-9.]*-|golang:${go_version}-|`) instead of hardcoding `-alpine` Fixes the Hive EEST failure from #19808. Once merged, the gnark-crypto v0.20.0 upgrade can be re-landed. ## Test plan - [ ] Verify Hive tests pass on this branch (the workflow fix itself is exercised when the Hive job runs) - [ ] After merge, re-land gnark-crypto v0.20.0 upgrade and confirm Hive EEST passes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Summary
github.com/consensys/gnark-cryptofrom v0.19.1 to v0.20.0bits-and-blooms/bitsetbumped v1.24.2 → v1.24.4Test plan
go test ./execution/vm/...passesmake erigonbuilds successfully🤖 Generated with Claude Code