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

ETC lite patch #2

Draft
wants to merge 144 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
144 commits
Select commit Hold shift + click to select a range
d0dc349
graphql: return correct logs for tx (#25612)
s1na Aug 31, 2022
3b41be6
graphql: fixes missing tx logs (#25745)
s1na Sep 13, 2022
972007a
Release Geth v1.10.24
karalabe Sep 14, 2022
593b4e6
params: init basic ETC config vals
meowsbits Oct 27, 2022
697ee77
core/forkid,core,core/types,core/vm,miner,params: mystique/london, ei…
meowsbits Oct 27, 2022
93495c0
common,consensus/ethash,internal/ethapi: install etcash support at et…
meowsbits Oct 27, 2022
c9f8495
cmd/geth,cmd/utils,core,eth/catalyst,eth/ethconfig,params: install --…
meowsbits Oct 27, 2022
7416843
cmd/utils: [squashme] install --classic flag decl
meowsbits Oct 27, 2022
10a70c8
eth,les: skip checkpoint assignment in case of colliding ETC/ETH gene…
meowsbits Oct 27, 2022
f732600
.gitmodules,tests: add tests/testdata-etc submodule (from etclabscore…
meowsbits Oct 27, 2022
0e8201e
tests: init state tests, failing
meowsbits Oct 27, 2022
a3c71c5
params: move eip155,160 and mystique blocks to chainconfig struct
meowsbits Oct 27, 2022
fb16d9d
params,tests: [squashme] finish ETC_ fork fields impl in test configs
meowsbits Oct 27, 2022
7211c73
params,tests: fix fork/test configurations, fixes (most) tests
meowsbits Oct 27, 2022
5ffbebd
params: comments!
meowsbits Oct 27, 2022
dada559
tests: bump testdata-etc submodule to latest core-geth generated
meowsbits Oct 28, 2022
03fc698
tests: rename file for sensible alphabetic sorting
meowsbits Nov 1, 2022
09b3feb
tests: skip loading the config files, they are not tests
meowsbits Nov 1, 2022
d95b8af
go.mod,go.sum: bump github.com/VictoriaMetrics/fastcache to latest (v…
meowsbits Nov 1, 2022
100bf8e
core: panic: panic at sender_cacher.go
meowsbits Nov 1, 2022
898e7fd
Merge branch 'foundation-master' into etc-treads-lightly-retests
meowsbits Nov 1, 2022
6c9aea5
eth/ethconfig: whitespace
meowsbits Nov 1, 2022
01e6e0c
.gitmodules,tests: getting etclabscore/tests@etcversion_filled up-to-…
meowsbits Dec 12, 2022
6353e5f
tests: assign context.Difficulty from test env
meowsbits Dec 12, 2022
64dc8a4
many: major refactoring of ETC config implementation
meowsbits Dec 13, 2022
a996efa
tests: [temporary] skip EOF1 xclient tests
meowsbits Dec 13, 2022
9c3bdba
Merge branch 'master' into etc-lite-patch
meowsbits Dec 13, 2022
250a80a
core: fix comment about recipient for contract creation (#26349)
ralexstokes Dec 13, 2022
cda051e
core, cmd: fill blockNumber in logs (#26345)
rjl493456442 Dec 13, 2022
fa97788
eth/tracers/native: fix possible crash in prestate tracer (#26351)
holiman Dec 13, 2022
502fa82
signer/core: handle gnosis safe problem with missing chain id (#26309)
holiman Dec 14, 2022
f51f6ed
core: fix typo in blockchain_snapshot_test.go (#26357)
eltociear Dec 14, 2022
f53ff0f
eth/filters, eth/tracers: add request cancellation checks (#26320)
fjl Dec 15, 2022
d3411b9
trie: wrap deletion in case trie.root is nil (#26365)
rjl493456442 Dec 19, 2022
79a478b
core/rawdb: implement resettable freezer (#26324)
rjl493456442 Dec 19, 2022
b818e73
tests: update tests (#26314)
holiman Dec 20, 2022
0180842
core/state: return error when storage trie can't be opened (#26350)
rjl493456442 Dec 21, 2022
577db2e
build: add support for Ubuntu 22.10 (Kinetic Kudu) (#26379)
Zachinquarantine Dec 27, 2022
9921ca0
miner: allow for extradata in post-merge blocks (#26387)
MariusVanDerWijden Dec 28, 2022
c87f321
core/state: maintain destruction flag by default (#26371)
rjl493456442 Dec 28, 2022
db82ea2
core: reset txpool on sethead (#26392)
MariusVanDerWijden Dec 29, 2022
9d38466
eth/downloader: fix some typos (#26396)
hadv Jan 3, 2023
dad9250
cmd, internal: update copyright year to 2023 (#26382)
sandakersmann Jan 3, 2023
c6a2f77
cmd/devp2p/internal/v4test: add pong validation in bond (#26400)
strykerin Jan 3, 2023
efc9409
params: core: enable shanghai based on timestamps
MariusVanDerWijden Sep 27, 2022
a4e19c5
all: implement forkid changes for shanghai
MariusVanDerWijden Nov 10, 2022
0848102
core, les, params: add timestamp based fork compatibility checks
karalabe Dec 15, 2022
d021157
core, les, light: implement timestamp based sethead and genesis rewinds
karalabe Dec 16, 2022
9e6a1c3
common/mclock: add Alarm (#26333)
fjl Jan 3, 2023
a251bca
p2p/discover: add more packet information in logs (#26307)
fjl Jan 3, 2023
41fe9d6
cmd/evm: update documentation (#26385)
holiman Jan 3, 2023
6c149fd
core, eth, trie, light: clean up trie interface (#26388)
rjl493456442 Jan 3, 2023
f426805
build: upgrade -dlgo version to Go 1.19.4 (#26440)
sandakersmann Jan 6, 2023
fcf3d00
eth, les: polish forkid a bit, fix races and transition validation
karalabe Jan 3, 2023
b56c796
cmd, core, eth, els, params: disallow setheads below genesis, tweaks
karalabe Jan 6, 2023
2189773
Merge pull request #25878 from MariusVanDerWijden/shanghai-by-time
karalabe Jan 6, 2023
686f743
eth/downloader: fix unexpected skeleton header deletion
rjl493456442 Jan 9, 2023
71f7988
eth/downloader: create repro testcase for beacon header loss
karalabe Jan 9, 2023
43692c8
Merge pull request #26451 from rjl493456442/fix-beacon-sync-2
karalabe Jan 9, 2023
ccacb99
cmd/evm: support shanghai in tests + evm t8n (#26458)
marioevz Jan 10, 2023
faff980
crypto/bls12381: use worst case scalar for input to G1/G2 mul benchma…
jwasinger Jan 10, 2023
b8bc8c2
README.md: add website contribution instructions (#26442)
jmcook1186 Jan 10, 2023
4ada314
tests: fix DIFFICULTY error in state executor (#26465)
holiman Jan 10, 2023
7a48962
core/state: remove notion of fake storage (#24916)
holiman Jan 10, 2023
2c6dda5
eth/tracers: use non-threaded tracechain (#24283)
holiman Jan 10, 2023
452a12a
eth/downloader: move the pivot in beacon sync mode too (#26453)
karalabe Jan 10, 2023
793f0f9
core/vm: implement EIP-3860: Limit and meter initcode (#23847)
gumb0 Jan 11, 2023
c125e6e
core/vm: enable EIP-3855 (PUSH0) in Shanghai (#26475)
yperbasis Jan 12, 2023
6f858fa
rpc: fix setting client in DialHTTPWithClient (#26470)
lightclient Jan 12, 2023
b748709
eth/downloader: fix cornercase when clean stale beacon headers (#26441)
rjl493456442 Jan 12, 2023
d379e3f
ethclient/gethclient: ensure getProof keys parameter is not null (#26…
fjl Jan 12, 2023
a21e963
eth/catalyst: trigger beacon sync directly with provided chain head (…
rjl493456442 Jan 13, 2023
e04d63e
core/rawdb: fsync head data file before closing it (#26490)
rjl493456442 Jan 13, 2023
0e486a5
Use filepath.clean instead of path.clean (#26404)
MariusVanDerWijden Jan 13, 2023
450d771
readme: fix broken link to installation instructions (#26497)
dhij Jan 15, 2023
0b53b29
core/rawdb: fix cornercase shutdown behaviour in freezer (#26485)
holiman Jan 16, 2023
554c8d7
cmd/utils: update Rinkeby deprecation message (#26496)
Zachinquarantine Jan 16, 2023
55c3b6f
swarm: fix outdated link (#26501)
ucwong Jan 16, 2023
d345a4a
cmd/bootnode, cmd/utils: add 'pmp:<IP>' to --nat flag description (#2…
dbadoy Jan 16, 2023
c858da5
cmd/evm: fix typo in README.md (#26500)
eltociear Jan 16, 2023
8d4c81d
build: upgrade -dlgo version to Go 1.19.5 (#26472)
sandakersmann Jan 16, 2023
f2758a8
cmd/evm: typo fix in docs (#26506)
ucwong Jan 16, 2023
297ec06
metrics/influxdb: fix time ticker leaks (#26507)
ucwong Jan 17, 2023
97401b6
eth/filters: fix typo in comment (#26515)
molecula451 Jan 17, 2023
4a3fb58
les/fetcher : fix requestTimer leak (#26514)
ucwong Jan 18, 2023
a35b654
core/txpool: check if initcode size is exceeded (#26504)
MariusVanDerWijden Jan 18, 2023
690338f
all: remove Kiln testnet (#26522)
Zachinquarantine Jan 19, 2023
2d2c069
console, internal/jsre: fix autocomplete issues (#26518)
s1na Jan 19, 2023
24c7023
go.mod: upgrade to go-bip39 v1.1.0 (#26527)
meehow Jan 20, 2023
8748972
go.sum: tidy (#26525)
ucwong Jan 20, 2023
3f544ce
.travis.yml: go1.19.5 for android builds (#26524)
ucwong Jan 20, 2023
50e6539
params: define cancun and prague as timestamp based forks (#26481)
rjl493456442 Jan 20, 2023
4f4a25d
signer/core: don't require capital lettered reference types (#26462)
holiman Jan 20, 2023
2b44ef5
miner, cmd, eth: require explicit etherbase address (#26413)
rjl493456442 Jan 20, 2023
d36e6fc
go.mod: upgrade to latest goja (#26523)
s1na Jan 23, 2023
e4fa2cf
go.sum: go mod tidy (#26536)
ucwong Jan 23, 2023
163e996
all: use http package to replace http method names (#26535)
islishude Jan 24, 2023
59a48e0
cmd/utils: improve parsing of --miner.etherbase address (#26541)
fjl Jan 24, 2023
2b57a27
all: make timestamp-based fork checks based on uint64 (#26474)
holiman Jan 25, 2023
2a2b041
all: implement withdrawals (EIP-4895) (#26484)
MariusVanDerWijden Jan 25, 2023
55f41d1
cmd/utils: fix error at geth startup in --dev mode (#26550)
fjl Jan 26, 2023
245cff0
eth/catalyst: error on nil withdrawals post-shanghai (#26549)
MariusVanDerWijden Jan 27, 2023
2fecac6
eth/catalyst: implement exchangeCapabilities method (#26555)
MariusVanDerWijden Jan 27, 2023
34115c8
params: fix timestamp display in fork banner (#26553)
fjl Jan 27, 2023
abe4159
params: remove deprecated bootnodes (#26530)
ncocchiaro Jan 27, 2023
a63875b
go.mod: gnark-crypto upgrade (#26545)
ucwong Jan 27, 2023
90f15a0
cmd/evm: add blocktest subcommand to evm (#26526)
marioevz Jan 27, 2023
df52967
eth/catalyst: fix panic in TestWithdrawals (#26563)
fjl Jan 27, 2023
fd4230f
log: fix typo in comment (#26569)
ucwong Jan 30, 2023
3ff3d07
cmd/devp2p: fix broken link in readme(#26576)
pcaversaccio Jan 30, 2023
17017b2
log: better sanitation (#26556)
holiman Jan 30, 2023
78d089b
ethclient/gethclient: fix typo (#26580)
shimmeris Jan 31, 2023
efbd508
eth/tracer: rename to revertReason (#26574)
rjl493456442 Jan 31, 2023
bd6a05e
internal/ethapi: always return block withdrawals if present (#26565)
lightclient Jan 31, 2023
8ded6a9
cmd/puppeth: remove puppeth
holiman Jan 31, 2023
5c8cc10
core: improve ambiguous block validation message (#26582)
holiman Feb 1, 2023
5d8bff1
Merge pull request #26581 from holiman/nuke_puppet
karalabe Feb 2, 2023
a8cf439
eth/catalyst: return invalid params instead of invalid payload params…
MariusVanDerWijden Feb 2, 2023
d0a4989
cmd, eth, node: deprecate personal namespace (#26390)
MariusVanDerWijden Feb 2, 2023
d9699c8
accounts, build, mobile: remove Andriod and iOS support
karalabe Feb 3, 2023
3a79a99
Merge pull request #26599 from karalabe/mobile-nuke
karalabe Feb 3, 2023
877d217
core/vm: improve EVM instance reusability (#26341)
lmittmann Feb 5, 2023
9826cd6
eth/catalyst: implement engine_getPayloadBodiesByHash/Range methods (…
MariusVanDerWijden Feb 6, 2023
bd726f8
readme: fix broken link (#26612)
delihiros Feb 6, 2023
8e92881
rpc: fix off-by-one in ipc endpoint length check (#26614)
holiman Feb 6, 2023
918aed4
core/vm: add bn256ScalarMul testcase for zero scalar value (#26607)
raulk Feb 6, 2023
10c1484
README: remove text about GPU mining (#26609)
sandakersmann Feb 6, 2023
8860b39
all: prepare for path-based trie storage (#26603)
holiman Feb 6, 2023
3a5acee
beacon/engine: move core/beacon to beacon/engine (#26616)
zsfelfoldi Feb 6, 2023
37e3208
build: upgrade to golangci-lint v1.51.1 (#26618)
fjl Feb 6, 2023
91cb6f8
tests: update (#26548)
holiman Feb 6, 2023
cefc0fa
accounts/abi: fix integer encoding/decoding (#26568)
zhiqiangxu Feb 7, 2023
31d401e
rpc: remove DecimalOrHex type (#26629)
fjl Feb 7, 2023
2f73f4f
eth/catalyst,miner: include withdrawals in payload id calculation (#2…
MariusVanDerWijden Feb 7, 2023
00a9b80
light: fix receiver name from Python style to Go (#26631)
halilylm Feb 8, 2023
8c18b48
log: allow tabs in log messages (#26630)
fjl Feb 8, 2023
9842301
all: remove database commit callback, rework noderesolver (#26637)
rjl493456442 Feb 8, 2023
0c9eb8c
eth/catalyst: make getPayloadBodiesByRange take hex inputs (#26624)
jwasinger Feb 8, 2023
02a8903
Merge branch 'master' into etc-lite-patch
meowsbits Feb 8, 2023
b734f4b
params: (lint) undefined: isForked
meowsbits Feb 8, 2023
03f69b6
go.mod,go.sum: go mod tidy
meowsbits Feb 8, 2023
cde6f94
tests: (FIXME) hotpatch to workaround Merge/Merged name conflict
meowsbits Feb 8, 2023
509b816
.golangci.yml: exclude deprecation errors on rand.Read,rand.Seed (Go …
meowsbits Feb 8, 2023
17b4076
consensus/ethash: (lint) File is not `goimports`-ed (goimports)
meowsbits Feb 8, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ accounts/usbwallet @karalabe
accounts/scwallet @gballet
accounts/abi @gballet @MariusVanDerWijden
cmd/clef @holiman
cmd/puppeth @karalabe
consensus @karalabe
core/ @karalabe @holiman @rjl493456442
eth/ @karalabe @holiman @rjl493456442
Expand All @@ -14,7 +13,6 @@ eth/tracers/ @s1na
graphql/ @gballet @s1na
les/ @zsfelfoldi @rjl493456442
light/ @zsfelfoldi @rjl493456442
mobile/ @karalabe @ligi
node/ @fjl
p2p/ @fjl @zsfelfoldi
rpc/ @fjl @holiman
Expand Down
11 changes: 10 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
[submodule "tests"]
[submodule "testdata"]
path = tests/testdata
url = https://github.com/ethereum/tests
shallow = true
[submodule "evm-benchmarks"]
path = tests/evm-benchmarks
url = https://github.com/ipsilon/evm-benchmarks
shallow = true
[submodule "testdata-etc"]
path = tests/testdata-etc
url = https://github.com/etclabscore/tests-etc.git
shallow = true
[submodule "tests-etc"]
path = tests/testdata-etcversion
url = https://github.com/etclabscore/tests.git
branch = etcversion_filled
shallow = true
4 changes: 4 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,3 +62,7 @@ issues:
- 'SA1019: strings.Title is deprecated'
- 'SA1019: strings.Title has been deprecated since Go 1.18 and an alternative has been available since Go 1.0: The rule Title uses for word boundaries does not handle Unicode punctuation properly. Use golang.org/x/text/cases instead.'
- 'SA1029: should not use built-in type string as key for value'
- 'SA1019: rand.Read has been deprecated since Go 1.20'
- 'SA1019: rand.Seed has been deprecated since Go 1.20'
- 'SA1019: mrand.Read has been deprecated since Go 1.20'
- 'SA1019: mrand.Seed has been deprecated since Go 1.20'
69 changes: 0 additions & 69 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,75 +120,6 @@ 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 Android Maven and Azure uploads
- stage: build
if: type = push
os: linux
dist: bionic
addons:
apt:
packages:
- openjdk-8-jdk
env:
- azure-android
- maven-android
- GO111MODULE=on
git:
submodules: false # avoid cloning ethereum/tests
before_install:
# Install Android and it's dependencies manually, Travis is stale
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
- curl https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip -o android.zip
- unzip -q android.zip -d $HOME/sdk && rm android.zip
- mv $HOME/sdk/cmdline-tools $HOME/sdk/latest && mkdir $HOME/sdk/cmdline-tools && mv $HOME/sdk/latest $HOME/sdk/cmdline-tools
- export PATH=$PATH:$HOME/sdk/cmdline-tools/latest/bin
- export ANDROID_HOME=$HOME/sdk

- yes | sdkmanager --licenses >/dev/null
- sdkmanager "platform-tools" "platforms;android-15" "platforms;android-19" "platforms;android-24" "ndk-bundle"

# Install Go to allow building with
- curl https://dl.google.com/go/go1.18.linux-amd64.tar.gz | tar -xz
- export PATH=`pwd`/go/bin:$PATH
- export GOROOT=`pwd`/go
- export GOPATH=$HOME/go
script:
# Build the Android archive and upload it to Maven Central and Azure
- mkdir -p $GOPATH/src/github.com/ethereum
- ln -s `pwd` $GOPATH/src/github.com/ethereum/go-ethereum
- go run build/ci.go aar -signer ANDROID_SIGNING_KEY -signify SIGNIFY_KEY -deploy https://oss.sonatype.org -upload gethstore/builds

# This builder does the OSX Azure, iOS CocoaPods and iOS Azure uploads
- stage: build
if: type = push
os: osx
go: 1.19.x
env:
- azure-osx
- azure-ios
- cocoapods-ios
- 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

# Build the iOS framework and upload it to CocoaPods and Azure
- gem uninstall cocoapods -a -x
- gem install cocoapods

- mv ~/.cocoapods/repos/master ~/.cocoapods/repos/master.bak
- sed -i '.bak' 's/repo.join/!repo.join/g' $(dirname `gem which cocoapods`)/cocoapods/sources_manager.rb
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git clone --depth=1 https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master && pod setup --verbose; fi

- xctool -version
- xcrun simctl list

# Workaround for https://github.com/golang/go/issues/23749
- export CGO_CFLAGS_ALLOW='-fmodules|-fblocks|-fobjc-arc'
- go run build/ci.go xcode -signer IOS_SIGNING_KEY -signify SIGNIFY_KEY -deploy trunk -upload gethstore/builds

# These builders run the tests
- stage: build
os: linux
Expand Down
12 changes: 0 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,6 @@ geth:
all:
$(GORUN) build/ci.go install

android:
$(GORUN) build/ci.go aar --local
@echo "Done building."
@echo "Import \"$(GOBIN)/geth.aar\" to use the library."
@echo "Import \"$(GOBIN)/geth-sources.jar\" to add javadocs"
@echo "For more info see https://stackoverflow.com/questions/20994336/android-studio-how-to-attach-javadoc"

ios:
$(GORUN) build/ci.go xcode --local
@echo "Done building."
@echo "Import \"$(GOBIN)/Geth.framework\" to use the library."

test: all
$(GORUN) build/ci.go test

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

## Building the source

For prerequisites and detailed build instructions please read the [Installation Instructions](https://geth.ethereum.org/docs/install-and-build/installing-geth).
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
them using your favourite package manager. Once the dependencies are installed, run
Expand All @@ -34,16 +34,15 @@ make all
The go-ethereum project comes with several wrappers/executables found in the `cmd`
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. |
| `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. |
| `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`). |
| `puppeth` | a CLI wizard that aids in creating a new Ethereum network. |
| 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. |
| `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. |
| `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`

Expand Down Expand Up @@ -322,12 +321,8 @@ also need to configure a miner to process transactions and create new blocks for

#### Running a private miner

Mining on the public Ethereum network is a complex task as it's only feasible using GPUs,
requiring an OpenCL or CUDA enabled `ethminer` instance. For information on such a
setup, please consult the [EtherMining subreddit](https://www.reddit.com/r/EtherMining/)
and the [ethminer](https://github.com/ethereum-mining/ethminer) repository.

In a private network setting, however, a single CPU miner instance is more than enough for
In a private network setting a single CPU miner instance is more than enough for
practical purposes as it can produce a stable stream of blocks at the correct intervals
without needing heavy resources (consider running on a single thread, no need for multiple
ones either). To start a `geth` instance for mining, run it with all your usual flags, extended
Expand Down Expand Up @@ -364,10 +359,16 @@ Please make sure your contributions adhere to our coding guidelines:
* Commit messages should be prefixed with the package(s) they modify.
* E.g. "eth, rpc: make trace configs optional"

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.

### Contributing to geth.ethereum.org

For contributions to the [go-ethereum website](https://geth.ethereum.org), please checkout and raise pull requests against the `website` branch.
For more detailed instructions please see the `website` branch [README](https://github.com/ethereum/go-ethereum/tree/website#readme) or the
[contributing](https://geth.ethereum.org/docs/developers/geth-developer/contributing) page of the website.

## License

The go-ethereum library (i.e. all code outside of the `cmd` directory) is licensed under the
Expand Down
Loading