Go Ethereum (Geth) logo

Go Ethereum (Geth)

Golang execution layer client for the Ethereum protocol with JSON-RPC access and private network support

Repository activity
  • Stars51.2k
  • Forks21.9k
  • Open Issues381
ethereum-go-ethereum health score - Linux Foundation Insights
License

LGPL-3.0

Languages
  • Go
  • C
  • JavaScript
Go Ethereum (Geth) screenshot

About Go Ethereum (Geth)

Go Ethereum, known as Geth, is the most widely used execution-layer client for the Ethereum protocol, written in Go. Running it makes a machine a full Ethereum node: it syncs the blockchain, validates transactions, and lets you query and interact with the network through a console or JSON-RPC instead of a hosted service.

Geth exposes both standard and geth-specific APIs over HTTP, WebSockets, and IPC. It runs in snap-sync mode by default, can be configured with TOML files, and supports private networks, a simulated backend, Dev Mode, and Kurtosis-based test networks.

Binaries are published for stable releases and the unstable master branch. The library code is licensed under LGPLv3, while the command-line binaries are licensed under GPLv3.

Key features

  • Standard and geth-specific JSON-RPC APIs
  • Access over HTTP, WebSockets, and IPC
  • Interactive console for local node interaction
  • Snap-sync mode enabled by default
  • Private network and test network setup

Details

On GitHub since
2013
Role
Ethereum execution client
Language
Go
License
LGPLv3 library, GPLv3 binaries
Sync
Snap-sync by default
Platforms
Windows, macOS, Linux