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

AA-308 devnet #44

Draft
wants to merge 7 commits into
base: RIP-7560-revision-2
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions alexfdata/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ CAPELLA_FORK_EPOCH: 0
CAPELLA_FORK_VERSION: 0x20000092
MAX_WITHDRAWALS_PER_PAYLOAD: 16

# Deneb
DENEB_FORK_VERSION: 0x20000093

# Time parameters
Expand Down
46 changes: 46 additions & 0 deletions devnet/eth-devnet/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
FROM ubuntu:22.04

# Install dependencies
RUN apt-get update && \
apt-get install -y software-properties-common wget curl libgomp1 build-essential git gnupg openssl && \
rm -rf /var/lib/apt/lists/*

# Install Node.js (required for Bundler)
RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y nodejs && \
npm install -g yarn

# Set working directory
WORKDIR /app

# Copy binaries and scripts into the image
COPY geth \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please see https://github.com/eth-infinitism/go-ethereum/blob/RIP-7560-revision-2/Dockerfile
on how to creater a "builder" docker image, so that the final image is lighter
(also, they compile geth as static image, and thus don't have to copy shared objects, only a single binary)

beacon-chain-v5.1.0-linux-amd64 \
validator-v5.1.0-linux-amd64 \
prysmctl-v5.1.0-linux-amd64 \
scripts/config.yml \
start.sh ./

# Make binaries and scripts executable
RUN chmod +x geth \
beacon-chain-v5.1.0-linux-amd64 \
validator-v5.1.0-linux-amd64 \
prysmctl-v5.1.0-linux-amd64 \
start.sh

# Clone and set up Bundler
RUN git clone https://github.com/eth-infinitism/bundler.git /app/bundler && \
cd /app/bundler && \
yarn install --ignore-engines && \
yarn preprocess

# Expose necessary ports (common ports; actual mapping happens in docker-compose)
EXPOSE 8545 8546 8551 6060 30303 30304 \
13000 13001 12000 12001 \
4000 4001 3500 3501 \
7000 7001 7500 7501 \
8080 8081 8082 8083 \
3000

# Entry point
CMD ["/app/start.sh"]
Binary file added devnet/eth-devnet/beacon-chain-v5.1.0-linux-amd64
Binary file not shown.
Binary file added devnet/eth-devnet/bootnode
Binary file not shown.
85 changes: 85 additions & 0 deletions devnet/eth-devnet/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
version: '3.8'
services:
prysmctl-generate-genesis:
build:
context: .
dockerfile: prysmctl.Dockerfile
container_name: prysmctl-generate-genesis
volumes:
- ./scripts/:/app/scripts
- ./node1/data:/app/node1/data
- ./node2/data:/app/node2/data
command: ["/app/scripts/generate-genesis.sh"]

node1:
build: .
container_name: node1
volumes:
- ./node1/data:/data
- ./node1/nodekey:/app/nodekey
- ./node1/beaconkey:/app/beaconkey
- ./node1/config.toml:/app/config.toml
environment:
NODE_IDENTITY: "node-1"
VALIDATOR_START_INDEX: 0
PEER_NODES: "/ip4/172.20.0.3/tcp/13001/p2p/16Uiu2HAmFz274W7rTgaeoifJwmtsRn9KVkvrvAmfNvg9gdhw89Gg /ip4/172.20.0.3/udp/12001/p2p/16Uiu2HAmFz274W7rTgaeoifJwmtsRn9KVkvrvAmfNvg9gdhw89Gg"
ports:
- "8545:8545"
- "8546:8546"
- "8551:8551"
- "6060:6060"
- "30303:30303"
- "13000:13000"
- "12000:12000/udp"
- "4000:4000"
- "3500:3500"
- "7000:7000"
- "7500:7500"
- "8080:8080"
- "8081:8081"
- "3000:3000"
networks:
devnet:
ipv4_address: 172.20.0.2
depends_on:
- prysmctl-generate-genesis

node2:
build: .
container_name: node2
volumes:
- ./node2/data:/data
- ./node2/nodekey:/app/nodekey
- ./node2/beaconkey:/app/beaconkey
- ./node2/config.toml:/app/config.toml
environment:
NODE_IDENTITY: "node-2"
VALIDATOR_START_INDEX: 1
PEER_NODES: "/ip4/172.20.0.2/tcp/13000/p2p/16Uiu2HAmNYTUE5jNA1MidN53yaojJU22JKRnfDTRvudkeb7pUXTx /ip4/172.20.0.2/udp/12000/p2p/16Uiu2HAmNYTUE5jNA1MidN53yaojJU22JKRnfDTRvudkeb7pUXTx"
ports:
- "8547:8545"
- "8548:8546"
- "8553:8551"
- "6061:6060"
- "30304:30303"
- "13001:13000"
- "12001:12000/udp"
- "4001:4000"
- "3501:3500"
- "7001:7000"
- "7501:7500"
- "8082:8080"
- "8083:8081"
- "3001:3000"
networks:
devnet:
ipv4_address: 172.20.0.3
depends_on:
- prysmctl-generate-genesis

networks:
devnet:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
Binary file added devnet/eth-devnet/geth
Binary file not shown.
1 change: 1 addition & 0 deletions devnet/eth-devnet/node1/beaconkey
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
620801c58309976dbc723994edfc7f215793a712f1b96fafd927a3f60bf0774a
107 changes: 107 additions & 0 deletions devnet/eth-devnet/node1/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
[Eth]
NetworkId = 0
SyncMode = "snap"
EthDiscoveryURLs = []
SnapDiscoveryURLs = []
NoPruning = false
NoPrefetch = false
TxLookupLimit = 2350000
TransactionHistory = 2350000
StateHistory = 90000
LightPeers = 100
DatabaseCache = 512
DatabaseFreezer = ""
TrieCleanCache = 154
TrieDirtyCache = 256
TrieTimeout = 3600000000000
SnapshotCache = 102
Preimages = false
FilterLogCacheSize = 32
EnablePreimageRecording = false
VMTrace = ""
VMTraceJsonConfig = ""
RPCGasCap = 50000000
RPCEVMTimeout = 5000000000
RPCTxFeeCap = 1e+00
Rip7560MaxBundleSize = 0
Rip7560MaxBundleGas = 0
Rip7560PullUrls = ["http://localhost:3001/rpc"]
Rip7560AcceptPush = false

[Eth.Miner]
GasCeil = 30000000
GasPrice = 1000000
Recommit = 2000000000

[Eth.TxPool]
Locals = []
NoLocals = false
Journal = "transactions.rlp"
Rejournal = 3600000000000
PriceLimit = 1
PriceBump = 10
AccountSlots = 16
GlobalSlots = 5120
AccountQueue = 64
GlobalQueue = 1024
Lifetime = 10800000000000

[Eth.BlobPool]
Datadir = "blobpool"
Datacap = 2684354560
PriceBump = 100

[Eth.GPO]
Blocks = 20
Percentile = 60
MaxHeaderHistory = 1024
MaxBlockHistory = 1024
MaxPrice = 500000000000
IgnorePrice = 2

[Node]
DataDir = "/data/geth"
IPCPath = "geth.ipc"
HTTPHost = ""
HTTPPort = 8545
HTTPVirtualHosts = ["localhost"]
HTTPModules = ["net", "web3", "eth"]
AuthAddr = "localhost"
AuthPort = 8551
AuthVirtualHosts = ["localhost"]
WSHost = ""
WSPort = 8546
WSModules = ["net", "web3", "eth"]
GraphQLVirtualHosts = ["localhost"]
BatchRequestLimit = 1000
BatchResponseMaxSize = 25000000

[Node.P2P]
MaxPeers = 50
NoDiscovery = false
DiscoveryV4 = true
BootstrapNodes = ["enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303", "enode://22a8232c3abc76a16ae9d6c3b164f98775fe226f0917b0ca871128a74a8e9630b458460865bab457221f1d448dd9791d24c4e5d88786180ac185df813a68d4de@3.209.45.79:30303", "enode://2b252ab6a1d0f971d9722cb839a42cb81db019ba44c08754628ab4a823487071b5695317c8ccd085219c3a03af063495b2f1da8d18218da2d6a82981b45e6ffc@65.108.70.101:30303", "enode://4aeb4ab6c14b23e2c4cfdce879c04b0748a20d8e9b59e25ded2a08143e265c6c25936e74cbc8e641e3312ca288673d91f2f93f8e277de3cfa444ecdaaf982052@157.90.35.166:30303"]
BootstrapNodesV5 = ["enr:-KG4QMOEswP62yzDjSwWS4YEjtTZ5PO6r65CPqYBkgTTkrpaedQ8uEUo1uMALtJIvb2w_WWEVmg5yt1UAuK1ftxUU7QDhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQEnfA2iXNlY3AyNTZrMaEDfol8oLr6XJ7FsdAYE7lpJhKMls4G_v6qQOGKJUWGb_uDdGNwgiMog3VkcIIjKA", "enr:-KG4QF4B5WrlFcRhUU6dZETwY5ZzAXnA0vGC__L1Kdw602nDZwXSTs5RFXFIFUnbQJmhNGVU6OIX7KVrCSTODsz1tK4DhGV0aDKQu6TalgMAAAD__________4JpZIJ2NIJpcIQExNYEiXNlY3AyNTZrMaECQmM9vp7KhaXhI-nqL_R0ovULLCFSFTa9CPPSdb1zPX6DdGNwgiMog3VkcIIjKA", "enr:-Ku4QImhMc1z8yCiNJ1TyUxdcfNucje3BGwEHzodEZUan8PherEo4sF7pPHPSIB1NNuSg5fZy7qFsjmUKs2ea1Whi0EBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQOVphkDqal4QzPMksc5wnpuC3gvSC8AfbFOnZY_On34wIN1ZHCCIyg", "enr:-Ku4QP2xDnEtUXIjzJ_DhlCRN9SN99RYQPJL92TMlSv7U5C1YnYLjwOQHgZIUXw6c-BvRg2Yc2QsZxxoS_pPRVe0yK8Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMeFF5GrS7UZpAH2Ly84aLK-TyvH-dRo0JM1i8yygH50YN1ZHCCJxA", "enr:-Ku4QPp9z1W4tAO8Ber_NQierYaOStqhDqQdOPY3bB3jDgkjcbk6YrEnVYIiCBbTxuar3CzS528d2iE7TdJsrL-dEKoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpD1pf1CAAAAAP__________gmlkgnY0gmlwhBLf22SJc2VjcDI1NmsxoQMw5fqqkw2hHC4F5HZZDPsNmPdB1Gi8JPQK7pRc9XHh-oN1ZHCCKvg", "enr:-Le4QPUXJS2BTORXxyx2Ia-9ae4YqA_JWX3ssj4E_J-3z1A-HmFGrU8BpvpqhNabayXeOZ2Nq_sbeDgtzMJpLLnXFgAChGV0aDKQtTA_KgEAAAAAIgEAAAAAAIJpZIJ2NIJpcISsaa0Zg2lwNpAkAIkHAAAAAPA8kv_-awoTiXNlY3AyNTZrMaEDHAD2JKYevx89W0CcFJFiskdcEzkH_Wdv9iW42qLK79ODdWRwgiMohHVkcDaCI4I", "enr:-Le4QLHZDSvkLfqgEo8IWGG96h6mxwe_PsggC20CL3neLBjfXLGAQFOPSltZ7oP6ol54OvaNqO02Rnvb8YmDR274uq8ChGV0aDKQtTA_KgEAAAAAIgEAAAAAAIJpZIJ2NIJpcISLosQxg2lwNpAqAX4AAAAAAPA8kv_-ax65iXNlY3AyNTZrMaEDBJj7_dLFACaxBfaI8KZTh_SSJUjhyAyfshimvSqo22WDdWRwgiMohHVkcDaCI4I", "enr:-Le4QH6LQrusDbAHPjU_HcKOuMeXfdEB5NJyXgHWFadfHgiySqeDyusQMvfphdYWOzuSZO9Uq2AMRJR5O4ip7OvVma8BhGV0aDKQtTA_KgEAAAAAIgEAAAAAAIJpZIJ2NIJpcISLY9ncg2lwNpAkAh8AgQIBAAAAAAAAAAmXiXNlY3AyNTZrMaECDYCZTZEksF-kmgPholqgVt8IXr-8L7Nu7YrZ7HUpgxmDdWRwgiMohHVkcDaCI4I", "enr:-Le4QIqLuWybHNONr933Lk0dcMmAB5WgvGKRyDihy1wHDIVlNuuztX62W51voT4I8qD34GcTEOTmag1bcdZ_8aaT4NUBhGV0aDKQtTA_KgEAAAAAIgEAAAAAAIJpZIJ2NIJpcISLY04ng2lwNpAkAh8AgAIBAAAAAAAAAA-fiXNlY3AyNTZrMaEDscnRV6n1m-D9ID5UsURk0jsoKNXt1TIrj8uKOGW6iluDdWRwgiMohHVkcDaCI4I", "enr:-Ku4QHqVeJ8PPICcWk1vSn_XcSkjOkNiTg6Fmii5j6vUQgvzMc9L1goFnLKgXqBJspJjIsB91LTOleFmyWWrFVATGngBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAMRHkWJc2VjcDI1NmsxoQKLVXFOhp2uX6jeT0DvvDpPcU8FWMjQdR4wMuORMhpX24N1ZHCCIyg", "enr:-Ku4QG-2_Md3sZIAUebGYT6g0SMskIml77l6yR-M_JXc-UdNHCmHQeOiMLbylPejyJsdAPsTHJyjJB2sYGDLe0dn8uYBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhBLY-NyJc2VjcDI1NmsxoQORcM6e19T1T9gi7jxEZjk_sjVLGFscUNqAY9obgZaxbIN1ZHCCIyg", "enr:-Ku4QPn5eVhcoF1opaFEvg1b6JNFD2rqVkHQ8HApOKK61OIcIXD127bKWgAtbwI7pnxx6cDyk_nI88TrZKQaGMZj0q0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDayLMaJc2VjcDI1NmsxoQK2sBOLGcUb4AwuYzFuAVCaNHA-dy24UuEKkeFNgCVCsIN1ZHCCIyg", "enr:-Ku4QEWzdnVtXc2Q0ZVigfCGggOVB2Vc1ZCPEc6j21NIFLODSJbvNaef1g4PxhPwl_3kax86YPheFUSLXPRs98vvYsoBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhDZBrP2Jc2VjcDI1NmsxoQM6jr8Rb1ktLEsVcKAPa08wCsKUmvoQ8khiOl_SLozf9IN1ZHCCIyg", "enr:-LK4QA8FfhaAjlb_BXsXxSfiysR7R52Nhi9JBt4F8SPssu8hdE1BXQQEtVDC3qStCW60LSO7hEsVHv5zm8_6Vnjhcn0Bh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhAN4aBKJc2VjcDI1NmsxoQJerDhsJ-KxZ8sHySMOCmTO6sHM3iCFQ6VMvLTe948MyYN0Y3CCI4yDdWRwgiOM", "enr:-LK4QKWrXTpV9T78hNG6s8AM6IO4XH9kFT91uZtFg1GcsJ6dKovDOr1jtAAFPnS2lvNltkOGA9k29BUN7lFh_sjuc9QBh2F0dG5ldHOIAAAAAAAAAACEZXRoMpC1MD8qAAAAAP__________gmlkgnY0gmlwhANAdd-Jc2VjcDI1NmsxoQLQa6ai7y9PMN5hpLe5HmiJSlYzMuzP7ZhwRiwHvqNXdoN0Y3CCI4yDdWRwgiOM"]
StaticNodes = ["enode://10b048786aece365a3e51e196d31cbc2117436cabcf0236e46c7e07ff02345d48a0c5533172ad6ab6c6fd95507adf2508b171d1e1772113dfa93e024a1e58d1a@node2:30304"]
TrustedNodes = []
ListenAddr = ":30303"
DiscAddr = ""
EnableMsgEvents = false

[Node.HTTPTimeouts]
ReadTimeout = 30000000000
ReadHeaderTimeout = 30000000000
WriteTimeout = 30000000000
IdleTimeout = 120000000000

[Metrics]
HTTP = "127.0.0.1"
Port = 6060
InfluxDBEndpoint = "http://localhost:8086"
InfluxDBDatabase = "geth"
InfluxDBUsername = "test"
InfluxDBPassword = "test"
InfluxDBTags = "host=localhost"
InfluxDBToken = "test"
InfluxDBBucket = "geth"
InfluxDBOrganization = "geth"
34 changes: 34 additions & 0 deletions devnet/eth-devnet/node1/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
CONFIG_NAME: interop
PRESET_BASE: interop

# Genesis
GENESIS_FORK_VERSION: 0x20000089

# Altair
ALTAIR_FORK_EPOCH: 0
ALTAIR_FORK_VERSION: 0x20000090

# Merge
BELLATRIX_FORK_EPOCH: 0
BELLATRIX_FORK_VERSION: 0x20000091
TERMINAL_TOTAL_DIFFICULTY: 0

# Capella
CAPELLA_FORK_EPOCH: 0
CAPELLA_FORK_VERSION: 0x20000092
MAX_WITHDRAWALS_PER_PAYLOAD: 16

# Deneb
DENEB_FORK_VERSION: 0x20000093
DENEB_FORK_EPOCH: 0

# Electra
ELECTRA_FORK_VERSION: 0x06000000
ELECTRA_FORK_EPOCH: 0

# Time parameters
SECONDS_PER_SLOT: 3
SLOTS_PER_EPOCH: 6

# Deposit contract
DEPOSIT_CONTRACT_ADDRESS: 0x4242424242424242424242424242424242424242
1 change: 1 addition & 0 deletions devnet/eth-devnet/node1/nodekey
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
2a16b520ee5796dcc3c9307ae54d226f55f7c7f31c8b59cd7056f9ed74d38e0a
1 change: 1 addition & 0 deletions devnet/eth-devnet/node2/beaconkey
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ee8e91ee5ec8e2de9b5dfe8951184970f22b7db7ae54f16d5d3f653c23c807f7
Loading
Loading