Skip to content

Commit de0954a

Browse files
committed
Merge latest v3 changes into v4
2 parents 4e73e17 + 8316859 commit de0954a

File tree

233 files changed

+15209
-2864
lines changed

Some content is hidden

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

233 files changed

+15209
-2864
lines changed

.github/workflows/on-master.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
name: Docker Build and publish to Github
22

33
on:
4+
workflow_dispatch:
45
push:
56
branches:
67
- statediff
78
- statediff-v2
89
- statediff-v3
10+
- v1.10.17-statediff-v3
911
- v1.10.16-statediff-v3
1012
- v1.10.15-statediff-v3
1113
- v1.10.15-statediff-v2

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,13 @@ profile.cov
4949
**/yarn-error.log
5050
foundry/deployments/local-private-network/geth-linux-amd64
5151
foundry/projects/local-private-network/geth-linux-amd64
52+
53+
# Helpful repos
54+
related-repositories/foundry-test/**
55+
related-repositories/hive/**
56+
related-repositories/ipld-eth-db/**
57+
statediff/indexer/database/sql/statediffing_test_file.sql
58+
statediff/statediffing_test_file.sql
59+
statediff/known_gaps.sql
60+
related-repositories/foundry-test/
61+
related-repositories/ipld-eth-db/

.gitmodules

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,4 @@
55
[submodule "evm-benchmarks"]
66
path = tests/evm-benchmarks
77
url = https://github.com/ipsilon/evm-benchmarks
8-
shallow = true
9-
[submodule "foundry/projects/local-private-network/Stateful/lib/ds-test"]
10-
path = foundry/projects/local-private-network/Stateful/lib/ds-test
11-
url = https://github.com/dapphub/ds-test
8+
shallow = true

.travis.yml

Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
language: go
2+
go_import_path: github.com/ethereum/go-ethereum
3+
sudo: false
4+
jobs:
5+
allow_failures:
6+
- stage: build
7+
os: osx
8+
go: 1.17.x
9+
env:
10+
- azure-osx
11+
- azure-ios
12+
- cocoapods-ios
13+
14+
include:
15+
# This builder only tests code linters on latest version of Go
16+
- stage: lint
17+
os: linux
18+
dist: bionic
19+
go: 1.18.x
20+
env:
21+
- lint
22+
git:
23+
submodules: false # avoid cloning ethereum/tests
24+
script:
25+
- go run build/ci.go lint
26+
27+
# These builders create the Docker sub-images for multi-arch push and each
28+
# will attempt to push the multi-arch image if they are the last builder
29+
- stage: build
30+
if: type = push
31+
os: linux
32+
arch: amd64
33+
dist: bionic
34+
go: 1.18.x
35+
env:
36+
- docker
37+
services:
38+
- docker
39+
git:
40+
submodules: false # avoid cloning ethereum/tests
41+
before_install:
42+
- export DOCKER_CLI_EXPERIMENTAL=enabled
43+
script:
44+
- go run build/ci.go docker -image -manifest amd64,arm64 -upload ethereum/client-go
45+
46+
- stage: build
47+
if: type = push
48+
os: linux
49+
arch: arm64
50+
dist: bionic
51+
go: 1.18.x
52+
env:
53+
- docker
54+
services:
55+
- docker
56+
git:
57+
submodules: false # avoid cloning ethereum/tests
58+
before_install:
59+
- export DOCKER_CLI_EXPERIMENTAL=enabled
60+
script:
61+
- go run build/ci.go docker -image -manifest amd64,arm64 -upload ethereum/client-go
62+
63+
# This builder does the Ubuntu PPA upload
64+
- stage: build
65+
if: type = push
66+
os: linux
67+
dist: bionic
68+
go: 1.18.x
69+
env:
70+
- ubuntu-ppa
71+
- GO111MODULE=on
72+
git:
73+
submodules: false # avoid cloning ethereum/tests
74+
addons:
75+
apt:
76+
packages:
77+
- devscripts
78+
- debhelper
79+
- dput
80+
- fakeroot
81+
- python-bzrlib
82+
- python-paramiko
83+
script:
84+
- echo '|1|7SiYPr9xl3uctzovOTj4gMwAC1M=|t6ReES75Bo/PxlOPJ6/GsGbTrM0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0aKz5UTUndYgIGG7dQBV+HaeuEZJ2xPHo2DS2iSKvUL4xNMSAY4UguNW+pX56nAQmZKIZZ8MaEvSj6zMEDiq6HFfn5JcTlM80UwlnyKe8B8p7Nk06PPQLrnmQt5fh0HmEcZx+JU9TZsfCHPnX7MNz4ELfZE6cFsclClrKim3BHUIGq//t93DllB+h4O9LHjEUsQ1Sr63irDLSutkLJD6RXchjROXkNirlcNVHH/jwLWR5RcYilNX7S5bIkK8NlWPjsn/8Ua5O7I9/YoE97PpO6i73DTGLh5H9JN/SITwCKBkgSDWUt61uPK3Y11Gty7o2lWsBjhBUm2Y38CBsoGmBw==' >> ~/.ssh/known_hosts
85+
- go run build/ci.go debsrc -upload ethereum/ethereum -sftp-user geth-ci -signer "Go Ethereum Linux Builder <[email protected]>"
86+
87+
# This builder does the Linux Azure uploads
88+
- stage: build
89+
if: type = push
90+
os: linux
91+
dist: bionic
92+
sudo: required
93+
go: 1.18.x
94+
env:
95+
- azure-linux
96+
- GO111MODULE=on
97+
git:
98+
submodules: false # avoid cloning ethereum/tests
99+
addons:
100+
apt:
101+
packages:
102+
- gcc-multilib
103+
script:
104+
# Build for the primary platforms that Trusty can manage
105+
- go run build/ci.go install -dlgo
106+
- go run build/ci.go archive -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds
107+
- go run build/ci.go install -dlgo -arch 386
108+
- go run build/ci.go archive -arch 386 -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds
109+
110+
# Switch over GCC to cross compilation (breaks 386, hence why do it here only)
111+
- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-arm-linux-gnueabihf libc6-dev-armhf-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross
112+
- sudo ln -s /usr/include/asm-generic /usr/include/asm
113+
114+
- GOARM=5 go run build/ci.go install -dlgo -arch arm -cc arm-linux-gnueabi-gcc
115+
- GOARM=5 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds
116+
- GOARM=6 go run build/ci.go install -dlgo -arch arm -cc arm-linux-gnueabi-gcc
117+
- GOARM=6 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds
118+
- GOARM=7 go run build/ci.go install -dlgo -arch arm -cc arm-linux-gnueabihf-gcc
119+
- GOARM=7 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds
120+
- go run build/ci.go install -dlgo -arch arm64 -cc aarch64-linux-gnu-gcc
121+
- go run build/ci.go archive -arch arm64 -type tar -signer LINUX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds
122+
123+
# This builder does the Android Maven and Azure uploads
124+
- stage: build
125+
if: type = push
126+
os: linux
127+
dist: bionic
128+
addons:
129+
apt:
130+
packages:
131+
- openjdk-8-jdk
132+
env:
133+
- azure-android
134+
- maven-android
135+
- GO111MODULE=on
136+
git:
137+
submodules: false # avoid cloning ethereum/tests
138+
before_install:
139+
# Install Android and it's dependencies manually, Travis is stale
140+
- export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
141+
- curl https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip -o android.zip
142+
- unzip -q android.zip -d $HOME/sdk && rm android.zip
143+
- mv $HOME/sdk/cmdline-tools $HOME/sdk/latest && mkdir $HOME/sdk/cmdline-tools && mv $HOME/sdk/latest $HOME/sdk/cmdline-tools
144+
- export PATH=$PATH:$HOME/sdk/cmdline-tools/latest/bin
145+
- export ANDROID_HOME=$HOME/sdk
146+
147+
- yes | sdkmanager --licenses >/dev/null
148+
- sdkmanager "platform-tools" "platforms;android-15" "platforms;android-19" "platforms;android-24" "ndk-bundle"
149+
150+
# Install Go to allow building with
151+
- curl https://dl.google.com/go/go1.18.linux-amd64.tar.gz | tar -xz
152+
- export PATH=`pwd`/go/bin:$PATH
153+
- export GOROOT=`pwd`/go
154+
- export GOPATH=$HOME/go
155+
script:
156+
# Build the Android archive and upload it to Maven Central and Azure
157+
- mkdir -p $GOPATH/src/github.com/ethereum
158+
- ln -s `pwd` $GOPATH/src/github.com/ethereum/go-ethereum
159+
- go run build/ci.go aar -signer ANDROID_SIGNING_KEY -signify SIGNIFY_KEY -deploy https://oss.sonatype.org -upload gethstore/builds
160+
161+
# This builder does the OSX Azure, iOS CocoaPods and iOS Azure uploads
162+
- stage: build
163+
if: type = push
164+
os: osx
165+
go: 1.18.x
166+
env:
167+
- azure-osx
168+
- azure-ios
169+
- cocoapods-ios
170+
- GO111MODULE=on
171+
git:
172+
submodules: false # avoid cloning ethereum/tests
173+
script:
174+
- go run build/ci.go install -dlgo
175+
- go run build/ci.go archive -type tar -signer OSX_SIGNING_KEY -signify SIGNIFY_KEY -upload gethstore/builds
176+
177+
# Build the iOS framework and upload it to CocoaPods and Azure
178+
- gem uninstall cocoapods -a -x
179+
- gem install cocoapods
180+
181+
- mv ~/.cocoapods/repos/master ~/.cocoapods/repos/master.bak
182+
- sed -i '.bak' 's/repo.join/!repo.join/g' $(dirname `gem which cocoapods`)/cocoapods/sources_manager.rb
183+
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git clone --depth=1 https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master && pod setup --verbose; fi
184+
185+
- xctool -version
186+
- xcrun simctl list
187+
188+
# Workaround for https://github.com/golang/go/issues/23749
189+
- export CGO_CFLAGS_ALLOW='-fmodules|-fblocks|-fobjc-arc'
190+
- go run build/ci.go xcode -signer IOS_SIGNING_KEY -signify SIGNIFY_KEY -deploy trunk -upload gethstore/builds
191+
192+
# These builders run the tests
193+
- stage: build
194+
os: linux
195+
arch: amd64
196+
dist: bionic
197+
go: 1.18.x
198+
env:
199+
- GO111MODULE=on
200+
script:
201+
- go run build/ci.go test -coverage $TEST_PACKAGES
202+
203+
- stage: build
204+
if: type = pull_request
205+
os: linux
206+
arch: arm64
207+
dist: bionic
208+
go: 1.18.x
209+
env:
210+
- GO111MODULE=on
211+
script:
212+
- go run build/ci.go test -coverage $TEST_PACKAGES
213+
214+
- stage: build
215+
os: linux
216+
dist: bionic
217+
go: 1.17.x
218+
env:
219+
- GO111MODULE=on
220+
script:
221+
- go run build/ci.go test -coverage $TEST_PACKAGES
222+
223+
# This builder does the Azure archive purges to avoid accumulating junk
224+
- stage: build
225+
if: type = cron
226+
os: linux
227+
dist: bionic
228+
go: 1.18.x
229+
env:
230+
- azure-purge
231+
- GO111MODULE=on
232+
git:
233+
submodules: false # avoid cloning ethereum/tests
234+
script:
235+
- go run build/ci.go purge -store gethstore/builds -days 14
236+
237+
# This builder executes race tests
238+
- stage: build
239+
if: type = cron
240+
os: linux
241+
dist: bionic
242+
go: 1.18.x
243+
env:
244+
- GO111MODULE=on
245+
script:
246+
- go run build/ci.go test -race -coverage $TEST_PACKAGES
247+

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ARG VERSION=""
44
ARG BUILDNUM=""
55

66
# Build Geth in a stock Go builder container
7-
FROM golang:1.17-alpine as builder
7+
FROM golang:1.18-alpine as builder
88

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

Dockerfile.alltools

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ARG VERSION=""
44
ARG BUILDNUM=""
55

66
# Build Geth in a stock Go builder container
7-
FROM golang:1.17-alpine as builder
7+
FROM golang:1.18-alpine as builder
88

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

README.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,22 @@ Going through all the possible command line flags is out of scope here (please c
5252
but we've enumerated a few common parameter combos to get you up to speed quickly
5353
on how you can run your own `geth` instance.
5454

55+
### Hardware Requirements
56+
57+
Minimum:
58+
59+
* CPU with 2+ cores
60+
* 4GB RAM
61+
* 500GB free storage space to sync the Mainnet
62+
* 8 MBit/sec download Internet service
63+
64+
Recommended:
65+
66+
* Fast CPU with 4+ cores
67+
* 16GB+ RAM
68+
* High Performance SSD with at least 500GB free space
69+
* 25+ MBit/sec download Internet service
70+
5571
### Full node on the main Ethereum network
5672

5773
By far the most common scenario is people wanting to simply interact with the Ethereum

0 commit comments

Comments
 (0)