Skip to content

Commit e6ed88e

Browse files
authored
Merge branch 'ethereum:master' into gethintegration
2 parents 001565b + 9fd3f8a commit e6ed88e

File tree

106 files changed

+6323
-1419
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+6323
-1419
lines changed

.gitea/workflows/release-cron.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Release Builds (cron)
2+
3+
on:
4+
schedule:
5+
cron: '0 0 * * *'
6+
7+
jobs:
8+
azure-cleanup:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
13+
- name: Set up Go
14+
uses: actions/setup-go@v5
15+
with:
16+
go-version: 1.24
17+
cache: false
18+
19+
- name: Run cleanup script
20+
run: |
21+
go run build/ci.go purge -store gethstore/builds -days 14
22+
23+
ppa:
24+
name: PPA Upload (master)
25+
runs-on: ubuntu-latest
26+
steps:
27+
- uses: actions/checkout@v4
28+
29+
- name: Set up Go
30+
uses: actions/setup-go@v5
31+
with:
32+
go-version: 1.24
33+
cache: false
34+
35+
- name: Install deb toolchain
36+
run: |
37+
apt-get -yq --no-install-suggests --no-install-recommends install devscripts debhelper dput fakeroot
38+
39+
- name: Run ci.go
40+
run: |
41+
echo '|1|7SiYPr9xl3uctzovOTj4gMwAC1M=|t6ReES75Bo/PxlOPJ6/GsGbTrM0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0aKz5UTUndYgIGG7dQBV+HaeuEZJ2xPHo2DS2iSKvUL4xNMSAY4UguNW+pX56nAQmZKIZZ8MaEvSj6zMEDiq6HFfn5JcTlM80UwlnyKe8B8p7Nk06PPQLrnmQt5fh0HmEcZx+JU9TZsfCHPnX7MNz4ELfZE6cFsclClrKim3BHUIGq//t93DllB+h4O9LHjEUsQ1Sr63irDLSutkLJD6RXchjROXkNirlcNVHH/jwLWR5RcYilNX7S5bIkK8NlWPjsn/8Ua5O7I9/YoE97PpO6i73DTGLh5H9JN/SITwCKBkgSDWUt61uPK3Y11Gty7o2lWsBjhBUm2Y38CBsoGmBw==' >> ~/.ssh/known_hosts
42+
go run build/ci.go debsrc -upload ethereum/ethereum -sftp-user geth-ci -signer "Go Ethereum Linux Builder <geth-ci@ethereum.org>"

.gitea/workflows/release.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Release Builds (push)
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
7+
jobs:
8+
linux:
9+
name: Linux Build
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@v4
13+
14+
- name: Set up Go
15+
uses: actions/setup-go@v5
16+
with:
17+
go-version: 1.24
18+
cache: false
19+
20+
- name: display environment
21+
run: |
22+
env
23+
24+
- name: Run build
25+
run: |
26+
go run build/ci.go install
27+
28+
docker:
29+
name: Docker Image
30+
runs-on: ubuntu-latest
31+
steps:
32+
- uses: actions/checkout@v4
33+
34+
- name: Set up QEMU
35+
uses: docker/setup-qemu-action@v3
36+
37+
- name: Set up Docker Buildx
38+
uses: docker/setup-buildx-action@v3
39+
40+
- name: Set up Go
41+
uses: actions/setup-go@v5
42+
with:
43+
go-version: 1.24
44+
cache: false
45+
46+
- name: Run docker build
47+
run: |
48+
go run build/ci.go dockerx -platform linux/amd64,linux/arm64,linux/riscv64

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ accessible from the outside.
162162

163163
As a developer, sooner rather than later you'll want to start interacting with `geth` and the
164164
Ethereum network via your own programs and not manually through the console. To aid
165-
this, `geth` has built-in support for a JSON-RPC based APIs ([standard APIs](https://ethereum.github.io/execution-apis/api-documentation/)
165+
this, `geth` has built-in support for a JSON-RPC based APIs ([standard APIs](https://ethereum.org/en/developers/docs/apis/json-rpc/)
166166
and [`geth` specific APIs](https://geth.ethereum.org/docs/interacting-with-geth/rpc)).
167167
These can be exposed via HTTP, WebSockets and IPC (UNIX sockets on UNIX based
168168
platforms, and named pipes on Windows).

build/checksums.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# This file contains sha256 checksums of optional build dependencies.
22

3-
# version:spec-tests pectra-devnet-6@v1.0.0
3+
# version:spec-tests v4.5.0
44
# https://github.com/ethereum/execution-spec-tests/releases
5-
# https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-6%40v1.0.0/
6-
b69211752a3029083c020dc635fe12156ca1a6725a08559da540a0337586a77e fixtures_pectra-devnet-6.tar.gz
5+
# https://github.com/ethereum/execution-spec-tests/releases/download/v4.5.0/
6+
58afb92a0075a2cb7c4dec1281f7cb88b21b02afbedad096b580f3f8cc14c54c fixtures_develop.tar.gz
77

88
# version:golang 1.24.3
99
# https://go.dev/dl/

build/ci.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ func doTest(cmdline []string) {
332332
// downloadSpecTestFixtures downloads and extracts the execution-spec-tests fixtures.
333333
func downloadSpecTestFixtures(csdb *download.ChecksumDB, cachedir string) string {
334334
ext := ".tar.gz"
335-
base := "fixtures_pectra-devnet-6" // TODO(s1na) rename once the version becomes part of the filename
335+
base := "fixtures_develop"
336336
archivePath := filepath.Join(cachedir, base+ext)
337337
if err := csdb.DownloadFileFromKnownURL(archivePath); err != nil {
338338
log.Fatal(err)

cmd/devp2p/internal/ethtest/conn.go

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,9 @@ func (s *Suite) dialAs(key *ecdsa.PrivateKey) (*Conn, error) {
6666
return nil, err
6767
}
6868
conn.caps = []p2p.Cap{
69-
{Name: "eth", Version: 67},
70-
{Name: "eth", Version: 68},
69+
{Name: "eth", Version: 69},
7170
}
72-
conn.ourHighestProtoVersion = 68
71+
conn.ourHighestProtoVersion = 69
7372
return &conn, nil
7473
}
7574

@@ -156,7 +155,7 @@ func (c *Conn) ReadEth() (any, error) {
156155
var msg any
157156
switch int(code) {
158157
case eth.StatusMsg:
159-
msg = new(eth.StatusPacket)
158+
msg = new(eth.StatusPacket69)
160159
case eth.GetBlockHeadersMsg:
161160
msg = new(eth.GetBlockHeadersPacket)
162161
case eth.BlockHeadersMsg:
@@ -229,9 +228,21 @@ func (c *Conn) ReadSnap() (any, error) {
229228
}
230229
}
231230

231+
// dialAndPeer creates a peer connection and runs the handshake.
232+
func (s *Suite) dialAndPeer(status *eth.StatusPacket69) (*Conn, error) {
233+
c, err := s.dial()
234+
if err != nil {
235+
return nil, err
236+
}
237+
if err = c.peer(s.chain, status); err != nil {
238+
c.Close()
239+
}
240+
return c, err
241+
}
242+
232243
// peer performs both the protocol handshake and the status message
233244
// exchange with the node in order to peer with it.
234-
func (c *Conn) peer(chain *Chain, status *eth.StatusPacket) error {
245+
func (c *Conn) peer(chain *Chain, status *eth.StatusPacket69) error {
235246
if err := c.handshake(); err != nil {
236247
return fmt.Errorf("handshake failed: %v", err)
237248
}
@@ -304,7 +315,7 @@ func (c *Conn) negotiateEthProtocol(caps []p2p.Cap) {
304315
}
305316

306317
// statusExchange performs a `Status` message exchange with the given node.
307-
func (c *Conn) statusExchange(chain *Chain, status *eth.StatusPacket) error {
318+
func (c *Conn) statusExchange(chain *Chain, status *eth.StatusPacket69) error {
308319
loop:
309320
for {
310321
code, data, err := c.Read()
@@ -313,12 +324,16 @@ loop:
313324
}
314325
switch code {
315326
case eth.StatusMsg + protoOffset(ethProto):
316-
msg := new(eth.StatusPacket)
327+
msg := new(eth.StatusPacket69)
317328
if err := rlp.DecodeBytes(data, &msg); err != nil {
318329
return fmt.Errorf("error decoding status packet: %w", err)
319330
}
320-
if have, want := msg.Head, chain.blocks[chain.Len()-1].Hash(); have != want {
321-
return fmt.Errorf("wrong head block in status, want: %#x (block %d) have %#x",
331+
if have, want := msg.LatestBlock, chain.blocks[chain.Len()-1].NumberU64(); have != want {
332+
return fmt.Errorf("wrong head block in status, want: %d, have %d",
333+
want, have)
334+
}
335+
if have, want := msg.LatestBlockHash, chain.blocks[chain.Len()-1].Hash(); have != want {
336+
return fmt.Errorf("wrong head block in status, want: %#x (block %d) have %#x",
322337
want, chain.blocks[chain.Len()-1].NumberU64(), have)
323338
}
324339
if have, want := msg.ForkID, chain.ForkID(); !reflect.DeepEqual(have, want) {
@@ -348,13 +363,14 @@ loop:
348363
}
349364
if status == nil {
350365
// default status message
351-
status = &eth.StatusPacket{
366+
status = &eth.StatusPacket69{
352367
ProtocolVersion: uint32(c.negotiatedProtoVersion),
353368
NetworkID: chain.config.ChainID.Uint64(),
354-
TD: chain.TD(),
355-
Head: chain.blocks[chain.Len()-1].Hash(),
356369
Genesis: chain.blocks[0].Hash(),
357370
ForkID: chain.ForkID(),
371+
EarliestBlock: 0,
372+
LatestBlock: chain.blocks[chain.Len()-1].NumberU64(),
373+
LatestBlockHash: chain.blocks[chain.Len()-1].Hash(),
358374
}
359375
}
360376
if err := c.Write(ethProto, eth.StatusMsg, status); err != nil {

cmd/devp2p/internal/ethtest/protocol.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const (
3232
// Unexported devp2p protocol lengths from p2p package.
3333
const (
3434
baseProtoLen = 16
35-
ethProtoLen = 17
35+
ethProtoLen = 18
3636
snapProtoLen = 8
3737
)
3838

0 commit comments

Comments
 (0)