Skip to content

Releases: ethstaker/eth-docker

Version 26.4.0

12 Apr 13:10
Immutable release. Only release title and notes can be modified.
d3340e4

Choose a tag to compare

This is a recommended release for Reth users

Changes

  • Support Reth snapshot download during sync. Requires Reth 2.0.0 or later, and reduces sync time to 2-4 hours. Use the RETH_SNAPSHOT variable in .env to 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 Reth 2.1.0 has been released.
  • Support Geth pre-prague-expiry sync. Requires Geth v1.17.2 or later
  • Support MAX_BLOBS with Reth
  • Offer Web3signer during a fresh ./ethd config
  • ./ethd install will 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

26 Mar 07:55
Immutable release. Only release title and notes can be modified.
6654fcc

Choose a tag to compare

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

23 Mar 12:33
Immutable release. Only release title and notes can be modified.
397a411

Choose a tag to compare

This is a recommended release for Reth users

Breaking changes

  • Requires Nimbus-EL v0.3.0 or later
  • Requires Besu 26.2.0 or later when using rolling-expiry or aggressive-expiry or when using IPv6
  • Requires Lodestar v1.41.0 or later
  • pre-cancun-expiry becomes pre-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 nimbus unified binary
  • Nimbus Verified Proxy supports Dockerfile.binary
  • PROXY_EXTRAS for Nimbus Verified Proxy

Bug fixes

  • Fixed Reth full and pre-merge-expiry node 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

02 Mar 13:27
Immutable release. Only release title and notes can be modified.
a13b614

Choose a tag to compare

This is an optional release

Breaking changes

  • Requires Geth v1.17.0 or later when using the built-in Grafana via grafana.yml or grafana-rootless.yml

Changes

  • ./ethd prune-history now 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_BLOBS with Geth and Nimbus EL. ./ethd config will attempt to compute MAX_BLOBS depending 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.yml or grafana-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.0 and later
  • Support optional pre- and post-update hooks when running ./ethd update. The optional files pre-ethd-update.sh and/or post-ethd-update.sh
    are executed just before and after ./ethd update, and should be bash scripts. Thanks @erl-100!
  • Remove deprecated --in-process-validators=false from Nimbus
  • All Dockerfiles explicitly add adduser and bash, 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 ping utility is installed before testing IPv6 connectivity
  • Fixed a bug that broke Geth telemetry. Thanks @marcovc!
  • Remove a duplicate gosu install from the Nimbus-EL Dockerfile

Version 2.19.1.0

10 Feb 09:25
Immutable release. Only release title and notes can be modified.
9e67eb3

Choose a tag to compare

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.0 or later
  • Erigon, if using IPV6=true, requires version 3.3.3 or later
  • Lodestar source build (using the Lodestar binary Docker image is not affected) requires version 1.39.0 or later

Changes

  • Support additional parameters for MEV Boost via MEV_EXTRAS in .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.0 or later. Thanks @nflaig!
  • Added an init service to web3signer.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 config queries for VC again when Erigon's Caplin is in use
  • ./ethd config no longer warns when using Grandine in Nethermind plugin

Version 2.19.0.0

05 Jan 11:34
Immutable release. Only release title and notes can be modified.
f60a0a7

Choose a tag to compare

This is an optional release

Breaking changes

  • Breaking only for users of Ansible and similar automation: CL_ARCHIVE_NODE and CL_MINIMAL_NODE are gone, replaced by CL_NODE_TYPE. Ditto for EL. See default.env for 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_TYPE can be rolling-expiry, which keeps 1 year of history by default, or pre-cancun-expiry, which does what it says on the tin. Note that rolling-expiry is still experimental
  • Added Tempo support for traces to grafana.yml and grafana-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.yml for Fusaka readiness. Thanks @nameisremus!
  • Added CONTRIBUTOOR_EXTRAS in .env, so users can pass additional parameters to Pandaops Contributoor
  • Teku heap now defaults to 8g
  • Switch to a new cadvisor repo
  • 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

13 Nov 23:32
Immutable release. Only release title and notes can be modified.
5dba2ad

Choose a tag to compare

This is an optional release

v2.18.0.3 broke ./ethd update. That release has been retracted.

Changes

  • Disable Prysm's beacon DB pruning, until Prysm fixes a bug related to it
  • Prompt for runc update on Ubuntu; note vulnerable runc versions on Debian
  • Change the default Hoodi checkpoint sync to https://hoodi.checkpoint.sigp.io
  • Change the default Traefik tag to 3.6. Traefik 3.6.1 is the first to work with Docker 29.0.0 and later
  • Major style refactor and improved CI

Bug fixes

  • Fix a bug keeping ./ethd from running on macOS. macOS now requires gawk: brew install coreutils newt bash gawk
  • Introduce a *-builder service to avoid building the same image multiple times
  • Compose V1 detection works again
  • ./ethd prune-history works when using Ethrex - but still does nothing ;)
  • Fix ./ethd update failure, introduced with style refactor in v2.18.0.3

Version 2.18.0.2

09 Nov 15:18
Immutable release. Only release title and notes can be modified.
3068b50

Choose a tag to compare

This release is optional, and recommended

2.18.0.0 and 2.18.0.1 broke Nimbus and Teku when MEV_BUILD_FACTOR was 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.0 or later
  • Require mev boost v1.10.0 or later
  • Require Grandine 2.0.0 or later
  • Require Vero v1.3.0 or later

Changes

  • Introduce MEV_BUILD_FACTOR to control local block building. 100 means always build remote, 1-99 are percentages
    of the builder-boost-factor of the Validator Client, where 90 would build locally unless remote pays at least
    10% better.
  • ./ethd config runs 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 runc vulnerabilities
  • Use the client defaults for max peers, do not replicate these defaults in Eth Docker

Bug fixes

  • ./ethd update --refresh-targets no longer touches PG_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_FACTOR is set
  • Fix Teku startup failures when MEV_BUILD_FACTOR is set

Version 2.17.0.0

17 Oct 06:29
Immutable release. Only release title and notes can be modified.
fcbc9fc

Choose a tag to compare

This release is recommended

The headline feature is support for the Ethrex and Anchor clients.

Breaking changes

  • Require Erigon 3.1.0 or later
  • Require Lodestar 1.34.1 or later
  • Require Reth 1.8.0 or later
  • nodeexporter uses host networking, which uses a configurable port and requires changes to ufw if
    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 automated CNAME creation
  • Prometheus can scrape targets on the host system, using host.docker.internal
  • Support Grandine doppelganger detection
  • ./ethd keys count now 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

  • chmod of the dkg-output directory 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

04 Jul 15:20
50d23e4

Choose a tag to compare

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 install can apply host-level optimizations
  • ext-network.yml now is controlled by the DOCKER_EXT_NETWORK variable and no longer
    needs to be edited directly
  • Remove deprecated VC parameter from Teku
  • Improve Grafana dashboards
  • The size of ANCIENT_DIR is shown during ./ethd space, if it is set
  • ./ethd resync-execution also removes contents of ANCIENT_DIR, if it is set
  • Add --trace option to ./ethd update and ./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 ethstaker organization, from eth-educators

Bug fixes

  • Remove an extra https:// in default Hoodi relays
  • Fix ./ethd prune-reth command
  • Fix detection logic for Erigon Caplin