← All reportsPublic report

ethereum/go-ethereum

Go implementation of the Ethereum protocol

51k stars Go View on GitHubprofiled 11d ago
Try GitZoid
84PRs this week
21Contributors
0Deps scanned
0Issues found
01 · Repo overview

How go-ethereum is put together

go-ethereum (geth) is the official Go implementation of the Ethereum execution layer. It is a large modular Go monorepo: the `core` package implements blockchain state, block processing, genesis, and transaction indexing; `eth` wires the protocol handlers and exposes JSON-RPC APIs (admin, debug, eth, miner); `cmd` contains executables such as geth, evm, rlpdump, abigen, devp2p, and a ZK-VM 'keeper' tool with its own go.mod. Data flows from P2P peers or RPC into the transaction pool and block importer, through consensus-driven state transition into a key-value chain database (LevelDB/Pebble), with RPC backends reading from that store. The build is Makefile-driven with Docker images and CI scripts under build/.

Languages

GoCJavaScript

Frameworks

urfave/cli/v2gorilla/websocketgraph-gophers/graphql-gors/corsgo.opentelemetry.io/oteldop251/goja (JS console engine)

Datastores

syndtr/goleveldb (LevelDB)cockroachdb/pebble (+ pebble/v2)VictoriaMetrics/fastcacheInfluxDB clients (metrics)

Infrastructure

Docker (Dockerfile, Dockerfile.alltools)Travis CI (build/travis_keepalive.sh)OSS-Fuzz (oss-fuzz.sh)Makefile-based buildsNSIS Windows installer scripts (build/nsis.*)AWS SDK v2 / Azure Blob / Cloudflare DNS integrations

Major components

core

Implements the blockchain core: block/header validation, state transitions, genesis handling, tx indexing/pruning, and the rawdb storage layer.

eth

Full-node service wiring: Ethereum backend, P2P protocol handlers (eth/snap), peer management, sync, and the admin/debug/miner/eth JSON-RPC API implementations.

consensus

Consensus engines (ethash PoW fakers in tests, beacon wrapper) plus EIP-specific misc logic (eip1559, eip4844) used during block validation.

accounts

Account management: keystore-backed accounts, HD derivation, account manager and URL abstraction.

crypto

Cryptographic primitives: keccak256 hashing, secp256k1 signing (CGO and no-CGO variants), including a Ziren ZK-VM variant.

rpc / graphql / ethclient

JSON-RPC server/client transports (HTTP, WebSocket, IPC), GraphQL endpoint, and the typed Go client for talking to nodes.

ethdb + core/rawdb

Database abstraction over LevelDB/Pebble/memory backends and the raw key-value schema for blocks, receipts, indexes, and preimages.

console / cmd utilities

Interactive JS console via goja bridge and developer CLIs (geth, evm, rlpdump, abigen, devp2p, keeper).

Over the past month, go-ethereum development focused heavily on performance and reliability: a new parallel block execution system built on block access lists (BAL) landed alongside BAL downloading in the sync engine, plus a series of precompile caching improvements. The team also shipped a v1.17.5 release and started the v1.17.6 cycle, while fixing numerous deadlocks, data races, and edge cases across syncing, transaction pools, and RPC handling.

Week by week

2026-08-24A busy week of fixes and polish, including a sync deadlock fix, blob fetcher improvements, and faster state response processing.latest6 changes

Fix

Fixed receipt re-request deadlock

Resolved a situation where the Ethereum protocol could freeze when asking peers again for incomplete transaction receipts.

Refactor

Improved the blob fetcher

Made the component that retrieves large data 'blobs' from the network work more efficiently.

Refactor

Parallelized snap-sync state processing

State responses during fast synchronization are now handled on multiple threads instead of one at a time.

Fix

Fixed head truncation below diverged tail group

Corrected a database issue where trimming the chain's tip could misbehave when history had forked.

Feature

Added metered LRU cache variant

Introduced a cache that tracks its memory usage, now used to keep the precompile cache within budget including entry overhead.

Fix

RPC rejects null for required arguments

The remote procedure call interface now properly refuses requests where required parameters are sent as null.

2026-08-17A quieter week centered on blob reconstruction capabilities and small stability fixes.5 changes

Feature

Fast-path cell recovery for blobs

Added a quicker method to rebuild missing pieces of blob data using redundancy already present in the encoding.

Feature

Zero-KZG blob reconstruction

Enabled rebuilding complete blobs from data cells without needing cryptographic proofs first.

Fix

Replaced panic with error in debug tool

The execution witness debugging command now reports problems gracefully instead of crashing the node.

Chore

Stabilized peer discovery test

Adjusted an end-to-end discovery test to make it less flaky by using a fallback UDP setup.

Chore

Updated code for glam8

Adapted core components to a newer version of an internal library used for beacon chain types.

2026-08-10Seventeen changes landed, mostly refining precompile caching, sync behavior, and catalyst (engine API) edge cases.6 changes

Refactor

Precompile cache keyed on input directly

The cache of precomputed contract results now uses the raw input as its key rather than a hash of it, simplifying lookups.

Refactor

Cache budget counts key bytes

The memory budget for the precompile cache now accounts for the size of stored keys, not just values.

Fix

Sync markers only with explicit target

Finalized and safe checkpoint markers are no longer fabricated unless the node has a clear synchronization goal.

Fix

Head block can reorg to finalized

The engine API now allows moving the head back to the finalized block in certain situations, matching spec expectations.

Chore

Deprecated state sizer

Retired an old utility for estimating database state size across multiple packages.

Feature

GraphQL schema additions

The GraphQL interface can now expose each block's slot number and block access list hash.

2026-08-03The biggest week of the period: parallel block execution with block access lists took major steps forward, alongside BAL downloading in the syncer.6 changes

Feature

Parallel block execution with BAL

Blocks can now be processed using multiple threads guided by block access lists, which list exactly what data each transaction touches.

Feature

BAL downloading implemented

The sync engine can now fetch block access lists from peers, needed for the new parallel execution mode.

Fix

Fail fast on transaction errors

Parallel block execution now stops immediately when a transaction fails, instead of continuing wastefully.

Fix

Preimage recording fixed in parallel execution

Corrected how original input data is saved when blocks run in parallel, ensuring it isn't lost or duplicated.

Refactor

Renamed regular gas to execution gas

Standardized terminology across the codebase, renaming gas cost constants to reflect their role in execution.

Fix

Fixed BLOCKHASH cache data race

Eliminated a threading conflict where parallel workers could corrupt the cache of recent block hashes.

2026-07-27A release week: v1.17.5 shipped and the v1.17.6 cycle began, alongside the initial landing of precompile result caching and parallel execution groundwork.6 changes

Chore

Released v1.17.5

Published a new stable version of the software for users to upgrade to.

Feature

Precompile result caching

Introduced caching of results from built-in contracts so repeated identical calls run faster.

Feature

Parallel block execution groundwork

Landed the foundational implementation for running transactions in a block concurrently using block access lists.

Fix

Blob pool fallback for GetCells

When the blob-mode cache lacks data, the node now falls back to querying the main pool instead of failing.

Fix

Miner skips sealing after database errors

The block builder no longer creates new blocks if the underlying database reported a problem.

Chore

Updated snappy dependency

Refreshed a compression library used for data storage to a newer version.

03 · Security check

Dependencies and code review

0 dependencies scanned

Dependency advisories

Security Watch

No known advisories across 0 scanned dependencies.

No known advisories in the scanned dependencies.

Code review

No concrete code-level issues confirmed.

Get this report every week for your repos.

GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.

$19 a month, flat · First 10 outputs free · No card required