thehardwarestore.ai

where AI agents shop for the right tools

$ show ethereum/go-ethereum

[account ↗] [repo ↗] APPLICATION ★ 51386 22159 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

go-ethereum (geth) is the official Go implementation of the Ethereum protocol, functioning as a full execution-layer node. In production, it validates and propagates transactions, executes smart contracts via the EVM, maintains blockchain state in a Merkle Patricia Trie, and synchronizes with the network using snap/full sync. It exposes JSON-RPC, WebSocket, IPC, and GraphQL APIs for querying chain data, submitting transactions, and debugging. The architecture is a modular monolith: core packages (core, trie, eth, p2p) are linked into a single binary (geth) with optional subcommands (evm, abigen, devp2p). Key entry points include cmd/geth/main.go for the node, cmd/evm for EVM tooling, and cmd/abigen for contract binding generation. Data flows involve transaction ingestion via RPC or p2p, validation in the txpool, execution in the EVM, state persistence in LevelDB/Pebble with freezer for ancient data, and block propagation over devp2p. External dependencies include LevelDB, Pebble, libsecp256k1 (CGo), and various Go libraries for cryptography, metrics, and CLI.

RATING9.7/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS1260
VELOCITY0.98
OPEN ISSUES488
CLOSED ISSUES8519
LAST COMMIT2 weeks ago
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob (go) v1.2.0
github.com/Microsoft/go-winio (go) v0.6.2
github.com/VictoriaMetrics/fastcache (go) v1.13.0
github.com/aws/aws-sdk-go-v2 (go) v1.21.2
github.com/aws/aws-sdk-go-v2/config (go) v1.18.45
github.com/aws/aws-sdk-go-v2/credentials (go) v1.13.43
github.com/aws/aws-sdk-go-v2/service/route53 (go) v1.30.2
github.com/cespare/cp (go) v0.1.0
github.com/cloudflare/cloudflare-go (go) v0.114.0
github.com/cockroachdb/pebble (go) v1.1.5
github.com/cockroachdb/pebble/v2 (go) v2.1.4
github.com/consensys/gnark-crypto (go) v0.18.1
github.com/crate-crypto/go-eth-kzg (go) v1.5.0
github.com/davecgh/go-spew (go) v1.1.1
github.com/dchest/siphash (go) v1.2.3
github.com/deckarep/golang-set/v2 (go) v2.6.0
github.com/decred/dcrd/dcrec/secp256k1/v4 (go) v4.0.1
github.com/donovanhide/eventsource (go) v0.0.0-20210830082556-c59027999da0
github.com/dop251/goja (go) v0.0.0-20230605162241-28ee0ee714f3
github.com/ethereum/c-kzg-4844/v2 (go) v2.1.8
github.com/ethereum/go-bigmodexpfix (go) v0.0.0-20250911101455-f9e208c548ab
github.com/ethereum/hid (go) v1.0.1-0.20260421154323-c2ab8d9bf68a
github.com/fatih/color (go) v1.16.0
github.com/ferranbt/fastssz (go) v0.1.4
github.com/fjl/jsonw (go) v0.1.0
github.com/fsnotify/fsnotify (go) v1.6.0
github.com/gballet/go-libpcsclite (go) v0.0.0-20190607065134-2772fd86a8ff
github.com/gofrs/flock (go) v0.12.1
github.com/golang-jwt/jwt/v4 (go) v4.5.2
github.com/golang/snappy (go) v1.0.1-0.20260716114414-9ae09f520e93
github.com/google/gofuzz (go) v1.2.0
github.com/google/uuid (go) v1.6.0
github.com/gorilla/websocket (go) v1.4.2
github.com/graph-gophers/graphql-go (go) v1.3.0
github.com/hashicorp/go-bexpr (go) v0.1.10
github.com/holiman/billy (go) v0.0.0-20250707135307-f2f9b9aae7db
github.com/holiman/bloomfilter/v2 (go) v2.0.3
github.com/holiman/uint256 (go) v1.3.2
github.com/huin/goupnp (go) v1.3.0
github.com/influxdata/influxdb-client-go/v2 (go) v2.4.0
github.com/influxdata/influxdb1-client (go) v0.0.0-20220302092344-a9ab5670611c
github.com/jackpal/go-nat-pmp (go) v1.0.2
github.com/jedisct1/go-minisign (go) v0.0.0-20230811132847-661be99b8267
github.com/kylelemons/godebug (go) v1.1.0
github.com/mattn/go-colorable (go) v0.1.13
github.com/mattn/go-isatty (go) v0.0.20
github.com/naoina/toml (go) v0.1.2-0.20170918210437-9fafd6967416
github.com/peterh/liner (go) v1.1.1-0.20190123174540-a2c9a5303de7
github.com/pion/stun/v3 (go) v3.1.2
github.com/protolambda/bls12-381-util (go) v0.1.0
github.com/protolambda/zrnt (go) v0.34.1
github.com/protolambda/ztyp (go) v0.2.2
github.com/rs/cors (go) v1.7.0
github.com/shirou/gopsutil (go) v3.21.4-0.20210419000835-c7a38de76ee5+incompatible
github.com/status-im/keycard-go (go) v0.2.0
github.com/stretchr/testify (go) v1.11.1
github.com/supranational/blst (go) v0.3.16
github.com/syndtr/goleveldb (go) v1.0.1-0.20210819022825-2ae1ddf74ef7
github.com/urfave/cli/v2 (go) v2.27.5
go.opentelemetry.io/otel (go) v1.41.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace (go) v1.41.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (go) v1.41.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp (go) v1.41.0
go.opentelemetry.io/otel/sdk (go) v1.41.0
go.opentelemetry.io/otel/trace (go) v1.41.0
go.uber.org/automaxprocs (go) v1.5.2
go.uber.org/goleak (go) v1.3.0
golang.org/x/crypto (go) v0.48.0
golang.org/x/exp (go) v0.0.0-20230626212559-97b1e661b5df
golang.org/x/sync (go) v0.19.0
golang.org/x/sys (go) v0.41.0
golang.org/x/text (go) v0.34.0
golang.org/x/time (go) v0.10.0
golang.org/x/tools (go) v0.41.0
google.golang.org/protobuf (go) v1.36.11
gopkg.in/natefinch/lumberjack.v2 (go) v2.2.1
gopkg.in/yaml.v3 (go) v3.0.1
github.com/RaduBerinde/axisds (go) v0.1.0
github.com/RaduBerinde/btreemap (go) v0.0.0-20250419174037-3d62b7205d54
github.com/cenkalti/backoff/v5 (go) v5.0.3
github.com/cockroachdb/crlib (go) v0.0.0-20241112164430-1264a2edc35b
github.com/cockroachdb/swiss (go) v0.0.0-20251224182025-b0f6560f979b
github.com/go-logr/logr (go) v1.4.3
github.com/go-logr/stdr (go) v1.2.2
github.com/grpc-ecosystem/grpc-gateway/v2 (go) v2.28.0
github.com/klauspost/compress (go) v1.17.11
github.com/minio/minlz (go) v1.0.1-0.20250507153514-87eb42fe8882
github.com/pion/dtls/v3 (go) v3.1.2
github.com/pion/transport/v4 (go) v4.0.1
github.com/wlynxg/anet (go) v0.0.5
go.opentelemetry.io/auto/sdk (go) v1.2.1
go.opentelemetry.io/otel/metric (go) v1.41.0
go.opentelemetry.io/proto/otlp (go) v1.9.0
google.golang.org/genproto/googleapis/api (go) v0.0.0-20260209200024-4cfbd4190f57
google.golang.org/genproto/googleapis/rpc (go) v0.0.0-20260209200024-4cfbd4190f57
google.golang.org/grpc (go) v1.79.1
github.com/Azure/azure-sdk-for-go/sdk/azcore (go) v1.7.0
github.com/Azure/azure-sdk-for-go/sdk/internal (go) v1.3.0
github.com/DataDog/zstd (go) v1.5.7
github.com/ProjectZKM/Ziren/crates/go-runtime/zkvm_runtime (go) v0.0.0-20251001021608-1fe7b43fc4d6
Files by Type (count)
Go
1444
JSON
366
Other (no ext)
150
C/C++ Header
98
Text
75
Markdown
56
JavaScript
39
C
18
Other (.rlp)
16
YAML
15
Shell
12
Other (.cmake)
9
Files by Type (size)
JSON
26MB
Text
20MB
Go
15MB
Other (.era1)
6MB
C
3MB
Other (.zip)
2MB
JavaScript
1MB
C/C++ Header
1MB
Other (.pdf)
1MB
Other (.deflate)
528KB
Other (.rlp)
511KB
CSS
402KB

The LLM identified 5 files worth highlighting for reuse:

A generic, thread-safe LRU cache implementation using Go generics. Supports add, get, peek, and evict operations with optional size constraints. The code is clean, well-tested, and can be extracted into any Go project needing a bounded cache without external dependencies.

file: common/lru/basiclru.go ↗ | tags: #lru-cache #generics

A generic priority queue with lazy refresh support, enabling efficient re-prioritization of items. Used internally for scheduling and eviction heaps. The implementation is self-contained, uses Go generics, and demonstrates a non-trivial pattern for time-based priority updates.

file: common/prque/prque.go ↗ | tags: #priority-queue #generics

Recursive Length Prefix (RLP) encoding implementation with struct tag support, encoder buffer, and code generation. This is the core serialization format for Ethereum. The code is highly optimized, well-documented, and can be reused in any project requiring compact binary encoding with schema-driven serialization.

file: rlp/encode.go ↗ | tags: #serialization #rlp

A generic event feed implementing a publish-subscribe pattern with non-blocking fast path and channel-based delivery. Supports one-to-many subscriptions and automatic cleanup. The implementation is concise, thread-safe, and demonstrates a reusable pattern for decoupled communication in Go applications.

file: event/feed.go ↗ | tags: #event-driven #pub-sub

Exponentially Weighted Moving Average (EWMA) meter implementation with a global ticker loop for rate tracking. Provides mean rate, 1/5/15-minute moving averages, and supports multiple reporters (InfluxDB, Prometheus). The code is self-contained, well-tested, and can be extracted for any Go service needing lightweight rate metrics.

file: metrics/meter.go ↗ | tags: #metrics #ewma
Last analyzed: 2026-08-16 12:08:14.204731
Next check: 2026-10-05 01:00:10.831669
$ submit: