ethereum /go-ethereum
Go implementation of the Ethereum protocol
★ 51,473⑂ 22,109👁 2,200⑃ 14,813● 8,788▤ 237◈ 0
51,473
stars
+5
22,109
forks
2,200
watchers
14,813
prs
8,788
issues
237
releases
0
discussions
README
Go Ethereum Golang execution layer implementation of the Ethereum protocol. Automated builds are available for stable releases and the unstable master branch. Binary archives are published at https://geth.ethereum.org/downloads/. Building the source For prerequisites and detailed build instructions please read the Installation Instructions. Building geth requires both a Go (version 1.25 or later) and a C compiler. You can install them using your favourite package manager. Once the dependencies are installed, run shell make geth or, to build the full suite of utilities: shell make all Executables The go-ethereum project comes with several wrappers/executables found in the cmd directory. | Command | Description | | :--------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | geth | Our main Ethereum CLI client. It is the entry point into the Ethereum network (main-, test- or private net), capable of running as a full node (default) or archive node (retaining all historical state). It can be used by other processes as a gateway into the Ethereum network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. geth --help and the CLI page for command line options. | | devp2p | Utilities to interact with nodes on the networking layer, without running a full blockchain. | | abigen | Source code generator to convert Ethereum contract definitions into easy-to-use, compile-time type-safe Go packages. It operates on plain Ethereum contract ABIs with expanded functionality if the contract bytecode is also available. It accepts contract AB
Top issues
#15063ethclient: SubscribeFilterLogs() not respecting FilterQuery.FromBlock30 comments · 2017-08-31#30773Use hedging / noise / extra entropy to improve signature security27 comments · 2024-11-20#1855Add support for SOCKS proxy26 comments · 2015-09-29#16874geth takes over an hour to start with a lot of keys in the keystore22 comments · 2018-06-04#34744Error in block freeze operation err="canonical hash missing, can't freeze block21 comments · 2026-04-17#31586Geth just keeps rewinding after crash in hash mode17 comments · 2025-04-07#23845Client's SubscribeFilterLogs stops reporting events after some time15 comments · 2021-11-02#30591Flaky tests14 comments · 2024-10-13
Latest release
Soil Reducer (v1.17.10) v1.17.10 2026-10-23This is a quick release that postpones the Amsterdam fork on the Hoodi testnet, previously scheduled for Oct 26, 2026, 17:42:48 UTC. Hoodi node operators running v1.17.9 must upgrade before then. A new date will be set in a future release; other networks are unaffected. Snap sync now switches to snap/2 automatically once Amsterdam is active. Use --snap.v2=false or --snap.v2=true to force a protocol. Changes - Cancel the Amsterdam activation on Hoodi (36001) - Use snap/2 automatically once Amsterdam is active (35989) - Optimize DUP/SWAP dispatch in the interpreter (35959) For a f