Skip to content

Upgrade IoTeX Core to v2.4.0-rc2#136

Merged
envestcc merged 5 commits intomainfrom
iotex_2.4
Apr 29, 2026
Merged

Upgrade IoTeX Core to v2.4.0-rc2#136
envestcc merged 5 commits intomainfrom
iotex_2.4

Conversation

@envestcc
Copy link
Copy Markdown
Member

This pull request updates the project's dependencies in go.mod to newer versions, introduces new and updated indirect dependencies, and adjusts some module replacements to point to newer or alternative forks. It also modifies the instantiation of a gRPC BlockDAO in server/server.go to include an additional parameter.

Dependency upgrades and additions:

  • Updated the Go version to 1.24.6 and upgraded many direct dependencies, including github.com/urfave/cli/v2, github.com/stretchr/testify, github.com/prometheus/client_golang, and others. Added github.com/fergusstrange/embedded-postgres as a direct dependency.
  • Bumped numerous indirect dependencies to newer versions, including libraries from anacrolix, bits-and-blooms, cockroachdb, consensys, crate-crypto, decred, ethereum, goccy, golang-jwt, holiman, ipfs, klauspost, libp2p, multiformats, pion, prometheus, quic-go, xrash, uber, golang.org/x/*, and others. Some indirect dependencies were removed or replaced with updated alternatives. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

Module replacement and fork updates:

  • Updated several replace directives to point to new versions or different forks of key modules, such as github.com/ethereum/go-ethereum, github.com/erigontech/erigon, github.com/erigontech/erigon-lib, and github.com/gballet/go-verkle. Added a replacement for github.com/ethereum/go-ethereum/crypto/secp256k1.

Code change for BlockDAO initialization:

  • Modified the call to blockdao.NewGrpcBlockDAO in server/server.go to add a new integer parameter (100), likely configuring a new option or buffer size for the DAO.

envestcc and others added 5 commits April 29, 2026 13:04
…compatibility

gnark-crypto v0.18.1 (pulled in by iotex-core v2.4) renamed the build
tag for disabling assembly from `generic` to `purego`. The new assembly
packages (field/asm/element_4w, element_6w) have no build constraints
and use R15/VALIGND patterns incompatible with -dynlink mode required by
-buildmode=plugin.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
iotex-core v2.4.0-rc2 transitively bumped gnark-crypto to v0.18.1, which
introduced fptower assembly files (e2_amd64.s) without `!generic`/`!purego`
build guards. Their R15 register usage and SB-relative VALIGND globals are
incompatible with the `-dynlink` mode that `-buildmode=plugin` enables.

Pinning to v0.12.1 (the version analyser used pre-upgrade, known to build
plugins cleanly with `-tags generic`). iotex-core has no direct gnark-crypto
usage; only transitive via go-ethereum's EVM precompiles, whose API surface
is stable across these versions.

Reverts the Makefile tag back to `generic` to match v0.12.1's guard style.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
YAP fork activates EIP-7702 SetCode tx (type 4), which the action_type
plugin previously rejected with "unknown tx type 4". Insert a SetCodeTxType
case into the existing fallthrough chain so the auth list is recorded and
the dynamic-fee/access-list fields still flow through. Add an AuthList
jsonb column on the ActionType model.

Blob txs also fall through this case but the `len(auths) > 0` guard keeps
AuthList unset for them (BlobTx.SetCodeAuthorizations returns nil).

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@envestcc envestcc merged commit 199ec6f into main Apr 29, 2026
1 check passed
@envestcc envestcc deleted the iotex_2.4 branch April 29, 2026 08:50
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