Skip to content

Releases: ethstaker/eth-docker

Version 26.7.1

Choose a tag to compare

@yorickdowne yorickdowne released this 01 Jul 17:52
Immutable release. Only release title and notes can be modified.
0f120f3

This is a mandatory release for users of Erigon, and recommended for everyone else

Breaking changes

  • Requires Erigon v3.5.0 or later
  • Requires Teku v26.7.0 or later

Changes

  • Support Erigon v3.5.0 and later
  • Support QUIC ports (UDP) in Teku v26.7.0. Be sure to allow these ports in through firewall/port forwarding!
  • Nimbus Verified Proxy supports comma-separated RPC_URLS
  • Broader support for comma-separated fallback nodes in CL_NODE, for Teku, ./ethd keys send-exit|count, ethdo, and Lighthouse legacy validator exit
  • New CL node type blob-archive, separate from archive. Not all CLs can be a blob-archive, and there is currently no good way
    to fetch historical blobs
  • CL node type pruned-with-zkproofs becomes EL node type use-cl-zkproofs. This remains highly experimental, and will not be broadly
    supported until earliest Hegotá hardfork in 2027
  • Remove clef from Geth source build: The tool moved to its own repo
  • Warn users if they use Traefik and it is older than v3.6.1 and doesn't support current Docker CE releases

Bug fixes

  • Remove check for validator-keys service. It would sporadically fail, root cause unknown but likely somewhere in Docker Compose
  • Create the backup file for tempo.yaml as the directory owner, never as root
  • Fix a regression introduced in v26.7.0 that would fail liveness checks for CL_NODE

Version 26.7.0

Choose a tag to compare

@yorickdowne yorickdowne released this 01 Jul 17:17
Immutable release. Only release title and notes can be modified.
ff4c856

This release has been retracted due to a regression in testing liveness of CL_NODE. Do not use.

Version 26.6.1

Choose a tag to compare

@yorickdowne yorickdowne released this 19 Jun 18:40
Immutable release. Only release title and notes can be modified.
3e8a8e4

This is an optional release

Changes

  • Teku uses Auto-ENR with IPv6. Requires Teku v26.6.1 or later
  • Support Reth EraE import. Requires Reth v2.4.0 or later
  • Support Nimbus EL EraE import. Requires Nimbus EL v0.3.1 or later
  • Support Nimbus EL rolling expiry. Requires Nimbus EL v0.3.1 or later
  • When using a multi-user setup, sudo less
  • Add pre-provisioned time sync drift alerts to Grafana
  • Bump Tempo to 3.0.2
  • Switch Teku/Besu/Web3signer source builds to Ubuntu 26.04
  • Adjust Reth source build to be able to build from current main

Bug fixes

  • Show correct .env diff during ./ethd update

Version 26.6.0

Choose a tag to compare

@yorickdowne yorickdowne released this 05 Jun 09:23
Immutable release. Only release title and notes can be modified.
71161fc

This is an optional release

Changes

  • Support Nethermind EraE import
  • CNAMEs can be automatically created when using traefik-cf.yml, see CNAME_LIST in .env
  • Bump Tempo to 3.0.0 and migrate configuration
  • Traefik defaults to version 3.7
  • Better support for rootless Docker
  • SSV API address defaults to 0.0.0.0; this requires a manual change for existing setups
  • Do not print the Prometheus version, just print Grafana
  • Timestamp .env.bak files during ./ethd update

Bug fixes

  • Fix Geth EraE import
  • Tempo retains traces for 14 days now, not 1 hour
  • Fix slashing protection import during ./ethd keys import - thanks @oksanaphmn !
  • cb-pbs service now restarts correctly after Docker update or reboot
  • Web3signer service to lower key security works with large number of keys

Version 26.5.0

Choose a tag to compare

@yorickdowne yorickdowne released this 12 May 10:11
Immutable release. Only release title and notes can be modified.
e82e64c

This is a recommended release

Breaking changes

  • Ethrex and max blobs requires Ethrex 10.0.0 or later
  • Nethermind and max blobs requires Nethermind 1.37.0 or later
  • Besu and max blobs requires Besu 26.4.0 or later
  • Erigon and max blobs requires Erigon 3.4.0 or later
  • Require Reth 2.2.0 or later
  • Grandine Nethermind plugin requires 1.37.0 or later
  • Nethermind and FlatDB requires 1.37.1 or later
  • Vero source build requires 1.4.0 or later

Changes

  • Better Reth download handling, requires Reth 2.1.0 or later
  • Support Reth DB migration to v2, requires Reth 2.1.0 or later
  • Support Nethermind FlatDB
  • Support a multi-user setup with eve owning the Eth Docker directory, and alice and bob having the ability to administer
    Eth Docker, when all three are in a common group such as node-admins and that group has write rights to the Eth Docker directory
  • ./ethd update --no-screen if you'd like to run ./ethd update and not have it spawn a screen session
  • Support Ethrex max blobs, requires Ethrex 10.0.0 or later
  • Support Nethermind max blobs, requires 1.37.0 or later
  • Support Besu max blobs, requires 26.4.0 or later
  • Support Erigon max blobs, requires 3.4.0 or later
  • Support Web3signer distroless image, including read-only Docker parameter
  • Provisioned Grafana alerts no longer fire on "No Data"
  • Support changed Grandine Nethermind plugin parameters
  • Progress counter for key import and deletion
  • Add command to reduce security of web3signer keys. Use on testnet, only!
  • Bump Besu and Teku build to Java 25
  • Nag user if their Docker-CE is old, to guard against accidentally disabled 3rd party repo
  • Reth uses the same port for discv4 and discv5
  • Remove Manifold finance relay
  • Enable UI access to Obol Alloy
  • Support Vero source build on 1.4.0 or later. Thanks @eth2353!
  • ETH_DOCKER_TAG=stable will always pull the latest release version during ./ethd update, instead of the current -dev version
  • Cleaner node exporter configuration
  • Grandine source builds can optionally pull in a host-built binary instead of building inside the container

Bug fixes

  • Obol Alloy service is now distinct from generic Alloy service
  • ./ethd update handles migration from Obol promtail to Obol Alloy
  • Obol Alloy correctly delivers Charon metrics
  • ./ethd keys import --non-interactive now actually is
  • ./ethd install adjusts .motd to the actual directory Eth Docker is in
  • ./ethd prune-history works correctly with Nethermind
  • Prysm archive node backfills to slot 0
  • Do not mount $DOCKER_ROOT/containers into Alloy
  • ./ethd install correctly handles chrony leap seconds on Ubuntu 26.04
  • Remove ./ethd update lock file on failure

Version 26.4.1

Choose a tag to compare

@yorickdowne yorickdowne released this 19 Apr 19:04
Immutable release. Only release title and notes can be modified.
afbd321

This is a recommended release for Vero users

Breaking changes

  • COMPOSE_FILE is now a combination of CORE_FILES and CUSTOM_FILES. If you deploy .env via Ansible or via github,
    please adjust your setup to place yml files into CORE_FILES for files that may be replaced by an ./ethd config run, and
    CUSTOM_FILES for files that should not be. Note that CORE_FILES cannot be empty.
  • ./prometheus/custom-prom.yml and ./promtail/custom-lokiurl.yml are gone. If you were remote-writing to your own Metrics store such as Mimir and your own logs store such as Loki, please re-create those entries in ./alloy/prometheus-write.alloy and ./alloy/loki-write.alloy.
  • Custom scrape targets in prometheus/conf.d will no longer be used. Please recreate them in ./alloy. You can convert the Prometheus custom scrape targets to Alloy's River format with docker run --rm -v ./prometheus/conf.d:/config grafana/alloy:latest convert -f prometheus -o /config/<my-target.alloy> /config/<my-target.yml>, then sudo chown $(id -u):$(id -g) ./prometheus/conf.d/<my-target.alloy> the resulting .alloy file and bring it to the Alloy folder with cp ./prometheus/conf.d/<my-target.alloy> ./alloy/. You can add alloy-shared.yml into CUSTOM_FILES with nano .env and then see that your scrape target works in the Alloy UI at http://<my-node-ip>:12345.

Changes

  • QUIC is default-enabled for Lodestar
  • Reth snapshot download allows any network, if the user supplied custom parameters in RETH_SNAPSHOT
  • Prepare for the next Vero release
  • Start nagging users to upgrade from Debian 11
  • ./ethd config now offers a list of MEV relays to choose from
  • metrics and logs for Grafana are now collected with Grafana Alloy, no longer with Prometheus and promtail
  • Loki and Tempo can be mapped to host or exposed via traefik, if you want to send logs and traces to them from a remote machine
  • COMPOSE_FILE is now a combination of CORE_FILES and CUSTOM_FILES. Put yml files that ./ethd config would never add, such as siren.yml or contributoor.yml, into CUSTOM_FILES. They will then survive an ./ethd config run.

Bug fixes

  • Geth, Besu and SSV now send traces correctly to Tempo
  • Fixed bugs in Lido SDVT Obol config, SSV DKG key generation and Lido CSM key generation
  • Fixed running Eth Docker with rootless Docker. Caveat that rootless is a very limited running mode, I do not know how to make P2P ports accessible in that mode.

Version 26.4.0

Choose a tag to compare

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

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

Choose a tag to compare

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

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

Choose a tag to compare

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

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

Choose a tag to compare

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

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