github ethereum/go-ethereum v1.9.24
Akantha (v1.9.24)

Geth v1.9.24 is a security release. It is built with Go v1.15.5, fixing CVE-2020-28362, which has a critical impact for Ethereum. This release also contains a fix for a consensus issue related to mining, which would have triggered a chain split on January 1st 2021.

We recommend everyone to upgrade to this release or rebuild with Go 1.15.5.

Although we publish pre-built binaries for many platforms, certain systems may not have Go 1.15.5 available yet. Notably, our official Docker images will most probably not use Go 1.15.5 due to the base image not being updated yet. Please check the end of the release notes on how you can build your custom Docker image with Go 1.15.5.

If you are building geth from source, please ensure you are building with Go v1.15.5 or above. We do recommend using the latest Geth version, but if you are not mining and cannot upgrade to geth v1.9.24, please rebuild your current version with Go v1.15.5.

Other changes in this release:

  • Add YOLOv2 testnet definition (#21509, #21745, #21747, #21749).
  • Include the RETURNDATA field to VM traces (#21715).
  • Add fuzz targets for the new stack trie code (#21799).
  • Small optimizations in transaction root derivation (#21728).
  • Further polishes on the black-box eth protocol tester (#21782).
  • Maintain one more snapshot diff layer in preparation of pruning (#21730).
  • Prevent serving snap sync data while snapshot not fully generated (#21682).
  • Implement TAP output for p2p protocol test suites (#21760).
  • Improve snapshot recovery to allow resuming generation after a crash (#21594, #21775).

Fixed bugs in this release:

  • Fix ethash mining DAG generation for >4GB files (#21793, #21803).
  • Fix a snapshot data corruption if it crashes mid generation (#21804).
  • Fix transaction indexing to better support graceful shutdowns (#21331).
  • Fix a regression that cause the console to terminate on Ctrl+C (#21660).
  • Fix an RPC crash caused by an invalid AccountRange request (#21710).
  • Fix a peer disconnection issue between unsynced LES servers (#21761).
  • Fix an abigen regression that silently discarded an EVM error (#21743).
  • Fix Ledger version parsing to correctly detect data-sign support (#21733).

For a full rundown of the changes please consult the Geth 1.9.24 release milestone


You can use the following Dockerfile to build a custom Geth image with Go 1.15.5 while upstream base images get pushed (they usually take quite a few hours):

# Build Geth in a stock Go builder container
FROM golang:1.15-alpine as builder

RUN apk add --no-cache make gcc musl-dev linux-headers git bash

# Temporarily pull a custom Go bundle
ADD https://golang.org/dl/go1.15.5.src.tar.gz /tmp/go.tar.gz
RUN (cd /tmp && tar -xf go.tar.gz)
RUN (cd /tmp/go/src && ./make.bash)
ENV PATH="/tmp/go/bin:${PATH}"

ADD . /go-ethereum
RUN cd /go-ethereum && make geth

# Pull Geth into a second stage deploy alpine container
FROM alpine:latest

RUN apk add --no-cache ca-certificates
COPY --from=builder /go-ethereum/build/bin/geth /usr/local/bin/

EXPOSE 8545 8546 30303 30303/udp
ENTRYPOINT ["geth"]

As with all our previous releases, you can find the:

latest releases: v1.10.1, v1.10.0, v1.9.25...
3 months ago