ethereum/go-ethereum

Created Feb 21, 2021 · View the ethereum/go-ethereum repository page

Go implementation of the Ethereum protocol

Want this for your repo?

Render a free sample of any GitHub repo in seconds.

Visualize your own →

Contributors

619

Lines of Code

53,063

From

Dec 26, 2013

To

Feb 20, 2021

About ethereum/go-ethereum

Go Ethereum is the official Go implementation of the Ethereum execution layer protocol. It serves as a full client for the Ethereum network, written in Go and capable of running as a full node with complete state history, a light node that fetches data on demand, or an archive node that retains all historical data. The project provides geth, the primary command-line interface for interacting with Ethereum, whether on the main network, test networks like Holesky, or private networks.

Beyond the main geth client, the project includes several developer-focused utilities. Abigen converts Ethereum contract ABIs and Solidity source files into type-safe Go packages for programmatic interaction. The evm utility allows developers to test and debug individual Ethereum Virtual Machine bytecode snippets in isolation. Devp2p and rlpdump provide lower-level networking and data encoding tools. Geth exposes its functionality through JSON-RPC APIs accessible via HTTP, WebSocket, and IPC protocols, enabling integration with other applications and services.

The project targets users across a spectrum from everyday blockchain participants managing accounts and interacting with smart contracts to developers building decentralized applications. It requires Go 1.23 or later and a C compiler to build, and has substantial hardware requirements for full network participation, recommending at minimum 4-core CPUs, 8GB of RAM, and 1TB of storage. The codebase is licensed under LGPL v3.0 for the library portions and GPL v3.0 for the command-line binaries.

Share this video

More from ethereum

See all →