Summary
This release introduces support for BRIPs 0001, 0002, and 0004.
For the Pectra11 hardfork:
- on the CL, full compatibility for BRIP-0004 in the Electra1 fork version is expected.
- on the EL, full compatibility for BRIP-0002 and BRIP-0004 in the Prague1 fork version.
Node operators currently running geth must upgrade this to this version. For the CL, beacon-kit v1.3.1 must be used.
On Berachain mainnet, the deadline to upgrade to this version is Sept 3rd, 2025 @ 16:00:00 GMT+0000
, when the beacon version will fork to Electra1 and the ELs are configured to fork to Prague1.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Bepolia | Mainnet | General |
---|---|---|---|
Payload Builders | Recommended | Required | Recommended |
Non-Payload Builders | Recommended | Required | Recommended |
All Changes from geth v1.16.2
- chore(actions): improve backport PRs for readability
- BRG4-20.3: pass current block number in to NewPoLTx for more clarity
- BRG4-15: error out early if nil pubkey provided when creating PoL tx
- BRG4-14: remove unneeded value check when unmarshalling PoL tx
- BRG4-11: return 0 for PoLTx gas tip cap
- BRG4-10: preserve returned error via wrapping
- fix(actions): resolve backport warning (#66)
- chore(configs): Update Prague1 hardfork time on Berachain mainnet
- chore(actions): Automated backport to release branches (#65)
- chore(configs): Update Prague1 chain config for Berachain mainnet (#61)
- chore(config): add more verbose Prague1 logigng (#60)
- fix(docker): use correct digest for signing images (#57)
- chore(docker): login to ghcr before cosigning (#56)
- fix(pbss): idempotent init cmd if stored db (#54)
- fix(forkid): Make compatible with prague1 fork
- chore(version): Use git tag for version reporting (#51)
- chore(API): enforce from address when checking pol tx (#52)
- fix unit tests
- add validation and logs around prague1 checks
- use correct default chain configs
- chore: miscellaneous nits
- Merge branch 'master' into release/v1.16.2
- Merge pull request #44 from berachain/migrate-dbdir
- Merge branch 'ethereum:master' into main
- chore(p2p): add default bootnodes for mainnet and bepolia
- chore(configs): update default configs with correct prague1 timestamps
- chore(docker): improve workflow for version retrieval
- Update with latest main (#42)
- Merge branch 'master' into update-main
- chore(binary): update executable name to
bera-geth
(#41) - fix(validation): enforce at least one tx post-prague1 (#40)
- fix: cleanup audit fixes (#39)
- fix docker cosign action (#38)
- chore(audit): address some minor nits (#37)
- fix(actions): docker signed release workflow (#36)
- chore(release): signed releases for binaries and docker (#35)
- test: add Docker build test workflow for PR validation (#33)
- fix version naming (#20)
- Update default miner gas configs (#32)
- Merge pull request #31 from berachain/update-main
- Merge branch 'main' of github.com:berachain/bera-geth into update-main
- feat: BRIP-0004 implementation (#21)
- Merge pull request #25 from berachain/sync-master-to-main
- Merge remote-tracking branch 'origin/master' into sync-master-to-main
- Merge pull request #24 from berachain/update-main
- Merge branch 'main' of github.com:berachain/bera-geth into update-main
- Add CLAUDE.md file for Claude Code development guidance (#19)
- fix(build): internal env fetching of github actions
- chore(CI): isolate docker workflow to run independently
- Merge branch 'master' of github.com:berachain/bera-geth
- run release workflow on correct triggers
- fix(CI): Use correct download links (#17)
- chore(CI): Fix download links in draft releases (#16)
- chore(ci): release workflow patches (#15)
- chore(CI): Setup release workflow (#13)
- Merge pull request #11 from berachain/fetch-upstream
- Merge branch 'master' of github.com:berachain/bera-geth into fetch-upstream
- Merge branch 'master' of github.com:berachain/bera-geth into fetch-upstream
- Merge branch 'main' of github.com:berachain/bera-geth into fetch-upstream
- Set GH actions against default branch - main (#12)
- Merge remote-tracking branch 'upstream/master' into fetch-upstream
- Merge branch 'master' of github.com:berachain/bera-geth
- feat(BRIP-2): Gas Fee Modifications (#2)
- feat(BRIP-1): Prepare fork for Berachain (#3)
Full code diff can be seen https://github.com/ethereum/go-ethereum/compare/v1.16.2...berachain:bera-geth:v1.011602.2?expand=1
Binaries
System | Architecture | Binary | PGP Signature | Notes |
---|---|---|---|---|
amd64 | bera-geth-linux-amd64-v1.011602.3-d2eb3b37.tar.gz | Signature | Most Linux systems | |
arm64 | bera-geth-linux-arm64-v1.011602.3-d2eb3b37.tar.gz | Signature | 64-bit ARM systems | |
amd64 | bera-geth-alltools-linux-amd64-v1.011602.3-d2eb3b37.tar.gz | Signature | All tools bundle (amd64) | |
arm64 | bera-geth-alltools-linux-arm64-v1.011602.3-d2eb3b37.tar.gz | Signature | All tools bundle (arm64) | |
System | Option | - | Resource | |
Docker | ghcr.io/berachain/bera-geth |
Verifying Binary Signatures
All release binaries are signed with PGP. To verify:
- Download the public key
- Import the key:
gpg --import release.asc
- Verify the signature:
gpg --verify <filename>.asc <filename>
Docker Images
Docker images are available at ghcr.io/berachain/bera-geth
and are signed with Cosign using keyless signing from GitHub Actions OIDC.
To verify a specific release image (recommended: by digest):
cosign verify \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
--certificate-identity-regexp "^https://github.com/berachain/bera-geth/.github/workflows/docker.yml@.+" \
ghcr.io/berachain/bera-geth@$(docker buildx imagetools inspect ghcr.io/berachain/bera-geth:v1.011602.3 | awk '/^Digest:/ {print $2; exit}')
To verify the latest
unstable image instead (not recommended; tags can move):
cosign verify \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
--certificate-identity-regexp "^https://github.com/berachain/bera-geth/.github/workflows/docker.yml@.+" \
ghcr.io/berachain/bera-geth@$(docker buildx imagetools inspect ghcr.io/berachain/bera-geth:latest | awk '/^Digest:/ {print $2; exit}')
Installation
The archives contain the geth binary and license file. Extract and run:
tar -xzf bera-geth-linux-amd64-v1.011602.3-d2eb3b37.tar.gz
./geth
The alltools archives additionally contain:
abigen
- Source code generator for Ethereum contractsevm
- Developer utility for the Ethereum Virtual Machinerlpdump
- Developer utility for RLP dataclef
- Ethereum account management tool