Releases: ethstaker/eth-docker
Version 26.4.0
This is a recommended release for Reth users
Changes
- Support Reth snapshot download during sync. Requires Reth
2.0.0or later, and reduces sync time to 2-4 hours. Use theRETH_SNAPSHOTvariable in.envto enable this feature
Caveat that this does not work well with RocketPool, SSV or NodeSet. There will be an Eth Docker release to improve upon this,
when Reth2.1.0has been released. - Support Geth
pre-prague-expirysync. Requires Gethv1.17.2or later - Support
MAX_BLOBSwith Reth - Offer Web3signer during a fresh
./ethd config ./ethd installwill use deb822 format for the Docker-CE repository file
Bug fixes
- Grafana dashboard provisioning handles download failures gracefully, and only replaces a dashboard when it changed upstream
- Grandine-in-Nethermind plugin waits for Web3signer to be up before starting
Version 26.3.2
This is a bugfix release
If you are running Lodestar or Web3signer, use this version, not v26.3.1
Changes
- Adjusted Ethrex source build to be able to build the current release
Bug fixes
- Fixed collation errors after upgrade to PostgreSQL 18 from
17-bookworm - Disabled Lodestar QUIC unless
IPV6=true. There is a bug in the Lodestar QUIC library on IPv4-only hosts
Version 26.3.1
This is a recommended release for Reth users
Breaking changes
- Requires Nimbus-EL
v0.3.0or later - Requires Besu
26.2.0or later when usingrolling-expiryoraggressive-expiryor when using IPv6 - Requires Lodestar
v1.41.0or later pre-cancun-expirybecomespre-prague-expiry. If you use it, please manually adjust.env. You do not need to resync.
Changes
- Support Lodestar QUIC
- Use IPv6 auto-ENR with Lodestar
- Support Besu IPv6 P2P
- Support rolling and aggressive expiry with Besu
26.2.0 - Support Reth IPv6 P2P
- Migrate to PostgreSQL 18
- Bump Tempo to
2.10.3 - Nimbus EL uses the new
nimbusunified binary - Nimbus Verified Proxy supports
Dockerfile.binary PROXY_EXTRASfor Nimbus Verified Proxy
Bug fixes
- Fixed Reth
fullandpre-merge-expirynode types. Not all pruning parameters were being applied. - Handle a race condition on slow machines more gracefully: The CL waits up to 25 seconds for the EL to create the JWT secret file
Version 26.3.0
This is an optional release
Breaking changes
- Requires Geth
v1.17.0or later when using the built-in Grafana viagrafana.ymlorgrafana-rootless.yml
Changes
./ethd prune-historynow offers a menu of expiry options, depending on which the chosen client supports. This ranges from "pre-merge" to "pre-cancun", "rolling" and even "aggressive".- Support
MAX_BLOBSwith Geth and Nimbus EL../ethd configwill attempt to computeMAX_BLOBSdepending on upload bandwidth. This
can allow bandwidth-constrained nodes to still build locally. - Initial support for Nimbus Verified Proxy. This is useful when expiring more than pre-merge history while also needing receipts,
e.g. when running RocketPool, Nodeset or SSV. Note this client is still in alpha. - Geth sends traces to Tempo by default, when using
grafana.ymlorgrafana-rootless.yml - Support EraE file import with Geth. Note there aren't many EraE files yet, this functionality requires more testing.
- Remove Era/Era1 import from Nimbus EL. Only support EraE going forward.
- Support Reth
v1.11.0and later - Support optional pre- and post-update hooks when running
./ethd update. The optional filespre-ethd-update.shand/orpost-ethd-update.sh
are executed just before and after./ethd update, and should be bash scripts. Thanks @erl-100! - Remove deprecated
--in-process-validators=falsefrom Nimbus - All Dockerfiles explicitly add
adduserandbash, even if these are currently already shipped with the client image - From this release, Eth Docker uses a calendar version scheme
Bug fixes
- Fixed a bug that kept Lighthouse from starting when using the new graffiti append option. Thanks @victorelec14!
- Fixed a bug in the Lighthouse jwtsecret ownership check. Thanks @Olexandr88!
- Ensure
pingutility is installed before testing IPv6 connectivity - Fixed a bug that broke Geth telemetry. Thanks @marcovc!
- Remove a duplicate
gosuinstall from the Nimbus-EL Dockerfile
Version 2.19.1.0
This is an optional release. It is required when using Lodestar v1.39.0 or later.
Breaking changes
- Lighthouse VC (not relevant if only using the CL) requires version
v8.1.0or later - Erigon, if using
IPV6=true, requires version3.3.3or later - Lodestar source build (using the Lodestar binary Docker image is not affected) requires version
1.39.0or later
Changes
- Support additional parameters for MEV Boost via
MEV_EXTRASin.env. Thanks @enriquevalenzuelagalaxy! - New expiry modes:
- Reth can now be configured for "pre-cancun-expiry", "rolling-expiry" and "aggressive-expiry"
- Besu can now be configured for "rolling-expiry" and "aggressive-expiry"
- Erigon can now be configured for "rolling-expiry"
- Besu history expiry now requires a resync
- Lighthouse VC will append graffiti to indicate client type, to help with client distribution analysis
- Lighthouse auto-ENR has been enabled on IPv6. This helps users behind CGNAT who want to run dual-stack
- Grandine auto-ENR has been enabled on IPv6. This helps users behind CGNAT who want to run dual-stack
- Besu discv5 has been disabled. It is not production-ready yet
- Grandine sends traces to Tempo by default
- Tempo version has been pinned, to
v2.10.0 - Update Vero build to remove multiprocessing metrics directory. Thanks @eth2353!
- Update Lodestar build to work with Lodestar
v1.39.0or later. Thanks @nflaig! - Added an
initservice toweb3signer.yml, to reduce the amount of times web3signer needs to restart after./ethd update
Bug fixes
- Fixed max peer parameter for Ethrex
- Fixed Web3signer for Grandine in Nethermind. Thanks @sauliusgrigaitis!
- Remove additional "build" directive from Lodestar validator
- Lodestar entrypoint correctly detects the host's IPv6 address again
./ethd configqueries for VC again when Erigon's Caplin is in use./ethd configno longer warns when using Grandine in Nethermind plugin
Version 2.19.0.0
This is an optional release
Breaking changes
- Breaking only for users of Ansible and similar automation:
CL_ARCHIVE_NODEandCL_MINIMAL_NODEare gone, replaced byCL_NODE_TYPE. Ditto forEL. Seedefault.envfor implemented values.
Changes
- Support Lighthouse with zkProofs attestations (Lean Ethereum), no execution layer at all. Here Be Dragons This is a highly experimental mode and is not rational to run right now, as there will be no timeliness rewards. Adjust
.env:
COMPOSE_FILE=lighthouse.yml:mev-boost.yml
# Could be lighthouse-cl-only.yml. The main point is NO EL, plus any Grafana &c, mev-boost or commit-boost-pbs
CL_NODE_TYPE=pruned-with-zkproofs
CL_EXTRAS=--boot-nodes enr:-Oy4QJgMz9S1Eb7s13nKIbulKC0nvnt7AEqbmwxnTdwzptxNCGWjc9ipteUaCwqlu2bZDoNz361vGC_IY4fbdkR1K9iCDeuHYXR0bmV0c4gAAAAAAAAABoNjZ2MEhmNsaWVudNGKTGlnaHRob3VzZYU4LjAuMYRldGgykK1TLOsGAAAAAEcGAAAAAACCaWSCdjSCaXCEisV68INuZmSEzCxc24RxdWljgiMpiXNlY3AyNTZrMaEDEIWq41UTcFUgL8LRletpbIwrrpxznIMN_F5jRgatngmIc3luY25ldHMAg3RjcIIjKIR6a3ZtAQ
LH_SRC_BUILD_TARGET=ethproofs/zkattester-demo
LH_SRC_REPO=https://github.com/ethproofs/lighthouse
LH_DOCKERFILE=Dockerfile.source
MEV_BOOST=true
MEV_BUILD_FACTOR=100
and then run ./ethd update, wait for source build, and ./ethd up
- Support Grandine as a Nethermind plugin. This is experimental for now. Coming from
grandine-allin1.yml, you'd adjust.env:
COMPOSE_FILE=grandine-plugin-allin1.yml:nethermind.yml
# Could also be grandine-plugin.yml; plus add whatever else the user runs such as commit-boost-pbs, grafana, &c
CL_NODE=http://execution:5052
NM_DOCKER_REPO=sifrai/grandine
NM_DOCKER_TAG=unstable-nethermind-1.35.8
and then run ./ethd update followed by ./ethd up
- Nethermind gained new pruning options:
EL_NODE_TYPEcan berolling-expiry, which keeps 1 year of history by default, orpre-cancun-expiry, which does what it says on the tin. Note thatrolling-expiryis still experimental - Added Tempo support for traces to
grafana.ymlandgrafana-rootless.yml. Clients that support traces will now send them there
by default; if you know of a client that can and currently doesn't, please open an issue for it - Grandine no longer defaults to aggressive pruning. The old behavior can be sought with
CL_NODE_TYPE=aggressive-pruned - Add another Grafana dashboard for host and node monitoring
- multi-line variables with single quotes are now supported in
.env, example
HYPOTHETICAL_JSON_VAR='[
"enode:something",
"enode:anotherthing"
]
'
- Update
lido-obol.ymlfor Fusaka readiness. Thanks @nameisremus! - Added
CONTRIBUTOOR_EXTRASin.env, so users can pass additional parameters to Pandaops Contributoor - Teku heap now defaults to
8g - Switch to a new
cadvisorrepo - Lodestar source build uses Node 24. Thanks @nflaig!
- Teku and Besu run on JRE 25 when source-built
Bug fixes
- Fixed Nimbus VC
MEV_BUILD_FACTOR
Version 2.18.0.4
This is an optional release
v2.18.0.3broke./ethd update. That release has been retracted.
Changes
- Disable Prysm's beacon DB pruning, until Prysm fixes a bug related to it
- Prompt for
runcupdate on Ubuntu; note vulnerableruncversions on Debian - Change the default Hoodi checkpoint sync to
https://hoodi.checkpoint.sigp.io - Change the default Traefik tag to
3.6. Traefik3.6.1is the first to work with Docker29.0.0and later - Major style refactor and improved CI
Bug fixes
- Fix a bug keeping
./ethdfrom running on macOS. macOS now requiresgawk:brew install coreutils newt bash gawk - Introduce a
*-builderservice to avoid building the same image multiple times - Compose V1 detection works again
./ethd prune-historyworks when using Ethrex - but still does nothing ;)- Fix
./ethd updatefailure, introduced with style refactor inv2.18.0.3
Version 2.18.0.2
This release is optional, and recommended
2.18.0.0 and 2.18.0.1 broke Nimbus and Teku when
MEV_BUILD_FACTORwas set. Those releases have been retracted.
The headline feature is MEV_BUILD_FACTOR to abstract control over local block building, so home stakers
can control their upload bandwidth better post-Fusaka.
Breaking changes
- Require Ethrex
v5.0.0or later - Require mev boost
v1.10.0or later - Require Grandine
2.0.0or later - Require Vero
v1.3.0or later
Changes
- Introduce
MEV_BUILD_FACTORto control local block building.100means always build remote,1-99are percentages
of thebuilder-boost-factorof the Validator Client, where90would build locally unless remote pays at least
10% better. ./ethd configruns a speed test and suggests a build factor- Prometheus retention time is configurable. Thanks @korentzari!
- Offer Anchor SSV client on mainnet during
./ethd config - Support MEV Boost for Anchor
- Support WS Websockets for Ethrex
- Support max peers for Ethrex
- Improve ssv node sample configuration
- Increase Grandine peer count to 200. Thanks @saulusgrigaitis!
- Erigon can now be run in distributed mode, with a CL on another server
- Suggest history expiry when disk space is low
- Remove Vero CL check before starting it. It now does this itself
- Support commit boost PBS version during
./ethd version - Prompt user for Docker-CE update if it's below 28.5.2, because of the
runcvulnerabilities - Use the client defaults for max peers, do not replicate these defaults in Eth Docker
Bug fixes
./ethd update --refresh-targetsno longer touchesPG_DOCKER_TAG- Explicitly restrict Lodestar to v4 when
IPV6=false, which fixes peering - Erigon WS port is now correctly set to the value of
EL_WS_PORT - Adjusted source builds for Grandine and Ethrex
- Fixed Ethrex entrypoint when
EL_MINIMAL_NODE=false - Fix Nimbus startup failures when
MEV_BUILD_FACTORis set - Fix Teku startup failures when
MEV_BUILD_FACTORis set
Version 2.17.0.0
This release is recommended
The headline feature is support for the Ethrex and Anchor clients.
Breaking changes
- Require Erigon
3.1.0or later - Require Lodestar
1.34.1or later - Require Reth
1.8.0or later nodeexporteruseshostnetworking, which uses a configurable port and requires changes toufwif
ufw has been placed "in front of" Docker, see Cloud Security and notes in.env
Changes
- Support Ethrex execution client
- Support Anchor SSV client
- Support Prysm beacon DB pruning when
CL_MINIMAL_NODE=true - Support DDNS with
traefik-aws.yml, including automatedCNAMEcreation - Prometheus can scrape targets on the host system, using
host.docker.internal - Support Grandine doppelganger detection
./ethd keys countnow displays validator statuses- Support Reth DB repair
- Remove Fluffy and Portal support. RIP.
- Support Vero doppelganger detection
- Expired Reth prunes tx lookups
- Add Grandine dashboard to Grafana
- More linting and dependabot: Strengthen automated checks
Bug fixes
chmodof thedkg-outputdirectory fixed- Fix source builds throughout, they broke with recent Docker 28.5.x
- Fix promtail regex and time parsing
- Improve commit-boost sample config file
- Reth obeys the
LOG_LEVEL
Version 2.16.0.0
This release is recommended
The headline feature is execution layer history expiry, so an Ethereum node fits into roughly 1 TiB.
Breaking changes
- Require Besu
25.7.0, use promoted Besu pruning parameters without-X
Changes
- Support pre-merge history expiry for all execution layer clients:
./ethd prune-history - Geth archive node fresh sync uses path-based state scheme
- Enable Vero keymanager API
./ethd installcan apply host-level optimizationsext-network.ymlnow is controlled by theDOCKER_EXT_NETWORKvariable and no longer
needs to be edited directly- Remove deprecated VC parameter from Teku
- Improve Grafana dashboards
- The size of
ANCIENT_DIRis shown during./ethd space, if it is set ./ethd resync-executionalso removes contents ofANCIENT_DIR, if it is set- Add
--traceoption to./ethd updateand./ethd keys. Please be careful, the output may include secrets. - Update Lido exit oracles on Hoodi and Mainnet
- Remove pre-Pectra migration logic
- Update Siren and Prysm repo locations
- Update Eth Docker repo location to
ethstakerorganization, frometh-educators
Bug fixes
- Remove an extra
https://in default Hoodi relays - Fix
./ethd prune-rethcommand - Fix detection logic for Erigon Caplin