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

Merge with latest upstream #107

Merged
merged 89 commits into from
Mar 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
5ccc99b
travis, build: update Go to 1.20.1 (#26653)
karalabe Feb 16, 2023
08bf8a6
core: check genesis state presence by disk read (#26703)
rjl493456442 Feb 16, 2023
645e3e8
core, eth/downloader: make body validation more strict (#26704)
holiman Feb 16, 2023
13d7de7
eth/downloader: fix empty-body case in queue fetchresult (#26707)
holiman Feb 16, 2023
e9d4249
eth/downloader: fix typo (#26716)
ucwong Feb 16, 2023
4d35256
all: remove deprecated uses of math.rand (#26710)
holiman Feb 16, 2023
7696106
params: go-ethereum v1.11.1 stable
holiman Feb 16, 2023
b40c109
params: begin v1.11.2 release cycle
holiman Feb 16, 2023
6428663
eth/catalyst: send INVALID instead of INVALID_BLOCK_HASH (#26696)
MariusVanDerWijden Feb 17, 2023
a0d63bc
ci: disable coverage reporting in appveyor and travis
holiman Feb 17, 2023
15e5e61
eth/catalyst: request too large error (#26722)
rkrasiuk Feb 17, 2023
7c749c9
core/trie: remove trie tracer (#26665)
holiman Feb 19, 2023
1db978c
rpc: fix unmarshaling of null result in CallContext (#26723)
fjl Feb 19, 2023
2166c86
build: ship bootstrapper Go along with builder for PPA (#26731)
karalabe Feb 20, 2023
e1e2781
build: fix setting env var, temp early exit
karalabe Feb 20, 2023
4ec4235
build: fix gobootstrap path for the PPA
karalabe Feb 20, 2023
a43efce
build: add some PPA debug logs, sigh
karalabe Feb 20, 2023
1652684
internal/build: revert raising the chunk size for PPA
karalabe Feb 20, 2023
c02334b
build: yet another weird PPA fix
karalabe Feb 20, 2023
4519054
build: fix (finaly?) the PPA env vars for Go bootstrapping
karalabe Feb 20, 2023
41dee26
build: fix Go 1.19.0 bootstrapper issues on 386 PPA
karalabe Feb 20, 2023
ba4267f
build: enable Lunar Lobster PPA builds
karalabe Feb 20, 2023
13ef21d
Revert "core/trie: remove trie tracer (#26665)" (#26732)
rjl493456442 Feb 20, 2023
7d4db69
cmd/geth: clarify dumpconfig options (#26729)
swkim101 Feb 21, 2023
90d2551
core, eth: merge snap-sync chain download progress logs (#26676)
karalabe Feb 21, 2023
6d2d126
core: fix accessor mismatch for genesis state (#26747)
holiman Feb 21, 2023
2f20fd3
core/rawdb: expose chain freezer constructor without internals (#26748)
karalabe Feb 21, 2023
fe01a2f
all: use unified emptyRootHash and emptyCodeHash (#26718)
rjl493456442 Feb 21, 2023
4034c67
eth/filters: fix a breaking change and return rpctransaction (#26757)
yierx Feb 22, 2023
f86f048
common/math: allow HexOrDecimal to accept unquoted decimals too (#26758)
karalabe Feb 22, 2023
73b01f4
params: release Geth v1.11.2
karalabe Feb 22, 2023
f6a7cc6
params: begin v.1.11.3 release cycle
karalabe Feb 22, 2023
a36c68f
log: improve documentation (#26753)
naterarmstrong Feb 22, 2023
09a9ccd
core/rawdb, node: use standalone flock dependency (#26633)
holiman Feb 23, 2023
b3ae073
eth: use the last announced finalized block as the sync ancient limit…
karalabe Feb 23, 2023
ee530c0
Merge pull request #26721 from holiman/nocover
karalabe Feb 23, 2023
c155c8e
cmd/devp2p: faster crawling + less verbose dns updates (#26697)
holiman Feb 27, 2023
2ad150d
eth/tracers: add native flatCallTracer (aka parity style tracer) (#26…
ziogaschr Feb 28, 2023
2ea48f8
core: improve withdrawal index assignment in GenerateChain (#26756)
Rjected Feb 28, 2023
98b0ea6
ethdb/pebble: fix range compaction (#26771)
rjl493456442 Feb 28, 2023
2bb622c
ethdb/pebble: fix max memorytable size (#26776)
rjl493456442 Feb 28, 2023
e1b98f4
ethclient: include withdrawals in ethclient block responses (#26778)
peterbitfly Feb 28, 2023
cd31f2d
all: change chain head markers from block to header (#26777)
karalabe Mar 2, 2023
19f74fa
core/rawdb, ethdb/pebble: disable pebble on openbsd (#26801)
karalabe Mar 3, 2023
0101895
core: fix a merge fault (#26802)
karalabe Mar 3, 2023
403cac7
README, go.mod, event, internal/version: bump min Go to 1.19 (#26803)
karalabe Mar 3, 2023
27e5982
travi: remove strange leftover Go version
karalabe Mar 3, 2023
d865a5d
core, params: schedule Shanghai on goerli (#26795)
MariusVanDerWijden Mar 6, 2023
4c23fe9
eth: remove admin.peers[i].eth.head and difficulty (#26804)
karalabe Mar 6, 2023
8718614
core/types: add EffectiveGasPrice in Receipt (#26713)
fjl Mar 6, 2023
5bc2ef9
core, eth/catalyst: fix race conditions in tests (#26790)
MariusVanDerWijden Mar 6, 2023
544e4a7
metrics: improve accuracy of CPU gauges (#26793)
turboboost55 Mar 6, 2023
4688d3c
ethclient: fix panic when requesting missing blocks (#26817)
fjl Mar 7, 2023
77e33e5
core, miner: revert block gas counter in case of invalid transaction …
rjl493456442 Mar 7, 2023
39be753
internal/ethapi: add tests for transaction types JSON marshal/unmarsh…
ajsutton Mar 7, 2023
cb1f6bd
cmd/evm: correct `alloc` for `t8n` testdata (#26822)
gurukamath Mar 7, 2023
41af42e
eth/tracers/native: set created address to nil in case of failure (#2…
s1na Mar 7, 2023
1e3177d
accounts/usbwallet: mitigate ledger app chunking issue (#26773)
prestwich Mar 7, 2023
78429f7
beacon/engine: don't omit empty withdrawals in ExecutionPayloadBodies…
MariusVanDerWijden Mar 7, 2023
a54d91a
build: update to go 1.20.2 (#26824)
fjl Mar 7, 2023
5ed08c4
params: go-ethereum v1.11.3 stable
fjl Mar 7, 2023
bb4ac2d
params: begin v1.11.4 release cycle
fjl Mar 7, 2023
f7661a6
core/rawdb: find smallest block stored in key-value store when chain …
rjl493456442 Mar 8, 2023
02796f6
signer/core: accept all solidity primitive types for EIP-712 signing …
daferna Mar 8, 2023
e14043d
params: remove EF azure bootnodes (#26828)
skylenet Mar 8, 2023
b80f05b
core/vm: use golang native big.Int (#26834)
holiman Mar 8, 2023
1bf1168
core/vm: fix typo in comment (#26838)
JBossBC Mar 9, 2023
5395362
core/forkid: fix issue in validation test (#26544)
fjl Mar 9, 2023
08f6a2a
cmd/evm: update readmes for the tests (#26841)
holiman Mar 9, 2023
67ac5f0
core, core/types: plain Message struct (#25977)
roberto-bayardo Mar 9, 2023
df02799
travis: only build PPAs nightly, not on every push, too heavy (#26846)
karalabe Mar 9, 2023
051493d
p2p: small comment typo (#26850)
panicalways Mar 10, 2023
564db9a
core: add Timestamp method in BlockGen (#26844)
fjl Mar 10, 2023
6cf2e92
core/txpool: implement additional DoS defenses (#26648)
MariusVanDerWijden Mar 10, 2023
7e3b149
params: go-ethereum v1.11.4 stable
fjl Mar 10, 2023
4930614
params: begin v1.11.5 release cycle
fjl Mar 10, 2023
789de23
tests: define `MuirGlacier` fork (#26856)
gurukamath Mar 10, 2023
ca61048
code/vm: fix comment typo (#26865)
JBossBC Mar 13, 2023
a20e387
core: minor code refactor (#26852)
s7v7nislands Mar 13, 2023
d1c5f91
core/txpool: use priceList.Put instead of heap.Push (#26863)
ucwong Mar 13, 2023
5f81db6
eth: return error if 'safe' or 'finalized' tag used pre-merge (#26862)
lightclient Mar 13, 2023
94ff721
.travis.yml: reenable PPA build on tag push (#26873)
fjl Mar 13, 2023
c8a6b71
core/state, trie: port changes from PBSS (#26763)
rjl493456442 Mar 14, 2023
eca3d39
p2p/discover: pass invalid discv5 packets to Unhandled channel (#26699)
holiman Mar 14, 2023
b5c9be3
all: update links in documentation (#26882)
ssflynn77 Mar 14, 2023
6bc68f8
Increase websocket frame size (from erigon rpc client) (#26883)
jotto Mar 14, 2023
f86913b
cmd/devp2p, cmd/geth: add version in --help output (#26895)
fjl Mar 15, 2023
9c9dd5f
merge with latest upstream
roberto-bayardo Mar 15, 2023
beaf391
Update core/gaspool.go
roberto-bayardo Mar 17, 2023
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
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@ and help.

## Configuration, dependencies, and tests

Please see the [Developers' Guide](https://geth.ethereum.org/docs/developers/devguide)
Please see the [Developers' Guide](https://geth.ethereum.org/docs/developers/geth-developer/dev-guide)
for more details on configuring your environment, managing project dependencies
and testing procedures.
91 changes: 51 additions & 40 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,15 @@ jobs:
allow_failures:
- stage: build
os: osx
go: 1.17.x
env:
- azure-osx
- azure-ios
- cocoapods-ios

include:
# This builder only tests code linters on latest version of Go
- stage: lint
os: linux
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- lint
git:
Expand All @@ -31,7 +28,7 @@ jobs:
os: linux
arch: amd64
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- docker
services:
Expand All @@ -48,7 +45,7 @@ jobs:
os: linux
arch: arm64
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- docker
services:
Expand All @@ -60,37 +57,13 @@ jobs:
script:
- go run build/ci.go docker -image -manifest amd64,arm64 -upload ethereum/client-go

# This builder does the Ubuntu PPA upload
- stage: build
if: type = push
os: linux
dist: bionic
go: 1.19.x
env:
- ubuntu-ppa
- GO111MODULE=on
git:
submodules: false # avoid cloning ethereum/tests
addons:
apt:
packages:
- devscripts
- debhelper
- dput
- fakeroot
- python-bzrlib
- python-paramiko
script:
- echo '|1|7SiYPr9xl3uctzovOTj4gMwAC1M=|t6ReES75Bo/PxlOPJ6/GsGbTrM0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0aKz5UTUndYgIGG7dQBV+HaeuEZJ2xPHo2DS2iSKvUL4xNMSAY4UguNW+pX56nAQmZKIZZ8MaEvSj6zMEDiq6HFfn5JcTlM80UwlnyKe8B8p7Nk06PPQLrnmQt5fh0HmEcZx+JU9TZsfCHPnX7MNz4ELfZE6cFsclClrKim3BHUIGq//t93DllB+h4O9LHjEUsQ1Sr63irDLSutkLJD6RXchjROXkNirlcNVHH/jwLWR5RcYilNX7S5bIkK8NlWPjsn/8Ua5O7I9/YoE97PpO6i73DTGLh5H9JN/SITwCKBkgSDWUt61uPK3Y11Gty7o2lWsBjhBUm2Y38CBsoGmBw==' >> ~/.ssh/known_hosts
- go run build/ci.go debsrc -upload ethereum/ethereum -sftp-user geth-ci -signer "Go Ethereum Linux Builder <[email protected]>"

# This builder does the Linux Azure uploads
- stage: build
if: type = push
os: linux
dist: bionic
sudo: required
go: 1.19.x
go: 1.20.x
env:
- azure-linux
- GO111MODULE=on
Expand Down Expand Up @@ -120,43 +93,81 @@ jobs:
- go run build/ci.go install -dlgo -arch arm64 -cc aarch64-linux-gnu-gcc
- go run build/ci.go archive -arch arm64 -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds

# This builder does the OSX Azure uploads
- stage: build
if: type = push
os: osx
go: 1.20.x
env:
- azure-osx
- GO111MODULE=on
git:
submodules: false # avoid cloning ethereum/tests
script:
- go run build/ci.go install -dlgo
- go run build/ci.go archive -type tar -signer OSX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds

# These builders run the tests
- stage: build
os: linux
arch: amd64
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- GO111MODULE=on
script:
- go run build/ci.go test -coverage $TEST_PACKAGES
- go run build/ci.go test $TEST_PACKAGES

- stage: build
if: type = pull_request
os: linux
arch: arm64
dist: bionic
go: 1.18.x
go: 1.19.x
env:
- GO111MODULE=on
script:
- go run build/ci.go test $TEST_PACKAGES

- stage: build
os: linux
dist: bionic
go: 1.19.x
env:
- GO111MODULE=on
script:
- go run build/ci.go test -coverage $TEST_PACKAGES
- 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: bionic
go: 1.18.x
go: 1.20.x
env:
- ubuntu-ppa
- GO111MODULE=on
git:
submodules: false # avoid cloning ethereum/tests
addons:
apt:
packages:
- devscripts
- debhelper
- dput
- fakeroot
- python-bzrlib
- python-paramiko
script:
- go run build/ci.go test -coverage $TEST_PACKAGES
- echo '|1|7SiYPr9xl3uctzovOTj4gMwAC1M=|t6ReES75Bo/PxlOPJ6/GsGbTrM0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0aKz5UTUndYgIGG7dQBV+HaeuEZJ2xPHo2DS2iSKvUL4xNMSAY4UguNW+pX56nAQmZKIZZ8MaEvSj6zMEDiq6HFfn5JcTlM80UwlnyKe8B8p7Nk06PPQLrnmQt5fh0HmEcZx+JU9TZsfCHPnX7MNz4ELfZE6cFsclClrKim3BHUIGq//t93DllB+h4O9LHjEUsQ1Sr63irDLSutkLJD6RXchjROXkNirlcNVHH/jwLWR5RcYilNX7S5bIkK8NlWPjsn/8Ua5O7I9/YoE97PpO6i73DTGLh5H9JN/SITwCKBkgSDWUt61uPK3Y11Gty7o2lWsBjhBUm2Y38CBsoGmBw==' >> ~/.ssh/known_hosts
- go run build/ci.go debsrc -upload ethereum/ethereum -sftp-user geth-ci -signer "Go Ethereum Linux Builder <[email protected]>"

# This builder does the Azure archive purges to avoid accumulating junk
- stage: build
if: type = cron
os: linux
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- azure-purge
- GO111MODULE=on
Expand All @@ -170,9 +181,9 @@ jobs:
if: type = cron
os: linux
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- GO111MODULE=on
script:
- go run build/ci.go test -race -coverage $TEST_PACKAGES
- go run build/ci.go test -race $TEST_PACKAGES

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.19-alpine as builder
FROM golang:1.20-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.19-alpine as builder
FROM golang:1.20-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.18 or later) and a C compiler. You can install
Building `geth` requires both a Go (version 1.19 or later) and a C compiler. You can install
them using your favourite package manager. Once the dependencies are installed, run

```shell
Expand All @@ -36,18 +36,18 @@ directory.

| Command | Description |
| :--------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **`geth`** | Our main Ethereum CLI client. It is the entry point into the Ethereum network (main-, test- or private net), capable of running as a full node (default), archive node (retaining all historical state) or a light node (retrieving data live). It can be used by other processes as a gateway into the Ethereum network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. `geth --help` and the [CLI page](https://geth.ethereum.org/docs/interface/command-line-options) for command line options. |
| **`geth`** | Our main Ethereum CLI client. It is the entry point into the Ethereum network (main-, test- or private net), capable of running as a full node (default), archive node (retaining all historical state) or a light node (retrieving data live). It can be used by other processes as a gateway into the Ethereum network via JSON RPC endpoints exposed on top of HTTP, WebSocket and/or IPC transports. `geth --help` and the [CLI page](https://geth.ethereum.org/docs/fundamentals/command-line-options) for command line options. |
| `clef` | Stand-alone signing tool, which can be used as a backend signer for `geth`. |
| `devp2p` | Utilities to interact with nodes on the networking layer, without running a full blockchain. |
| `abigen` | Source code generator to convert Ethereum contract definitions into easy-to-use, compile-time type-safe Go packages. It operates on plain [Ethereum contract ABIs](https://docs.soliditylang.org/en/develop/abi-spec.html) with expanded functionality if the contract bytecode is also available. However, it also accepts Solidity source files, making development much more streamlined. Please see our [Native DApps](https://geth.ethereum.org/docs/dapp/native-bindings) page for details. |
| `abigen` | Source code generator to convert Ethereum contract definitions into easy-to-use, compile-time type-safe Go packages. It operates on plain [Ethereum contract ABIs](https://docs.soliditylang.org/en/develop/abi-spec.html) with expanded functionality if the contract bytecode is also available. However, it also accepts Solidity source files, making development much more streamlined. Please see our [Native DApps](https://geth.ethereum.org/docs/developers/dapp-developer/native-bindings) page for details. |
| `bootnode` | Stripped down version of our Ethereum client implementation that only takes part in the network node discovery protocol, but does not run any of the higher level application protocols. It can be used as a lightweight bootstrap node to aid in finding peers in private networks. |
| `evm` | Developer utility version of the EVM (Ethereum Virtual Machine) that is capable of running bytecode snippets within a configurable environment and execution mode. Its purpose is to allow isolated, fine-grained debugging of EVM opcodes (e.g. `evm --code 60ff60ff --debug run`). |
| `rlpdump` | Developer utility tool to convert binary RLP ([Recursive Length Prefix](https://ethereum.org/en/developers/docs/data-structures-and-encoding/rlp)) dumps (data encoding used by the Ethereum protocol both network as well as consensus wise) to user-friendlier hierarchical representation (e.g. `rlpdump --hex CE0183FFFFFFC4C304050583616263`). |

## Running `geth`

Going through all the possible command line flags is out of scope here (please consult our
[CLI Wiki page](https://geth.ethereum.org/docs/interface/command-line-options)),
[CLI Wiki page](https://geth.ethereum.org/docs/fundamentals/command-line-options)),
but we've enumerated a few common parameter combos to get you up to speed quickly
on how you can run your own `geth` instance.

Expand Down Expand Up @@ -82,10 +82,10 @@ This command will:
* Start `geth` in snap sync mode (default, can be changed with the `--syncmode` flag),
causing it to download more data in exchange for avoiding processing the entire history
of the Ethereum network, which is very CPU intensive.
* Start the built-in interactive [JavaScript console](https://geth.ethereum.org/docs/interface/javascript-console),
* Start the built-in interactive [JavaScript console](https://geth.ethereum.org/docs/interacting-with-geth/javascript-console),
(via the trailing `console` subcommand) through which you can interact using [`web3` methods](https:/ChainSafe/web3.js/blob/0.20.7/DOCUMENTATION.md)
(note: the `web3` version bundled within `geth` is very old, and not up to date with official docs),
as well as `geth`'s own [management APIs](https://geth.ethereum.org/docs/rpc/server).
as well as `geth`'s own [management APIs](https://geth.ethereum.org/docs/interacting-with-geth/rpc).
This tool is optional and if you leave it out you can always attach it to an already running
`geth` instance with `geth attach`.

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

Expand Down
Loading