Skip to content

all: upgrade minimum Go version to 1.25#19167

Closed
Copilot wants to merge 13 commits intoanacrolix/drop-go1.24-mainfrom
copilot/sub-pr-19109
Closed

all: upgrade minimum Go version to 1.25#19167
Copilot wants to merge 13 commits intoanacrolix/drop-go1.24-mainfrom
copilot/sub-pr-19109

Conversation

Copy link
Contributor

Copilot AI commented Feb 13, 2026

Bumps minimum Go version from 1.24 to 1.25 and removes compatibility shims for older versions.

Build configuration

  • Update go.mod, CI workflows, Dockerfiles, Makefile to require Go 1.25
  • Update documentation references

Removed compatibility code

  • common/synctest: Merge versioned files, remove go1.24 shim (synctest.Test now available natively)
  • node/debug: Remove trace fallback for go<1.5
  • common/crypto/blake2b: Remove SSE4-only fallback for go<1.7
  • Strip redundant //go:build version constraints

Branch history
Rebased onto latest main (2423c3d) to incorporate recent changes.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

bloxster and others added 11 commits February 13, 2026 09:21
## Network and Peers

- Updated `--v5disc` default value
- Added description for `--discovery.parallelism value` and
`--discovery.ban-threshold value`

### Options

- Updated options --h list with v3.3.7
…ery (#18933)

Fixes #18195.

This started as an attempt to carefully pull fixes for possible issues
with netrestrict to discovering the upstream changes are quite
significant.

## Packages synced from go-ethereum

The following packages are forked in-tree from `go-ethereum` (synced to
v1.16.8):

| Erigon package | go-ethereum package |
|---|---|
| `p2p/` | `p2p/` |
| `p2p/discover/` | `p2p/discover/` |
| `p2p/discover/v4wire/` | `p2p/discover/v4wire/` |
| `p2p/discover/v5wire/` | `p2p/discover/v5wire/` |
| `p2p/dnsdisc/` | `p2p/dnsdisc/` |
| `p2p/enode/` | `p2p/enode/` |
| `p2p/enr/` | `p2p/enr/` |
| `p2p/event/` | `event/` |
| `p2p/netutil/` | `p2p/netutil/` |
| `p2p/rlpx/` | `p2p/rlpx/` |
| `common/mclock/` | `common/mclock/` |
| `common/lru/` | `common/lru/` |

All packages are vendored locally with no
`github.com/ethereum/go-ethereum` module dependency.

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
### summary

- Change `>=` to `>` in all three `findMergeRange` implementations
(Domain, II, History) so that a later file with the same `from` but
larger `to` replaces the current best, producing the largest
power-of-2-aligned merge in a single pass
- Guard `iit.mergeFiles` call in `HistoryRoTx.mergeFiles` with
`r.index.needMerge` to avoid panic when only history needs merging
(index already merged means `from=0, to=0` which hits the `startTxNum ==
endTxNum` assert)
- Update test expectations and comments to match new behavior

### context

- some offline commands like stage_exec or commitment rebuild will
produce bunch of smaller files which then need to be merged e,g 0.16,
16-32,32-48, 48-64
- previous logic will merge first 2 files, then the 3 files.
- this PR changes that to merge all files directly, reducing amount
spent in merging files.
Store BALs in DB, up to reorg depth
Fixes #19076

1. Data race: `SubscribeReceipts` inserted a partially-initialized
filter into the shared map via `insertReceiptsFilter`, then set fields
like `allTxHashes` after the lock was released. Meanwhile,
`distributeReceipt` could read those fields concurrently. Fix: build the
filter completely before acquiring the lock and inserting it into the
map.

2. Timing issue: `filters.New` spawns a goroutine that calls
`ethBackend.SubscribeReceipts`, which blocks eventually stores the
`receiptsRequestor`. If a client calls `ff.SubscribeReceipts` before it
gets stored, the filter request is silently dropped, and the server
never learns about the subscription - so it never sends receipts, and
the test hangs forever. Fix: when the requestor is not set, set a
`pendingReceiptsUpdate` flag; once `SubscribeReceipts` stores the
requestor, it calls the `onReady` callback which checks the flag and
sends the deferred filter update.
Fresh commit on a PR cancel test-hive CI jobs triggered by previous
commits.
from and to are currently same:

```
INFO[02-12|10:38:04.617] [6/8 Execution] serial starting          from=29542423 to=29542422 initialTxNum=202940290 initialBlockTxOffset=0 lastFrozenStep=128 initialCycle=true isForkValidation=false isBlockProduction=false
INFO[02-12|10:38:24.619] [6/8 Execution] serial executed          blk=29545691 blks=3269 blk/s=163 txs=31.07k tx/s=1.55k gas/s=264.98M tgas/s=0(0) aratio=0.0 tdur=0s trdur=0s(0.00%) rd=0 rd/s=0 buf=166.3MB/512.0MB bdur=4ms ucgas=5.30G alloc=8.1GB sys=24.3GB isForkValidation=false isBlockProduction=false isApplyingBlocks=true
INFO[02-12|10:38:44.620] [6/8 Execution] serial executed          blk=29549581 blks=3890 blk/s=194 txs=31.54k tx/s=1.57k gas/s=280.92M tgas/s=0(0) aratio=0.0 tdur=0s trdur=0s(0.00%) rd=0 rd/s=0 buf=281.5MB/512.0MB bdur=4ms ucgas=1
```

- also simplified the if condition when log is printed
Copilot AI and others added 2 commits February 13, 2026 23:47
This is a rebased version of the Go 1.25 upgrade PR on top of the latest main branch.

Changes include:
- Bump minimum Go version from 1.24 to 1.25 across go.mod, CI workflows, Dockerfiles, Makefile, and documentation
- Remove dead compatibility code for Go versions prior to 1.25: synctest go1.24 shim, node/debug trace fallback (go<1.5), blake2b SSE4-only fallback (go<1.7)
- Strip now-redundant //go:build version constraints
- Merge synctest versioned files and fix gofmt formatting

Co-authored-by: anacrolix <988750+anacrolix@users.noreply.github.com>
Copilot AI changed the title [WIP] Update minimum Go version to 1.25 across project all: upgrade minimum Go version to 1.25 Feb 13, 2026
Copilot AI requested a review from anacrolix February 13, 2026 23:51
@anacrolix
Copy link
Contributor

idiot AI

@anacrolix anacrolix closed this Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants