Releases: berachain/beacon-kit
BeaconKit v1.3.3
Summary
The patch upgrades CometBFT dependency
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Bepolia | Mainnet | General |
---|---|---|---|
Payload Builders | Required | Required | Required |
Non-Payload Builders | Required | Required | Required |
All Changes
- chore(CometBFT): bumped cometBFT version (#2955)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.3.3-linux-amd64 | Signature | |
arm64 | beacond-v1.3.3-linux-arm64 | Signature | |
arm64 | beacond-v1.3.3-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.3.2
Summary
Upgrading to this version is not urgent. This patch upgrade includes non-critical bug fixes, more beacon API endpoints implemented, dependency updates, and other quality of life improvements.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Mainnet | Bepolia | General |
---|---|---|---|
Payload Builders | Recommended | Recommended | Not Required |
Non-Payload Builders | Recommended | Recommended | Not Required |
All Changes
- refactor: omit unnecessary reassignment (#2919)
- Merge branch 'main' of github.com:berachain/beacon-kit
- chore(deps): bump github.com/attestantio/go-eth2-client from 0.26.0 to 0.27.1 (#2942)
- chore(deps): bump github.com/spf13/pflag from 1.0.9 to 1.0.10 (#2934)
- Merge branch 'main' into dependabot/go_modules/github.com/spf13/viper-1.21.0
- chore(deps): bump github.com/ulikunitz/xz from 0.5.11 to 0.5.14 in the go_modules group (#2903)
- chore(deps): bump github.com/spf13/viper from 1.20.1 to 1.21.0
- chore(deps): bump golang.org/x/crypto from 0.41.0 to 0.42.0 (#2922)
- chore(deps): bump github.com/spf13/cast from 1.9.2 to 1.10.0 (#2925)
- chore: fix function name (#2916)
- chore(testing): prague2 fork times (#2933)
- chore(deps): bump github.com/spf13/afero from 1.14.0 to 1.15.0 (#2924)
- docs:Remove duplicate words (#2886)
- chore(deps): bump golang.org/x/sync from 0.16.0 to 0.17.0 (#2918)
- chore(node-api): serve genesis data (#2930)
- chore(node-api): complete backend simplification (#2929)
- chore(testing): introduce EL prague2 fork (#2928)
- chore(all): upgrade to v.1.25 + govulcheck + tenv replacement (#2926)
- chore(node-api): more API migration - 3 (#2920)
- chore(node-api): complete Validators API migration - 2 (#2917)
- chore(deps): bump github.com/spf13/cobra from 1.9.1 to 1.10.1 (#2911)
- chore(deps): bump github.com/spf13/pflag from 1.0.7 to 1.0.9 (#2906)
- chore(node-api): Consolidate FilterValidators (#2909)
- chore(deps): bump github.com/phuslu/log from 1.0.119 to 1.0.120 (#2914)
- fix(consensus: fix optimistic payload UT following pectra1 activation (#2913)
- chore(node-api): enforce mapping of requested slots 0 to genesis (#2910)
- chore(node-api): handlers cleanup (#2907)
- chore(flags): cleaned up block-store-service enabled flag (#2901)
- chore(node-api): layers restructuring (#2905)
- chore(deps): bump github.com/kurtosis-tech/kurtosis/api/golang from 1.10.2 to 1.11.1 (#2898)
- chore(deps): bump github.com/go-viper/mapstructure/v2 from 2.3.0 to 2.4.0 in the go_modules group (#2888)
- feat(node-api): introduce proof of validator pubkey (#2900)
- Update the README with common options and commands (#2621)
- Fix/spelling and loglevels (#2633)
- empty suggested-fee-recipient causes crash - nit (#2899)
- chore(config): Fix error handling of empty
suggested-fee-recipient
(#2700) - chore: fix struct field name in comment (#2892)
- chore(node-endpoint): Implement node syncing (#2893)
- chore(node-endpoint) fix beacon genesis return status (#2894)
- chore(deps): bump github.com/stretchr/testify from 1.11.0 to 1.11.1 (#2897)
- chore(node-endpoint) : Implement node_version (#2891)
- feat(node-api): Create proof endpoint for validator balance (#2840)
- chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.0 (#2890)
- chore(deps): bump cosmossdk.io/log from 1.6.0 to 1.6.1 (#2883)
- chore: fix some inconsistent function name in comment (#2884)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.3.2-linux-amd64 | Signature | |
arm64 | beacond-v1.3.2-linux-arm64 | Signature | |
arm64 | beacond-v1.3.2-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.3.1
Summary
This release introduces support for BRIPs 0003 and 0004.
For the Pectra11 hardfork:
- on the CL, full compatibility for BRIP-0004 in the Electra1 fork version.
- on the EL, full compatibility for BRIP-0001, BRIP-0002, and BRIP-0004 in the Prague1 fork version is expected.
For Stable Block Time:
- Stable Block Time (from cometbft) will activate via a consensus params update at chain height
9983085
and enabled at chain height9983086
.
Node operators should upgrade this to this version and corresponding genesis files on Berachain mainnet. For the ELs, bera-geth v1.011602.1 or bera-reth v1.0.0 should be used.
For Berachain mainnet, the deadline to upgrade to this version and corresponding genesis files is chain height 9983085
. This height is expected to hit before September 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
- chore(mainnet): delay pectra11 hardfork (#2882)
- Luganodes recovery on mainnet at electra1 fork (#2822)
- chore(configs): Electra1 & SBT activation for mainnet (#2879)
- feat(testing): Add Contracts for Mock PoL (#2878)
- chore: update mainnet eth-genesis for prague1 to 1gwei (#2877)
- chore(deps): bump golang.org/x/crypto from 0.40.0 to 0.41.0 (#2875)
- chore(deps): bump sigs.k8s.io/yaml from 1.5.0 to 1.6.0 (#2861)
- chore(deps): bump github.com/spf13/pflag from 1.0.6 to 1.0.7 (#2854)
- chore(deps): bump github.com/cenkalti/backoff/v5 from 5.0.2 to 5.0.3 (#2859)
- Smilee fix on mainnet at electra1 fork (#2834)
- chore(deps): bump github.com/phuslu/log from 1.0.118 to 1.0.119 (#2857)
- chore(deps): bump github.com/golang-jwt/jwt/v5 from 5.2.3 to 5.3.0 (#2867)
- align SBT consensus parameters with chain specs (#2870)
- fix: update simulated tests electra1 timestamp (#2873)
- fix(testing): use correct bera-geth cmd in e2e and sim (#2869)
- chore(release): cycle signing key (#2864)
- chore(bepolia): pectra11 hardfork (#2862)
- chore(EL): upgrade EL client images to latest/nightly builds (#2823)
- chore(deps): bump github.com/golang-jwt/jwt/v5 from 5.2.2 to 5.2.3 (#2852)
- chore(engine): Add previous proposer public key to engine API and validate (#2836)
- feat(comet): Implement ABCI query endpoint (#2737)
- fix(api): fix getBlockHeader error (#2849)
- perf(blockchain): Efficient optimistic block building (#2855)
- Make FinalizeBlock a no-op (almost) (#2812)
- chore(github-actions): update the github actions workflow to use the built-in token
GITHUB_TOKEN
(#2853) - refactor(spec): remove import cycle and cleanup (#2831) (#2851)
- chore(deps): bump golang.org/x/crypto from 0.39.0 to 0.40.0 (#2848)
- chore(deps): bump golang.org/x/sync from 0.15.0 to 0.16.0 (#2846)
- chore(deps): bump github.com/kurtosis-tech/kurtosis/api/golang from 1.10.1 to 1.10.2 (#2844)
- feat(consensus/cometbft): stable block time (#2422)
- chore(deps): bump github.com/go-playground/validator/v10 from 10.26.0 to 10.27.0 (#2837)
(#2835) - chore(EL): use bera-geth latest docker image (2/3) (#2824)
- chore(deps): bump github.com/kurtosis-tech/kurtosis/api/golang from 1.10.0 to 1.10.1 (#2833)
- chore(ci): Remove Smart Contracts from Coverage Report (#2577)
- chore(payload): do not query state when building RequestPayload (#2819)
- chore(deps): bump sigs.k8s.io/yaml from 1.4.0 to 1.5.0 (#2829)
- chore(deps): bump github.com/kurtosis-tech/kurtosis/api/golang from 1.4.3 to 1.10.0 (#2828)
- chore(deps): bump github.com/spf13/cast from 1.8.0 to 1.9.2 (#2827)
- chore(deps): bump golang.org/x/crypto from 0.38.0 to 0.39.0 (#2825)
- chore: migrate execution client from reth to bera-reth (1/3) (#2814)
- chore(deps): bump github.com/labstack/echo/v4 from 4.13.3 to 4.13.4 (#2787)
- chore(deps): bump cosmossdk.io/depinject from 1.2.0 to 1.2.1 (#2796)
- chore(deps): bump github.com/cosmos/cosmos-db from 1.1.1 to 1.1.3 (#2803)
- chore(deps): bump github.com/attestantio/go-eth2-client from 0.25.0 to 0.26.0 (#2807)
- chore(deps): bump cosmossdk.io/collections from 1.2.1 to 1.3.1 (#2810)
- chore: remove support for unsupported execution clients (#2817)
- Fix float64 unmarshal precision (#2821)
- Add CLAUDE.md file for Claude Code AI assistance (#2818)
- chore(specs): Electra1 fork scaffolding (#2811)
- chore: make function comment match function names (#2809)
- fix(genesis): eth nethermind genesis for 80094 (#2791)
- chore(node-api): Add endpoint to prove a validator's withdrawal credentials (#2808)
- fix: nilaway error in CLI genesis commands (#2802)
- chore(storage): Consolidate deposits storage 1/3 (#2778)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.3.1-linux-amd64 | Signature | |
arm64 | beacond-v1.3.1-linux-arm64 | Signature | |
arm64 | beacond-v1.3.1-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.3.0-rc1
Summary
For the Pectra11 hard fork on Bepolia testnet, this release candidate version should be used. It includes Electra1 support for BRIP-0003 and BRIP-0004. The deadline to upgrade to this version is August 5th, 2025, when stable block time will take effect. A day later on August 6th, 2025 @ 16:00:00 UTC is when the beacon chain 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 | Required | Not recommended | Not required |
Non-Payload Builders | Required | Not recommended | Not required |
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.3.0-rc1-linux-amd64 | Signature | |
arm64 | beacond-v1.3.0-rc1-linux-arm64 | Signature | |
arm64 | beacond-v1.3.0-rc1-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.2.0
Summary
This release introduces support for Pectra:
- on the CL, EIP-7002 (and necessary elements of EIP-7251) of Electra are supported for EL-triggered withdrawal requests
- on the EL, full compatibility with Prague is supported
For the Pectra hard fork on Berachain mainnet, this version should be used. The deadline to upgrade to this version is June 4th, 2025 @ 17:00:00 GMT+0000, when the beacon version will fork to Electra and the ELs are configured to fork to Prague.
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
- pre-deploys to the genesis files for nethermind (#2734)
- chore: refresh rpk (#2792)
- chore(forks): Enforce Fork Ordering (#2790)
- chore(pectra): Set mainnet timestamp (#2789)
- chore(blockchain): Added unit tests for optimistic block building (#2768)
- chore(deposits): Add Metric and Log for Excess Balance Withdrawal (#2783)
- revert(pectra): Unset mainnet fork time (#2785)
- chore(deps): bump github.com/phuslu/log from 1.0.117 to 1.0.118 (#2775)
- chore(pectra): Set mainnet timestamp (#2753)
- fix(test): Fix Deposit Contract Predeploy Code (#2780)
- chore(deps): bump cosmossdk.io/collections from 1.2.0 to 1.2.1 (#2770)
- chore(deps): bump cosmossdk.io/log from 1.5.1 to 1.6.0 (#2771)
- node-api: partial pending withdrawals (#2740)
- chore(deps): bump github.com/spf13/cast from 1.7.1 to 1.8.0 (#2767)
- chore(deps): bump cosmossdk.io/log from 1.5.0 to 1.5.1 (#2762)
- chore(deps): bump github.com/spf13/cobra from 1.8.1 to 1.9.1 (#2765)
- chore(deps): bump github.com/spf13/viper from 1.19.0 to 1.20.1 (#2763)
- chore(deps): bump cosmossdk.io/depinject from 1.1.0 to 1.2.0 (#2761)
- chore(deps): bump github.com/attestantio/go-eth2-client from 0.23.0 to 0.25.0 (#2757)
- chore(deps): bump cosmossdk.io/errors from 1.0.1 to 1.0.2 (#2756)
- chore(deps): bump cosmossdk.io/collections from 1.0.0-rc.1 to 1.2.0 (#2755)
- tests(pectra): More Simulation Tests for Pectra (#2713)
- chore(deps): bump github.com/phuslu/log from 1.0.113 to 1.0.117 (#2752)
- chore(deps): bump github.com/spf13/afero from 1.11.0 to 1.14.0 (#2751)
- chore(deps): bump github.com/rs/zerolog from 1.33.0 to 1.34.0 (#2745)
- chore(deps): bump github.com/protolambda/zrnt from 0.32.3 to 0.34.1 (#2744)
- chore(deps): bump github.com/cenkalti/backoff/v5 from 5.0.1 to 5.0.2 (#2743)
- Fix - Workflow Error on Starting Kurtosis (#2650)
- fix(tests): Override Electra timestamp in Simulation Tests. (#2750)
- chore(deps): bump github.com/go-playground/validator/v10 from 10.23.0 to 10.26.0 (#2742)
- chore(deps): bump golang.org/x/crypto from 0.35.0 to 0.38.0 (#2735)
- chore(deps): bump the go_modules group with 2 updates (#2739)
- chore(deps): bump cosmossdk.io/math from 1.4.0 to 1.5.3 (#2653)
- refactor: use slices.Contains to simplify code (#2720)
- chore(deps): bump golang.org/x/net from 0.34.0 to 0.36.0 in the go_modules group (#2597)
- chore(deps): bump cosmossdk.io/core from 1.0.0-alpha.6 to 1.0.0 (#2589)
- chore(deps): bump github.com/hashicorp/go-metrics from 0.5.3 to 0.5.4 (#2588)
- fix(bash): use env bash (#2738)
- chore(pectra): Update comments based on Bectra changes (#2731)
- fix(ci): Add Execution Request Predeploys for CI (#2733)
- fix(pectra): Spec Alignment for ExpectedWithdrawals (#2723)
- chore - Update E2E Readme with instructions to debug (#2717)
- chore(pectra): StateDB metrics (#2721)
- chore(pectra): Partial withdrawal failure metrics (#2718)
- chore(pectra): make gIndex calculations consistent with BeaconState (#2716)
- chore(pectra): Add Logger to StateDB so we can log in ExpectedWithdrawals (#2719)
- chore(state-processor): some more UTs (#2714)
- chore(pectra): Set the Bepolia Electra hardfork time (#2712)
- Chore(state transition): add unit tests around Withdrawal requests (#2708)
- chore(chain-spec): Remove env var
CHAIN_SPEC
(#2706) - refactor(pectra): clean up code of new state processing (#2709)
- [5/n] feat(pectra): Withdrawals Support (#2655)
- fix(state-processor): log deneb1 only once (#2702)
- [4/n] feat(genesis): Remove version.Genesis and allow for different fork version in Genesis (#2686)
- chore(bepolia): fix the node-id for bepolia seeds (#2698)
- [3/n] feat(pectra): Prepare beacon state for fork upgrade (#2678)
- chore: remove duplicate package imports (#2694)
- [2/n] chore(node-api): handle modified gIndexes with new Electra Beacon State (#2661)
- feat(CometBFT): reduce network traffic (#2687)
- [1/n] feat(pectra): Add Pending Partial Withdrawals to BeaconState (#2656)
- chore(devnet): Update
eth-genesis.json
formake start
(#2663) - chore(transition): Always process exactly one slot in
ProcessSlots
(#2657) - chore(node-api): Remove unused proof/ endpoints (#2660)
- feat(node-api): genesis api (#2601)
- test(pectra): Timestamp Forking Pectra Simulation Tests (4/n) (#2643)
- test(e2e): use optimistic build config for e2e test (#2652)
- feat(pectra): Timestamp based forking pectra e2e (#2644)
- chore(pectra): Add Pectra Fork Logging (3/n) (#2637)
- [2/2] chore(ssz): merkle libraries cleanup (#2647)
- [1/2] chore(pectra): cleanup misc ssz and version stuff (#2634)
- feat(fork): timestamp based forking (1/n) (#2630)
- feat(pectra): Add
engine_getPayloadV4
(#2645) - fix(pectra): Fix Bug in ForceSyncUponFinalize (#2635)
- fix(chainspec): Set EVMInfation*Deneb values in devnet spec (#2640)
- feat(pectra): Pectra Support (3/n) (#2623)
- chore(pectra): Update Simulation Test Chain Spec (2/n) (#2612)
- feat(pectra): Pectra Consensus Types (1/n) (#2618)
- chore(ssz): Make UnusedType use the ssz codec (#2624)
- chore(cli): newline after success message (#2631)
- Release - New PubKey (#2632)
- feat(node-api): Config spec API added (#2580)
- chore(networks/bepolia): add more peers and bootnodes (#2604)
- chore(configs): Warn on configs (#2620)
- chore(licenses): fix licences part 2 (#2626)
- fix(test): Fix flakiness in payload_header_test (#2625)
- chore(ssz types): Move UnusedType to Common and Define Interfaces Locally (#2617)
- chore(ssz types): replace NewVersioned attributes with generic constructor (#2616)
- chore(ssz types): replace New attributes with generic constructor (#2615)
- Fix some licensing copy. (#2619)
- chore(pectra): Standardise Fork Versions naming and modularise tests (0/n) (#2585)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.2.0-linux-amd64 | Signature | |
arm64 | beacond-v1.2.0-linux-arm64 | Signature | |
arm64 | beacond-v1.2.0-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.2.0.rc2
Summary
For the Pectra hard fork on Bepolia testnet, this release candidate version should be used. The deadline to upgrade to this version is May 7th, 2025 @ 16:00:00 GMT+0000, when the beacon version will fork to Electra and the ELs are configured to fork to Prague.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Bepolia | Mainnet | General |
---|---|---|---|
Payload Builders | Required | Not Recommended | Not Recommended |
Non-Payload Builders | Required | Not Recommended | Not Recommended |
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.2.0.rc2-linux-amd64 | Signature | |
arm64 | beacond-v1.2.0.rc2-linux-arm64 | Signature | |
arm64 | beacond-v1.2.0.rc2-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.1.4
Summary
v1.1.4 simplifies beacond
operations in a few ways:
- it prevents
beacond
from exiting with an error when transient conditions of the execution layer happen (notably RPC timeouts and EL syncing). Instead of exiting,beacond
will wait for these transient conditions to solve themselves and then it will automatically resume normal operations. This is mostly meant to simplify operations for deployments where abeacond
err-ing frequently leads to its container being restarted over and over again. - it introduces warnings around configurations which we found may compromise the node stability, notably selecting an excessive number of peers or enabling historical state queries.
- it fixes a bug in the payloadID handling which may cause block building to fail for some configurations of the Reth client.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | Recommended |
Non-Payload Builders | Recommended |
All Changes
- chore(cli): newline after success message (#2631)
- chore(configs): Warn on configs (#2620)
- chore(licenses): fix licences part 2 (#2626)
- Fix some licensing copy. (#2619)
- chore(deps): upgrade cometBFT (#2608)
- test(pectra): Pectra Phase 1 Accepance Criteria Test (#2605)
- fix(comments): Fix naming in comments (#2603)
- Only login to Docker Hub for internal use (#2607)
- Make shutdown-timeout configurable (#2594)
- chore(e2e-test): Added tests for validators GET API (#2574)
- chore(types): Delete excessive types that are unused and define interfaces locally (#2590)
- chore(config): Remove RPC Retries (#2582)
- chore(engine): revert rpc-timeout to 2 secs (#2366)
- chore(node-api) : Updated endpoints as per the spec (#2559)
- test(simulated): Add Simulation Tests for Blobs (5/n) (#2563)
- feat(simulated): Add Simulation Client for EVM State Transitions (4/n) (#2554)
- chore(node-api): slot fix and correct slot usage in error (#2578)
- chore(e2e-test): Added tests for validator balances GET API (#2566)
- chore(abci): Pass the context parameter (#2576)
- feat(cli): DB check command to verify deposit store with beacon state (#2565)
- test(context): Tests for Context Management and Shutdown (#2572)
- fix(abci): ignore comet ctx and use app ctx (#2568)
- feat(engine api): [3/3] Engine API retry (#2490)
- chore(ci): remove GCP container registry info (#2571)
- chore(deps): bump github.com/labstack/echo/v4 from 4.12.0 to 4.13.3 (#2301)
- test(simulated): Add Simulation Tests for Malicious Proposer, Crashed EL and Malicious Consensus Majority (3/n) (#2523)
- perf(blobs): don't process blobs outside of DA period (#2522)
- refactor(scripts): Scripts to start mainnet node (#2567)
- chore(node): Remove public FetchServiceRegistry (#2569)
- chore(config): Disable optimistic builds by default (#2546)
- fix(builder): Flush PayloadID cache (#2547)
- fix(coverage): Fixes to Ensure Test Coverage reflects actuality (2/n) (#2521)
- feat(simulated): Testing Framework with Simulated CometBFT (1/n) (#2411)
- fix(payload):
forceSyncUponProcess
even when block building is disabled (#2551) - chore(node-api): cleanup of DataResponse and refactor its usage (#2557)
- fix(state-transition): fixed ReadOnlyBeaconState interface - revive mockery (#2560)
- chore(state-processor): Add UTs for payload timestamp verification (#2516)
- chore(config): cleared example config (#2556)
- chore(networks):decommission bArtio and fix
make start
for Bepolia (#2555) - fix starlark error when geth is not set (#2544)
- chore(primitives): consolidated
ParseUint
usage intoU64FromString
(#2548) - chore(payload): clean fcu signature (#2550)
- chore(node-api): Validator balance endpoints and getStateValidator (#2483)
- chore(networks): add EL bootnodes (#2542)
- chore(debug): fixed launch.json (#2540)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.1.4-linux-amd64 | Signature | |
arm64 | beacond-v1.1.4-linux-arm64 | Signature | |
arm64 | beacond-v1.1.4-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.1.3
Summary
v1.1.3 fixes syncing issues in a couple of ways:
- v1.1.3 restructures Consensus Layer and Execution Layer communication to keep them in lock-step. Now every RPC communication issue among them will result in a BeaconKit termination BUT being their states in sync you can easily restart any time and keep going.
- v1.1.3 adds a
scripts/rollback_cl.sh
utility to restore synchrony among Consensus Layer and Execution Layer, in case e.g. you start from a misaligned state (CL tip is ahead of EL tip)
Context on Syncing Issues
BeaconKit 101: there are two processes, BeaconKit itself, acting as Consensus Layer and any EL (mostly unforked Geth and Reth) acting as Execution layer. These two processes can fall out of sync in a way that makes syncing a node a pretty frustrating procedure. Some findings and recommendations for operators running Geth and Reth ELs are below.
Syncing Geth
Make sure to specify --syncmode=full
among your flags. This will inform your EL that no snap sync is available so that it won’t waste time with it (snap is default in Geth).
Syncing Reth
We recommend that, while syncing a node, you add the following configs:
--engine.persistence-threshold 0
--engine.memory-block-buffer-target 0
You don’t need to keep the once the node has completed sync, but they make resuming syncing, or syncing from genesis more robust. If you are curious about these flags, here is a deeper explanation:
- Reth does not immediately store on disk every block it received from its consensus layer: by default, only block up to tip’s grandparent (tip - 2 blocks) are persisted. This is fine in Ethereum, since usually blocks are finalised way later than they are marked as latest (aka tip) by the Consensus layer, and it definitely offers some performance. However this is risky with Berachain, where you enjoy the single block finality offered by CometBFT. The default config guarantees that Reth will forget the tip’s parent, a finalized block, in case of shutdown, even if graceful. This is not acceptable in BeaconKit v1.1.3, so we use the flags above to make sure blocks are duly stored.
- Strictly speaking you don’t need those flags under normal operations. However your Consensus Layer and Execution Layer will fall out of sync even in case of a graceful shutdown. You can now use the
scripts/rollback_cl.sh
utility to recover synchrony and restart the system!
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | Recommended |
Non-Payload Builders | Strongly Recommended |
All Changes
- fix(node-api): Fix param in validator endpoint (#2539)
- fix(API): fix slot selection in validator API (#2538)
- chore(testing): modified start-reth to enforce persistence (#2536)
- Add new script for rollbacking CL to EL height (#2498)
- chore(testing): modified start-geth to enforce syncmode full (#2535)
- chore(networks): add bepolia testnet (#2532)
- Ask to delete EL data dir on make start-[client] (#2479)
- Improvements to signal handling (#2379)
- add a mainnet launch target to vscode (#2386)
- fix(testnet): Activate Deneb1 for EVM inflation (#2528)
- chore(config): activate bera minting on testnet since block 1 (#2527)
- chore(ci): Set go version to
1.23.5
in release workflow (#2525) - fix(engine api): [2/3] Add force head in FinalizeBlock (#2488)
- fix(engine api): [1/3] error on engine API errors (revive #2485) (#2508)
- fix(node-api): Implement validators endpoint filtering properly (#2467)
- fix(blobs): cleanup logging and node-api handling of blobs (#2486)
- fix(errors): Ignore requests Txs + RPC Error Handlings Fixes (#2517)
- chore(state-transition): cleaned up state in state-transition UTs (#2518)
- chore(engine): splitted up NotifyAndVerifyNewPayload (#2495)
- chore(types): Fix error type and clean up interface definition (#2515)
- fix(state-processor): stricter timestamp enforcement on execution-payload (#2512)
- fix(types): avoid panic on unmarshalling of empty inputs (#2511)
- Revert "fix(engine api): [1/3] error on engine API errors (#2485)" (#2507)
- do not reject PRs based on missing period in a comment (#2504)
- chore: Cleanup devtools.mk make targets (#2421)
- Fix broken CI due to using newest go version which is not supported b… (#2505)
- Merge pull request #2470 from berachain/02-04-explicitly_set_bash_shell_in_kurtosis_makefile
- Merge branch 'main' into 02-04-explicitly_set_bash_shell_in_kurtosis_makefile
- fix(engine api): [1/3] error on engine API errors (#2485)
- chore(generics): Remove Generics from Node Builder (#2500)
- fix(cli): unlocking rollback (#2478)
- chore(e2e): Initialize
finalBlockNum
before wait loop inWaitForFinalizedBlockNumber
(#2494) - refactor(depinject): Replace Concrete CometBFT implementation with Interface (#2487)
- fix(ci): Update Test Configs to work with new Geth version (#2489)
- chore(networks): 80094 network configs (#2484)
- refactor(cli): Refactor CollectGenesisDeposits to be callable from runtime (#2464)
- chore(state-transition): flipped transaction context attributes logic (#2451)
- Build Process - Fix Linux arm64 (#2475)
- Explicitly set bash shell in Kurtosis Makefile
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.1.3-linux-amd64 | Signature | |
arm64 | beacond-v1.1.3-linux-arm64 | Signature | |
arm64 | beacond-v1.1.3-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.1.2
Summary
Critical security fixes in this release include:
- Harden timestamp validation of EL payload
- Prevent potential panics and node halts while decoding data
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | Strongly Recommended |
Non-Payload Builders | Strongly Recommended |
All Changes
- chore(networks): 80094 network configs (#2484)
- Fix broken CI due to using newest go version which is not supported b… (#2505)
- fix(types): avoid panic on unmarshalling of empty inputs (#162)
- fix(state-processor): stricter timestamp enforcement on execution-payload (#160)
- do not reject PRs based on missing period in a comment (#2504)
- fix(ci): Update Test Configs to work with new Geth version (#2489)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.1.2-linux-amd64 | Signature | |
arm64 | beacond-v1.1.2-linux-arm64 | Signature | |
arm64 | beacond-v1.1.2-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>
BeaconKit v1.1.1
Summary
BeaconKit 1.1.1 fixes ASA-2025-001 and ASA-2025-002, which could lead to a network halt. Moreover it hardens some checks around deposits and blobs processing.
Update Priority
This table provides priorities for which classes of users should update particular components.
User Class | Priority |
---|---|
Payload Builders | Recommended |
Non-Payload Builders | Recommended |
All Changes
- chore(comet): bumped cometBFT version (#2474)
- fix(blob): hardened blob checks (#2473)
- chore(deps): bumped go version to 1.23.5 (#2472)
- chore(kurtosis): Clean up Kurtosis and Support for Cloud Deployments (#2401)
- chore(logger): Drop logger generic (#2460)
- chore(types): Cleanup unused types/funcs and expose Service Registry (#2440)
- chore(api): Dropped node api context generic (#2456)
- fix(ci): Speed up CI, Add t.Parallel and Fix Test Parallelism Issue (#2459)
- chore(ci): make e2e-test run manual (#2453)
- Revert "chore(ci): add manual run/approval for e2e tests (#2447)" (#2452)
- chore(ci): add manual run/approval for e2e tests (#2447)
- chore(types): Introduce canonical sorting of common.Version (#2437)
- refactor(deposit-storage): Refactor set-deposit-storage and execution-payload to be callable in Runtime (#2446)
- refactor(deposits): Modularize Deposit Command for Easier Testing in Runtime (#2443)
- fix(engineAPI): error on ACCEPTED payload status (#2439)
- upgrade geth depdency from 1.14.7 to 1.14.13 (#2444)
- fix(flags): Fix Payload Builder Flags (#2442)
- chore(block-builder): a few minor cleanups (#2412)
- chore(types): Remove abstraction for Gwei (#2433)
- fix(deposits): Enforce deposit inclusion (#2407)
Binaries
System | Architecture | Binary | PGP Signature |
---|---|---|---|
amd64 | beacond-v1.1.1-linux-amd64 | Signature | |
arm64 | beacond-v1.1.1-linux-arm64 | Signature | |
arm64 | beacond-v1.1.1-darwin-arm64 | Signature | |
System | Option | - | Resource |
Docker | berachain/beacon-kit |
Verifying signatures
Use gpg to verify the signature on these binary archives. This is important to make sure that the content you've downloaded is legitimate. gpg can be installed with most package managers. For example:
brew install gpg
on macapt install gpg
on Ubuntu/Debian
Once gpg is installed, import our public key into its database and verify:
- Download signing public key from here.
- Run
gpg --import berachain_release.asc
- Verify with
gpg --verify {signature}.sig {binary}.tar.gz
- This message is expected:
WARNING: This key is not certified with a trusted signature!
- To resolve the warning, trust the key by signing with your own keypair.
gpg --lsign-key <keyid>