Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Geth v1.14.9 upgrade #389

Closed
wants to merge 82 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
1cf3b5d
params: begin v1.14.9 release cycle
fjl Aug 12, 2024
ab03c57
go.mod: remove github.com/julienschmidt/httprouter (#30290)
islishude Aug 12, 2024
bc95452
build: run 'go mod tidy' check as part of lint (#30291)
jwasinger Aug 12, 2024
bd57f35
core/txpool/blobpool: fix error message (#30247)
withzoo Aug 13, 2024
2b9d198
go.mod: upgrade to pebble v1.1.2 (#30297)
ajsutton Aug 14, 2024
c686485
core: only compute state root once (#30299)
MariusVanDerWijden Aug 15, 2024
2f2e5b0
.golangci.yml: remove lint warning for TxLookupLimit
fjl Aug 15, 2024
c4b01d8
eth/fetcher: always expect transaction metadata in announcement (#30288)
rjl493456442 Aug 15, 2024
c356847
eth/ethconfig: remove LES server config (#30298)
fjl Aug 15, 2024
7a149a1
eth/tracers/js: add coinbase addr to ctx (#30231)
achmand Aug 15, 2024
6eb42a6
eth: dial nodes from discv5 (#30302)
fjl Aug 15, 2024
43640f1
beacon/light: handle endpoint URL more gracefully (#30306)
s1na Aug 16, 2024
09d889d
core: remove withdrawal length check for state processor (#30286)
islishude Aug 16, 2024
710c3f3
vm: simplify error handling in `vm.EVM.create()` (#30292)
ARR4N Aug 16, 2024
60db6a7
internal/build: include git-date on detached head (#30320)
holiman Aug 19, 2024
8486722
build: remove mantic from ppa builds (#30322)
holiman Aug 19, 2024
41b3b30
gitignore: ignore upload-artefacts (#30325)
holiman Aug 19, 2024
84565dc
eth/catalyst: ensure period zero mode leaves no pending txs in pool (…
lightclient Aug 19, 2024
65aaf52
accounts/abi: handle ABIs with contract type parameter (#30315)
chen4903 Aug 20, 2024
3b48b16
core/rawdb: drop MigrateTable (#30331)
s1na Aug 20, 2024
fc88cea
core/vm: reuse Memory instances (#30137)
lmittmann Aug 20, 2024
693e40a
build: attempt at reproducible builds (#30321)
holiman Aug 20, 2024
d0fd133
all: update to go version 1.23.0 (#30323)
holiman Aug 20, 2024
15fb0dc
rpc: add timeout to rpc client Unsubscribe (#30318)
lightclient Aug 20, 2024
0fde506
cmd/devp2p: require dns:read, dns:edit permissions for cloudflare dep…
praetoriansentry Aug 20, 2024
3c37db7
all: clean up goerli flag and config (#30289)
stevemilk Aug 20, 2024
00294e9
cmd/utils,p2p: enable discv5 by default (#30327)
lightclient Aug 20, 2024
2a534ee
travis.yml: use focal for builds (#30319)
holiman Aug 20, 2024
df645e7
trie: use go-verkle helper for speedier (*VerkleTrie).RollBackAccount…
gballet Aug 21, 2024
733fcbb
eth/protocols/eth: handle zero-count header requests (#30305)
holiman Aug 21, 2024
30824fa
eth/tracers: avoid panic in state test runner (#30332)
holiman Aug 21, 2024
941ae33
build: fix hash for go1.23.0.linux-riscv64.tar.gz (#30335)
sandakersmann Aug 22, 2024
ada20c0
build: make go buildid static (#30342)
holiman Aug 23, 2024
020f026
trie: avoid un-needed map copy (#30343)
rjl493456442 Aug 23, 2024
c12a1c9
beacon/blsync: better error information in test (#30336)
karlb Aug 23, 2024
eaf4285
beacon/light/sync: basic tests for rangeLock (#30269)
Gealber Aug 23, 2024
0378dc8
build: debug travis build (#30344)
holiman Aug 23, 2024
1d006bd
gitignore: ignore build signatures (#30346)
holiman Aug 23, 2024
4e17f28
doc: update 2021-08-22-split-postmortem (#30351)
Ocheretovich Aug 26, 2024
a223efc
core: implement EIP-2935 (#29465)
s1na Aug 26, 2024
bfda8ae
core: add metrics for state access (#30353)
rjl493456442 Aug 26, 2024
9b5d141
core/state: fix trie prefetcher for verkle (#30354)
rjl493456442 Aug 26, 2024
87377c5
p2p/discover: fix Write method in metered connection (#30355)
ngotchac Aug 27, 2024
9eb9154
accounts/abi/bind, ethclient/simulated: check SendTransaction error i…
ceyonur Aug 27, 2024
0e5546f
core/state: semantic journalling (part 1) (#28880)
holiman Aug 28, 2024
ea3b509
signer/core/apitypes: support fixed size arrays for EIP-712 typed dat…
mdymalla Aug 28, 2024
e9467ee
consensus/beacon, core/types: add verkle witness builder (#30129)
gballet Aug 29, 2024
ab3ee99
trie, core/state: Nyota EIP-6800 & EIP-4762 spec updates (#30357)
jsign Aug 30, 2024
36a7134
Include tracerConfig in created tracing test (#30364)
karlb Sep 2, 2024
922eb03
core/state: pull the verkle trie from prefetcher for empty storage ro…
rjl493456442 Sep 2, 2024
de597af
funding.json: add funding information file (#30385)
lightclient Sep 3, 2024
dfd33c7
all: implement EIP-6110, execution layer triggered deposits (#29431)
lightclient Sep 4, 2024
b0b67be
all: remove forkchoicer and reorgNeeded (#29179)
MariusVanDerWijden Sep 4, 2024
fdb8499
core: fix compilation error (#30394)
holiman Sep 4, 2024
7ef49e3
all: remove funding verifier (#30391)
lightclient Sep 4, 2024
c3f13b2
node: fix flaky jwt-test (#30388)
holiman Sep 4, 2024
23973bd
build: increase go test timeout (#30398)
MariusVanDerWijden Sep 5, 2024
623b17b
core/state: state reader abstraction (#29761)
rjl493456442 Sep 5, 2024
5035f99
core/state: get rid of field pointer in journal (#30361)
rjl493456442 Sep 6, 2024
83775b1
build: upgrade -dlgo version to Go 1.23.1 (#30404)
sandakersmann Sep 6, 2024
8f4fac7
internal/ethapi: eth_multicall (#27720)
s1na Sep 6, 2024
88c8459
eth/fetcher: fix blob transaction propagation (#30125)
roberto-bayardo Sep 6, 2024
d718312
core/state/snapshot: port changes from 29995 (#30040)
rjl493456442 Sep 6, 2024
c70b0a9
beacon/engine/types: remove PayloadV4 (#30415)
lightclient Sep 10, 2024
ec69830
core/vm: remove panic when address is not present (#30414)
achmand Sep 11, 2024
a01e974
beacon/light/api: fixed blsync update query (#30421)
zsfelfoldi Sep 12, 2024
7c6b3f9
eth/filters: prevent concurrent access in test (#30401)
darioush Sep 13, 2024
c0b5d42
core/rawdb: more accurate description of freezer in docs (#30393)
rjl493456442 Sep 13, 2024
9be2e01
core/state, core/vm: Nyota contract create init simplification (#30409)
gballet Sep 13, 2024
f544fc3
p2p/enode: add quic ENR entry (#30283)
guillaumemichel Sep 13, 2024
07b5a04
core/tracing: fix copy/paste error+comments in reason listing (#30431)
gballet Sep 14, 2024
0dd7e82
core/txpool/blobpool: avoid possible zero index panic (#30430)
mask-pp Sep 14, 2024
ae70744
core/rawdb: remove unused transition status state accessors (#30433)
stevemilk Sep 15, 2024
4c4f212
internal: run tests in parallel (#30381)
estensen Sep 16, 2024
0342496
core/types: more easily extensible tx signing (#30372)
piersy Sep 16, 2024
ec596e0
core, trie: prealloc capacity for maps (#30437)
mask-pp Sep 16, 2024
8dd2962
core/tracing: fix typo in comment (#30443)
eltociear Sep 16, 2024
8032b63
core/tracing: add verkle gas change reasons to changelog (#30444)
s1na Sep 17, 2024
d09600f
Revert "core/rawdb: remove unused transition status state accessors" …
gballet Sep 18, 2024
f321dfa
params: release go-ethereum v1.14.9 stable (#30455)
gballet Sep 18, 2024
c350d3a
Merge pull request #30456 from ethereum/master
karalabe Sep 18, 2024
f4ea2dd
Merge branch 'refs/heads/v1.14.9' into v1.14.9
mdehoog Sep 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,14 @@ build/_vendor/pkg
/build/bin/
/geth*.zip

# used by the build/ci.go archive + upload tool
/geth*.tar.gz
/geth*.tar.gz.sig
/geth*.tar.gz.asc
/geth*.zip.sig
/geth*.zip.asc


# travis
profile.tmp
profile.cov
Expand Down
4 changes: 4 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,10 @@ issues:
- path: crypto/bn256/
linters:
- revive
- path: cmd/utils/flags.go
text: "SA1019: cfg.TxLookupLimit is deprecated: use 'TransactionHistory' instead."
- path: cmd/utils/flags.go
text: "SA1019: ethconfig.Defaults.TxLookupLimit is deprecated: use 'TransactionHistory' instead."
- path: internal/build/pgp.go
text: 'SA1019: "golang.org/x/crypto/openpgp" is deprecated: this package is unmaintained except for security fixes.'
- path: core/vm/contracts.go
Expand Down
35 changes: 18 additions & 17 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ jobs:
if: type = push
os: linux
arch: amd64
dist: noble
go: 1.22.x
dist: focal
go: 1.23.x
env:
- docker
services:
Expand All @@ -32,8 +32,8 @@ jobs:
if: type = push
os: linux
arch: arm64
dist: noble
go: 1.22.x
dist: focal
go: 1.23.x
env:
- docker
services:
Expand All @@ -49,9 +49,9 @@ jobs:
- stage: build
if: type = push
os: linux
dist: noble
dist: focal
sudo: required
go: 1.22.x
go: 1.23.x
env:
- azure-linux
git:
Expand All @@ -63,6 +63,7 @@ jobs:

# build 386
- sudo -E apt-get -yq --no-install-suggests --no-install-recommends install gcc-multilib
- git status --porcelain
- go run build/ci.go install -dlgo -arch 386
- go run build/ci.go archive -arch 386 -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds

Expand All @@ -84,7 +85,7 @@ jobs:
if: type = push
os: osx
osx_image: xcode14.2
go: 1.22.x
go: 1.23.x
env:
- azure-osx
git:
Expand All @@ -100,25 +101,25 @@ jobs:
if: type = push
os: linux
arch: amd64
dist: noble
go: 1.22.x
dist: focal
go: 1.23.x
script:
- travis_wait 45 go run build/ci.go test $TEST_PACKAGES

- stage: build
if: type = push
os: linux
dist: noble
go: 1.21.x
dist: focal
go: 1.22.x
script:
- travis_wait 45 go run build/ci.go test $TEST_PACKAGES

# This builder does the Ubuntu PPA nightly uploads
- stage: build
if: type = cron || (type = push && tag ~= /^v[0-9]/)
os: linux
dist: noble
go: 1.22.x
dist: focal
go: 1.23.x
env:
- ubuntu-ppa
git:
Expand All @@ -133,8 +134,8 @@ jobs:
- stage: build
if: type = cron
os: linux
dist: noble
go: 1.22.x
dist: focal
go: 1.23.x
env:
- azure-purge
git:
Expand All @@ -146,8 +147,8 @@ jobs:
- stage: build
if: type = cron
os: linux
dist: noble
go: 1.22.x
dist: focal
go: 1.23.x
env:
- racetests
script:
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG VERSION=""
ARG BUILDNUM=""

# Build Geth in a stock Go builder container
FROM golang:1.22-alpine as builder
FROM golang:1.23-alpine as builder

RUN apk add --no-cache gcc musl-dev linux-headers git

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.alltools
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ARG VERSION=""
ARG BUILDNUM=""

# Build Geth in a stock Go builder container
FROM golang:1.22-alpine as builder
FROM golang:1.23-alpine as builder

RUN apk add --no-cache gcc musl-dev linux-headers git

Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ archives are published at https://geth.ethereum.org/downloads/.

For prerequisites and detailed build instructions please read the [Installation Instructions](https://geth.ethereum.org/docs/getting-started/installing-geth).

Building `geth` requires both a Go (version 1.21 or later) and a C compiler. You can install
Building `geth` requires both a Go (version 1.22 or later) and a C compiler. You can install
them using your favourite package manager. Once the dependencies are installed, run

```shell
Expand Down Expand Up @@ -89,7 +89,7 @@ This command will:
This tool is optional and if you leave it out you can always attach it to an already running
`geth` instance with `geth attach`.

### A Full node on the Görli test network
### A Full node on the Holesky test network

Transitioning towards developers, if you'd like to play around with creating Ethereum
contracts, you almost certainly would like to do that without any real money involved until
Expand All @@ -98,23 +98,23 @@ network, you want to join the **test** network with your node, which is fully eq
the main network, but with play-Ether only.

```shell
$ geth --goerli console
$ geth --holesky console
```

The `console` subcommand has the same meaning as above and is equally
useful on the testnet too.

Specifying the `--goerli` flag, however, will reconfigure your `geth` instance a bit:
Specifying the `--holesky` flag, however, will reconfigure your `geth` instance a bit:

* Instead of connecting to the main Ethereum network, the client will connect to the Görli
* Instead of connecting to the main Ethereum network, the client will connect to the Holesky
test network, which uses different P2P bootnodes, different network IDs and genesis
states.
* Instead of using the default data directory (`~/.ethereum` on Linux for example), `geth`
will nest itself one level deeper into a `goerli` subfolder (`~/.ethereum/goerli` on
will nest itself one level deeper into a `holesky` subfolder (`~/.ethereum/holesky` on
Linux). Note, on OSX and Linux this also means that attaching to a running testnet node
requires the use of a custom endpoint since `geth attach` will try to attach to a
production node endpoint by default, e.g.,
`geth attach <datadir>/goerli/geth.ipc`. Windows users are not affected by
`geth attach <datadir>/holesky/geth.ipc`. Windows users are not affected by
this.

*Note: Although some internal protective measures prevent transactions from
Expand Down
7 changes: 7 additions & 0 deletions accounts/abi/abi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1218,3 +1218,10 @@ func TestUnpackRevert(t *testing.T) {
})
}
}

func TestInternalContractType(t *testing.T) {
jsonData := `[{"inputs":[{"components":[{"internalType":"uint256","name":"dailyLimit","type":"uint256"},{"internalType":"uint256","name":"txLimit","type":"uint256"},{"internalType":"uint256","name":"accountDailyLimit","type":"uint256"},{"internalType":"uint256","name":"minAmount","type":"uint256"},{"internalType":"bool","name":"onlyWhitelisted","type":"bool"}],"internalType":"struct IMessagePassingBridge.BridgeLimits","name":"bridgeLimits","type":"tuple"},{"components":[{"internalType":"uint256","name":"lastTransferReset","type":"uint256"},{"internalType":"uint256","name":"bridged24Hours","type":"uint256"}],"internalType":"struct IMessagePassingBridge.AccountLimit","name":"accountDailyLimit","type":"tuple"},{"components":[{"internalType":"uint256","name":"lastTransferReset","type":"uint256"},{"internalType":"uint256","name":"bridged24Hours","type":"uint256"}],"internalType":"struct IMessagePassingBridge.BridgeDailyLimit","name":"bridgeDailyLimit","type":"tuple"},{"internalType":"contract INameService","name":"nameService","type":"INameService"},{"internalType":"bool","name":"isClosed","type":"bool"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"canBridge","outputs":[{"internalType":"bool","name":"isWithinLimit","type":"bool"},{"internalType":"string","name":"error","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"name":"normalizeFrom18ToTokenDecimals","outputs":[{"internalType":"uint256","name":"normalized","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"name":"normalizeFromTokenTo18Decimals","outputs":[{"internalType":"uint256","name":"normalized","type":"uint256"}],"stateMutability":"pure","type":"function"}]`
if _, err := JSON(strings.NewReader(jsonData)); err != nil {
t.Fatal(err)
}
}
12 changes: 9 additions & 3 deletions accounts/abi/bind/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,9 @@ func TestWaitDeployed(t *testing.T) {
}()

// Send and mine the transaction.
backend.Client().SendTransaction(ctx, tx)
if err := backend.Client().SendTransaction(ctx, tx); err != nil {
t.Errorf("test %q: failed to send transaction: %v", name, err)
}
backend.Commit()

select {
Expand Down Expand Up @@ -116,7 +118,9 @@ func TestWaitDeployedCornerCases(t *testing.T) {
tx, _ = types.SignTx(tx, types.LatestSigner(params.AllDevChainProtocolChanges), testKey)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
backend.Client().SendTransaction(ctx, tx)
if err := backend.Client().SendTransaction(ctx, tx); err != nil {
t.Errorf("failed to send transaction: %q", err)
}
backend.Commit()
notContractCreation := errors.New("tx is not contract creation")
if _, err := bind.WaitDeployed(ctx, backend.Client(), tx); err.Error() != notContractCreation.Error() {
Expand All @@ -134,6 +138,8 @@ func TestWaitDeployedCornerCases(t *testing.T) {
}
}()

backend.Client().SendTransaction(ctx, tx)
if err := backend.Client().SendTransaction(ctx, tx); err != nil {
t.Errorf("failed to send transaction: %q", err)
}
cancel()
}
7 changes: 6 additions & 1 deletion accounts/abi/type.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,12 @@ func NewType(t string, internalType string, components []ArgumentMarshaling) (ty
typ.T = FunctionTy
typ.Size = 24
default:
return Type{}, fmt.Errorf("unsupported arg type: %s", t)
if strings.HasPrefix(internalType, "contract ") {
typ.Size = 20
typ.T = AddressTy
} else {
return Type{}, fmt.Errorf("unsupported arg type: %s", t)
}
}

return
Expand Down
5 changes: 4 additions & 1 deletion beacon/blsync/block_sync_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,10 @@ func TestBlockSync(t *testing.T) {
t.Helper()
var expNumber, headNumber uint64
if expHead != nil {
p, _ := expHead.ExecutionPayload()
p, err := expHead.ExecutionPayload()
if err != nil {
t.Fatalf("expHead.ExecutionPayload() failed: %v", err)
}
expNumber = p.NumberU64()
}
select {
Expand Down
17 changes: 1 addition & 16 deletions beacon/blsync/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,32 +56,17 @@ var (
AddFork("DENEB", 132608, []byte{144, 0, 0, 115}),
Checkpoint: common.HexToHash("0x1005a6d9175e96bfbce4d35b80f468e9bff0b674e1e861d16e09e10005a58e81"),
}

GoerliConfig = lightClientConfig{
ChainConfig: (&types.ChainConfig{
GenesisValidatorsRoot: common.HexToHash("0x043db0d9a83813551ee2f33450d23797757d430911a9320530ad8a0eabc43efb"),
GenesisTime: 1614588812,
}).
AddFork("GENESIS", 0, []byte{0, 0, 16, 32}).
AddFork("ALTAIR", 36660, []byte{1, 0, 16, 32}).
AddFork("BELLATRIX", 112260, []byte{2, 0, 16, 32}).
AddFork("CAPELLA", 162304, []byte{3, 0, 16, 32}).
AddFork("DENEB", 231680, []byte{4, 0, 16, 32}),
Checkpoint: common.HexToHash("0x53a0f4f0a378e2c4ae0a9ee97407eb69d0d737d8d8cd0a5fb1093f42f7b81c49"),
}
)

func makeChainConfig(ctx *cli.Context) lightClientConfig {
var config lightClientConfig
customConfig := ctx.IsSet(utils.BeaconConfigFlag.Name)
utils.CheckExclusive(ctx, utils.MainnetFlag, utils.GoerliFlag, utils.SepoliaFlag, utils.BeaconConfigFlag)
utils.CheckExclusive(ctx, utils.MainnetFlag, utils.SepoliaFlag, utils.BeaconConfigFlag)
switch {
case ctx.Bool(utils.MainnetFlag.Name):
config = MainnetConfig
case ctx.Bool(utils.SepoliaFlag.Name):
config = SepoliaConfig
case ctx.Bool(utils.GoerliFlag.Name):
config = GoerliConfig
default:
if !customConfig {
config = MainnetConfig
Expand Down
Loading