Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ethereum/go-ethereum
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: mdehoog/go-ethereum
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: eip-4844
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.

Commits on Feb 19, 2022

  1. Copy the full SHA
    92d7fa9 View commit details
  2. Copy the full SHA
    562723e View commit details
  3. Copy the full SHA
    6bc5155 View commit details
  4. Copy the full SHA
    1d43675 View commit details
  5. Copy the full SHA
    7c62e93 View commit details
  6. Copy the full SHA
    e552a93 View commit details
  7. Copy the full SHA
    46a4b31 View commit details
  8. Copy the full SHA
    59dc43f View commit details
  9. Copy the full SHA
    5e37223 View commit details
  10. Copy the full SHA
    e61cf36 View commit details
  11. Copy the full SHA
    78187b8 View commit details
  12. Copy the full SHA
    89c1e27 View commit details

Commits on Feb 20, 2022

  1. Merge pull request #2 from lightclient/simple-blob

    Implement `DATAHASH` opcode and sharding fork
    protolambda authored Feb 20, 2022
    Copy the full SHA
    7a3a455 View commit details
  2. Copy the full SHA
    204c556 View commit details
  3. Copy the full SHA
    cbcdcdd View commit details
  4. Import go-kzg to geth

    asn-d6 authored and protolambda committed Feb 20, 2022
    Copy the full SHA
    5b878b7 View commit details
  5. Copy the full SHA
    dbfa618 View commit details
  6. Introduce KZG crypto module (that implements the funcs from the mini-…

    …danksharding EIP)
    asn-d6 authored and protolambda committed Feb 20, 2022
    Copy the full SHA
    72eced9 View commit details
  7. Copy the full SHA
    f83107f View commit details
  8. Copy the full SHA
    f4f1230 View commit details
  9. Introduce blobVerification precompile

    asn-d6 authored and protolambda committed Feb 20, 2022
    Copy the full SHA
    9da9ab7 View commit details
  10. Copy the full SHA
    b5c5515 View commit details
  11. Introduce pointEvaluation precompile

    asn-d6 authored and protolambda committed Feb 20, 2022
    Copy the full SHA
    b7db064 View commit details
  12. Copy the full SHA
    5e18fbd View commit details
  13. eth/catalyst: GetBlobV1

    protolambda committed Feb 20, 2022
    Copy the full SHA
    cfb0440 View commit details
  14. Copy the full SHA
    b2d3882 View commit details
  15. Copy the full SHA
    b1dc9bc View commit details
  16. core/vm,crypto/kzg,tests: update data blob kzg to use From/To Compres…

    …sed, and change snake_case to camelCase
    protolambda committed Feb 20, 2022
    Copy the full SHA
    ff1a74f View commit details
  17. Copy the full SHA
    21836f0 View commit details

Commits on Feb 21, 2022

  1. Update test vectors for blobVerification/pointEvaluation

    They broke when we changed blake2b to keccak in the versioned hash.
    asn-d6 committed Feb 21, 2022
    Copy the full SHA
    e0b5cde View commit details
  2. Remove go-kzg dependency from kzg crypto module

    We still use go-kzg for tests and cmd/kzg_dummy_setup. To remove that dependency there we would need to add a bunch of
    go-kzg code to go-ethereum or simplify the tests.
    
    Next step is to also remove the `go-kzg/bls` dependency and just use the one included in geth.
    asn-d6 committed Feb 21, 2022
    Copy the full SHA
    f500191 View commit details
  3. Copy the full SHA
    96bf205 View commit details
  4. Copy the full SHA
    a38a121 View commit details
  5. Copy the full SHA
    803f31e View commit details

Commits on Feb 22, 2022

  1. Copy the full SHA
    c971490 View commit details

Commits on Feb 25, 2022

  1. core: consider blobs count for intrinsic gas check

    Co-authored-by: lightclient <14004106+lightclient@users.noreply.github.com>
    protolambda and lightclient authored Feb 25, 2022
    Copy the full SHA
    d19e6ee View commit details
  2. Merge pull request #3 from asn-d6/prune-gokzg

    Prune gokzg from crypto/kzg
    protolambda authored Feb 25, 2022
    Copy the full SHA
    a922276 View commit details

Commits on Mar 12, 2022

  1. Copy the full SHA
    587a212 View commit details

Commits on Mar 13, 2022

  1. Copy the full SHA
    4b0c1cb View commit details
  2. Copy the full SHA
    e9279d9 View commit details
  3. Copy the full SHA
    5fa43da View commit details
  4. Copy the full SHA
    e539920 View commit details

Commits on Mar 15, 2022

  1. Copy the full SHA
    184ba49 View commit details
  2. Use optimized VerifyBlobs() function

    asn-d6 authored and protolambda committed Mar 15, 2022
    Copy the full SHA
    6cd16f1 View commit details
  3. Copy the full SHA
    dafbb4d View commit details
  4. Copy the full SHA
    0c236b0 View commit details
  5. kzg: Document kzg code further

    asn-d6 authored and protolambda committed Mar 15, 2022
    Copy the full SHA
    9f6e026 View commit details
  6. Copy the full SHA
    5009206 View commit details
  7. Copy the full SHA
    f80048e View commit details
  8. Copy the full SHA
    d48a83e View commit details
Showing 332 changed files with 13,118 additions and 3,225 deletions.
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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
@@ -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:
@@ -31,7 +28,7 @@ jobs:
os: linux
arch: amd64
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- docker
services:
@@ -48,7 +45,7 @@ jobs:
os: linux
arch: arm64
dist: bionic
go: 1.19.x
go: 1.20.x
env:
- docker
services:
@@ -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 <geth-ci@ethereum.org>"

# 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
@@ -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 <geth-ci@ethereum.org>"

# 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
@@ -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
@@ -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

2 changes: 1 addition & 1 deletion Dockerfile.alltools
Original file line number Diff line number Diff line change
@@ -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

14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
@@ -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.

@@ -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://github.com/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`.

@@ -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).

Loading