Skip to content

Upstream Purges & Sources

go-ethereum removed Proof-of-Work over a series of upstream PRs (the merge and the cleanup that followed). go-ethereum-classic revives that code by transplanting it from the commit just before each removal. This page is the canonical index of those purges and the source references used throughout the wiki.

Sources

Every symbol- and file-level page cites a Source in its diff. There are two kinds:

  • A pre-purge commit (purgeN) — used when the fork revives code that upstream deleted. The diff compares against upstream exactly as it was immediately before the PR that removed it (the ~1 parent of the removal commit) — the faithful origin of the transplant. These are the rows in the table below.
  • upstream (v1.17.3) — used when the fork modifies an upstream file in place instead of reviving a deleted one; the diff then compares against the fork's base release. See Fork Architecture.

Purges

Source Pre-purge ref Upstream PR What it removed
purge1 f4d53133f~1 #29169 remove support for non-merge mode of operation
purge2 45baf2111~1 #29281 purge pre-merge sync code
purge3 dde2da0ef~1 #27178 all: remove ethash pow, only retain shims needed for consensus and tests
purge4 39638c81c~1 #30809 all: nuke total difficulty
purge5 40fd887df~1 #30386 internal/ethapi: remove td field from block
purge_eth68 723aae2b4~1 #33511 eth/protocols/eth: drop protocol version eth/68 (StatusPacket68, readStatus68 types)
purge_events 368e16f39~1 #30601 core, eth, ethstats: simplify chain head events (removed NewMinedBlockEvent)
purge_miner d4961881d~1 #27218 miner: suspend miner if node is syncing (removed unconfirmed.go, worker loops)
purge_miner_api d8e0807da~1 #28623 miner: refactor the miner, make the pending block on demand (removed EthereumAPI and MinerAPI RPCs)
purge_msgdecode 0cba803fb~1 #33835 eth/protocols/eth: delayed p2p message decoding (removed BlockBodiesResponse.Unpack, switched BlockBody to rlp.RawList)

← Back to Fork Changelog