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

add pectra0 #1

Merged
merged 6 commits into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from 4 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
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<div align="center"><img src="./docs/images/panda.png" width="300"/></div>
<h2 align="center">🐼 ❤️.oO<br>"Pandas love everything"</h2>
<h2 align="center">🐼 ❤️.oO<br>"Pandas love Pectra"</h2>
<h1 align="center">Infrastructure code for Dev/Testnets</h1>

<p align="center">
<a href="https://github.com/ethpandaops/template-testnet/actions/workflows/ansible_lint.yaml"><img src="https://github.com/ethpandaops/template-testnet/actions/workflows/ansible_lint.yaml/badge.svg"></a>
<a href="https://github.com/ethpandaops/template-testnet/actions/workflows/terraform_lint.yaml"><img src="https://github.com/ethpandaops/template-testnet/actions/workflows/terraform_lint.yaml/badge.svg"></a>
<a href="https://github.com/ethpandaops/template-testnet/actions/workflows/helm_lint.yaml"><img src="https://github.com/ethpandaops/template-testnet/actions/workflows/helm_lint.yaml/badge.svg"></a>
<a href="https://github.com/ethpandaops/pectra-devnets/actions/workflows/ansible_lint.yaml"><img src="https://github.com/ethpandaops/pectra-devnets/actions/workflows/ansible_lint.yaml/badge.svg"></a>
<a href="https://github.com/ethpandaops/pectra-devnets/actions/workflows/terraform_lint.yaml"><img src="https://github.com/ethpandaops/pectra-devnets/actions/workflows/terraform_lint.yaml/badge.svg"></a>
<a href="https://github.com/ethpandaops/pectra-devnets/actions/workflows/helm_lint.yaml"><img src="https://github.com/ethpandaops/pectra-devnets/actions/workflows/helm_lint.yaml/badge.svg"></a>
</p>

This repository contains the infrastructure code used to setup ~all~ dev/testnets. A lot of the code uses reusable components either provided by our [ansible collection](https://github.com/ethpandaops/ansible-collection-general) or our [helm charts for kubernetes](https://github.com/ethpandaops/ethereum-helm-charts/).

# Networks

Status | Network | Links | Ansible | Terraform | Kubernetes
------ | -------- | ---- | ----- | ------- | ------
🟢Template🔴 | [devnet-0](https://template.devnet.io/) | [Network config](network-configs/devnet-0) / [Inventory](https://bootnode-1.srv.devnet-0.ethpandaops.io/meta/api/v1/inventory.json) / [Validator ranges](https://bootnode-1.srv.devnet-0.ethpandaops.io/meta/api/v1/validator-ranges.json) | [🔗](ansible/inventories/devnet-0) | [🔗](terraform/devnet-0) | [🔗](kubernetes/devnet-0)
Status | Network | Links | Ansible | Terraform | Kubernetes
------ |------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ----- | ------- | ------
🟢pectra-devnet-0🔴 | [pectra-devnet-0](https://pectra-devnet-0.ethpandaops.io/) | [Network config](network-configs/devnet-0) / [Inventory](https://bootnode-1.pectra-devnet-0.ethpandaops.io/meta/api/v1/inventory.json) / [Validator ranges](https://bootnode-1.pectra-devnet-0.ethpandaops.io/meta/api/v1/validator-ranges.json) | [🔗](ansible/inventories/devnet-0) | [🔗](terraform/devnet-0) | [🔗](kubernetes/devnet-0)

# Development
## Version management for tools
Expand Down
4 changes: 4 additions & 0 deletions ansible/cleanup_ethereum.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
- "geth"
- "nethermind"
- "execution"
- "reth"
# Consensus layer clients
- "lighthouse-validator"
- "lighthouse"
Expand All @@ -45,6 +46,7 @@
- "teku"
- "beacon"
- "validator"
- "grandine"
# Others
- "ethereum-metrics-exporter"
- "snooper-engine"
Expand All @@ -61,6 +63,7 @@
- /data/ethereumjs
- /data/geth
- /data/nethermind
- /data/reth
# Consensus layer data
- /data/lighthouse
- /data/lighthouse-validator
Expand All @@ -72,6 +75,7 @@
- /data/prysm-validator
- /data/teku
- /data/teku-validator
- /data/grandine
# Config files
- /data/ethereum-network-config
- /data/execution-auth.secret
Expand Down
1 change: 0 additions & 1 deletion ansible/group_vars/all/defaults.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
ansible_user: devops
ansible_python_interpreter: /usr/bin/python3
devnet_name: template
parithosh marked this conversation as resolved.
Show resolved Hide resolved

# IPv6 Specific configuration
global_ipv6_enabled: true
Expand Down
19 changes: 9 additions & 10 deletions ansible/inventories/devnet-0/group_vars/all/all.sops.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
secret_zerossl:
ACME_EAB_KID: ENC[AES256_GCM,data:Gg5E8yH+1Q==,iv:hGQ5GGezb+TNZ7jU3RsRWu0o4wIDNPmNV4J4fAp2BSw=,tag:6nY9DJ+QJEfCGBsx3FNgUQ==,type:str]
ACME_EAB_HMAC_KEY: ENC[AES256_GCM,data:A3v0MxxygA==,iv:qsI0dp2cNVEHgqvFUKiOM542pjG7ZbzHexSXprMBw2E=,tag:Y7xsvVwRV7PQurO7QeNiWw==,type:str]
ACME_EAB_KID: ENC[AES256_GCM,data:NZhVa284ThSPL6QgW6hul8ARiL027A==,iv:A6gf7vpEL0lpxY4WBmWgYE/6HPGRtnYyh4eLUr7j+TI=,tag:MVH4F9syIzvDsbTrLM2gZg==,type:str]
ACME_EAB_HMAC_KEY: ENC[AES256_GCM,data:6pMk3Y2+o9awMgWtpdqU9gkCS3l8Dj8lYNMZi2vln2kweFbBrhgnuN3vBOqbN04rZJA3vx0CjcUmSqAasB8edp4kLjFPuoMNyc30umHufkQptPhrQYc=,iv:f+OmczQTmEHCsAWj7vLpcvflA/ceplQRarFivXJz40o=,tag:9BQXFzK+tgGgd6yLckytlw==,type:str]
secret_prometheus_remote_write:
username: ENC[AES256_GCM,data:zpGvEsv1Lrk=,iv:OVx9miE7xFRL/rBM6dkc+hnBYqPuRJTWhhzQ4T/hsmU=,tag:o+ulpT+Hxx8pmp7O6YPdlw==,type:str]
password: ENC[AES256_GCM,data:14dBuUrGzQ==,iv:sOc8R7kQ0mxeUxTkjVIBCKhr+lvE7W2i3xfkmFlHj4U=,tag:1GhjGilrb32jr4wFVMXZ1w==,type:str]
username: ENC[AES256_GCM,data:Uk/gJLw1JLz5SEb86wJk,iv:uRxwS8FOA7Rf5WVxkQeguoY9psWN+XwOduBNAgMu9s8=,tag:nEIyEBGTAb1Jix3cmwhkAg==,type:str]
password: ENC[AES256_GCM,data:TxbhJ9EwjTD3SQykFrSeqww0RRXqopWqxlgIbFLl2p+1L4xi,iv:8kEvWNussOdss0H6r5aM7hyUMLMeoTXfoHOpb3Pc1Ew=,tag:LxW1NpYawic1OOzoH0raQA==,type:str]
secret_nginx_shared_basic_auth:
name: ENC[AES256_GCM,data:bjlM,iv:DiOGlqfOfrDlt7X4OGY27OYlkDDEHguv+kg1zRhBek0=,tag:ZPlucwl2PNXeXcOc8PmCBQ==,type:str]
password: ENC[AES256_GCM,data:NdtJvQ==,iv:qTDUrwmpKeh0yJB+GlJO7eZ2w0GHn8Lhu6wPS9Twc/g=,tag:QRtMmdNUCmm8XNjPQjqSnQ==,type:str]
secret_ethstats: ENC[AES256_GCM,data:WooVcg7hnyw=,iv:oChffj5kkh5901EC995UMnY8QmQAZtCycuHuF895vfU=,tag:WgwJwBjqYR/5d4cjukuM/A==,type:str]
secret_genesis_mnemonic: ENC[AES256_GCM,data:23GmxqsbgvBVxqzp3dV8FlhAO7u3PKMP2FnP2lbk/tmjHQ6k7SHOnitqyWhJvyBjDVdofI4B0cw+0jVtvdnA6akuamfiT1qasZEZCpsQt78HnDa7VSBWeMEkyJgaRMaiG+uCsMbEZ/OX5O7JoIYDx9+QZss1zGu4dX5soTWpto+hUf2o9Nfm7Alp4go53iuxoipdsDeKCkyHegozLP2DdA==,iv:9X2DYpWHroJMFRS2FXos5gIVdybLdRiLi6RYoYnRhx8=,tag:h+EIIeNpzw34ro5lzcSggw==,type:str]
password: ENC[AES256_GCM,data:1U4urtqEYsjWUpdiIZnt,iv:Ui2h5A/vXI+NoAvXzbaE1v67w9CD9yy60xS61bDc1uI=,tag:7QL+GJdv3Uzdcs5xDnPOHQ==,type:str]
secret_ethstats: ENC[AES256_GCM,data:GCUKBK008UBz0yEnVbi/IDk=,iv:AdLxv4uXzBaGfl4A1LB/0YiwzXTxcFjgLIDiBN0nHj4=,tag:NWSa6W+eFt+MbDnmcOycjw==,type:str]
secret_genesis_mnemonic: ENC[AES256_GCM,data:MILGlFDIsVhL/KLYehzZPbouuu1xNtZnJDxxkeEadyF08Pr0llAQCq8DM2wfhLUpAazJSBej8Rfi7/gjQ6gk+NZWVfCEaM9sR93E9n/gdNgn9ZQsngqQ5BOpaoGsnUaUR1VaCDJw2n1yI7ETQo8UnSFg60O+b3RV0wWMBSYiXr+BkSiv4o65+2drPTIgMNNmgmVkTP3NRME6ElFyEjaFcddR43Kc,iv:qtczfIEALaFLHfHl4wfBXe5UOWbH+FPYckE/8+7nDZA=,tag:tP7ZWyvgr9r8CWEWH8qBfw==,type:str]
secret_mev_signingkey: ENC[AES256_GCM,data:7xug6L4MXETqWb7cmZS6BpAxBercs4mnJEg1NKp+LwZjCWl5pPAlTbfZASwXVBMo24Xoqi9/FbjeJML6WtaJ2Q==,iv:UGcVz81+wBNdb4cmkg9t4tSamqOaBUfWk6glh/6jUA8=,tag:W5Y00+vamA2tq2tEpAEhQA==,type:str]
secret_mev_flood_private_key: ENC[AES256_GCM,data:2vVJ+N0XLer202Dc5J2HVjTEW6XUa+LpmhS/mo2brt+qzabraTSaD7d4P5rVqbovW+W5Je5FdDr4s7rScyn/RA==,iv:1qNfUVqJ9eebRmA4Ly59KFR9WmaQ8eelSvNLJAWCJ10=,tag:knDhqt3zak1OEsHi2nQ3oA==,type:str]
secret_mev_flood_user_key: ENC[AES256_GCM,data:+XXSXUZdEKClV09Pfy/YWULlRl+5njMWcKOvPwuF6YUWHP2spLbJa8BnOimxxi6v7ioGMXEZW7XROVqqQiY4Aw==,iv:efkOBcrGeGJwT91SR+2wFI/fpnWASQeqjH3MJSIQBAA=,tag:KjJMfc7VgZkc8cy/IHrNNA==,type:str]
Expand All @@ -19,15 +19,14 @@ secret_xatu_sentry:
tx_fuzz_blobs_privkey: ENC[AES256_GCM,data:XUiDF6puTOcP0veM5k2x9PmPSA2vP1FeoxSY7rn0bxLMB0b/DsB7y7bfsjBlgPIiL9f2AOSfsol8WWxd3zT6IA==,iv:qTk22/lpJyWFycayBupQp0sBaw2E2oq7peWypQh+0Ic=,tag:Eeqpv2JCfrsQd5ovOcpdVg==,type:str]
tx_fuzz_txs_privkey: ENC[AES256_GCM,data:c52KtPzcxyZPj3vQ6tx0Di5uLFy5JoRUSZ5ZH/WEj7nqC7JTwRw3+bNPk8Y43wjE7caqRZ7eq0la0Bc42ydpew==,iv:gHO+ttqzJCbRBCUvmlsTVNQK6vpnGXamIag63HS/fas=,tag:1Qultc6tndFGDuSKjm/TVg==,type:str]
goomy_private_key: ENC[AES256_GCM,data:+AwqAcOobrvR5gXxdABQki0rH41Ns8H3sJvVtQb5sh/596u1oDPq2bEh6Tpkfx8B+x4rSp+MRQi5wHwk9/Nqcw==,iv:Ibm4sLvU+tNk7EqaSPs/2CRLU1yLlNDgSWjR+uNPrvQ=,tag:oWbWW/jt9pPTWFcRoVTBsg==,type:str]
nethermind_seq_api_key: ENC[AES256_GCM,data:Zg0SODORD54P9n85F/2cp3MiQvQ=,iv:tNCA6W6hJm1PybTE2piAhfUjDKCqQWeN2FQfgiayJC0=,tag:Vo+R3gcYDAAGRPq3cMcvvA==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2024-03-12T10:09:43Z"
mac: ENC[AES256_GCM,data:0KM0rp4RqsMWC9wUcyT629sIJl8QsOaYPZySWub8AfBhtVR1IfAH0jw9mzAjb7mmj+gX4sf6dH9YiYxRdBjLG6q0b7p5GyBH0HZ7xAzcfv6wYREGyQh+jGlh6uYsBtrXbOcWleH16DBGgsXpZmGsXxkp5+H6bjsfPN24oIQxkMo=,iv:0ZgxcP3UchRxnaGJeTVDSrjORVkMT5PqNwnhe3gilXI=,tag:/ztFtfrKos+k1lP+Ppa6MQ==,type:str]
lastmodified: "2024-05-15T13:52:31Z"
mac: ENC[AES256_GCM,data:vgO6b7dztasiTTp0h4Qd8RFP9apRro9D9dXz8ti+Nuj5PMyayoHo9/bbP5QKohub+FYWqMZA4nmIbpgdLqS1Q2WpzSMiqJmfQwcmX9xof0qZJMVDm9Rw5kS2x6Vg112CBnQSvkmvltqV6gZydw+yp3+eUhuru4hBSQjA3gZAcGY=,iv:9ULJJMm5LAdihIlARX22CztcqUgnClGFdr0v49RUWXo=,tag:/EJ5PIPjKFvLnhLr6p/wKQ==,type:str]
pgp:
- created_at: "2023-09-28T11:48:21Z"
enc: |-
Expand Down
19 changes: 10 additions & 9 deletions ansible/inventories/devnet-0/group_vars/all/all.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -38,13 +38,13 @@ checkpoint_sync_url_kube: https://<path:/secrets/services/services.enc.yaml#ethe
ethereum_genesis_generator_container_image: "{{ default_tooling_images.ethereum_genesis_generator }}"
ethereum_genesis_generator_version: "{{ ethereum_genesis_generator_container_image.split(':')[-1] }}"
ethereum_genesis_network_seed: "{{ ansible_inventory_sources[0] }}"
ethereum_genesis_chain_id: "70{{ 99999999 | random(start=10000000, seed=ethereum_genesis_network_seed) }}"
ethereum_genesis_generator_output_dir: "../network-configs/{{ ethereum_network_name | replace('template-', '') }}"
ethereum_genesis_timestamp: "{{ lookup('ansible.builtin.pipe', '{{ ethereum_genesis_timestamp_relative_cmd[ansible_system] }}') }}"
ethereum_genesis_chain_id: "7011893080"
ethereum_genesis_generator_output_dir: "../network-configs/{{ ethereum_network_name | replace('pectra-', '') }}"
ethereum_genesis_timestamp: "1715790600"
ethereum_genesis_timedelay: 60
ethereum_genesis_timestamp_relative_cmd:
Linux: "date +%s -d '+45 minutes'"
Darwin: "date -v +45M +%s"
#ethereum_genesis_timestamp_relative_cmd:
# Linux: "date +%s -d '+45 minutes'"
# Darwin: "date -v +45M +%s"
ethereum_genesis_mnemonic: "{{ secret_genesis_mnemonic }}"
ethereum_genesis_generator_config_files:
cl/config.yaml: "{{ lookup('ansible.builtin.url', 'https://raw.githubusercontent.com/ethpandaops/ethereum-genesis-generator/v{{ethereum_genesis_generator_version}}/config-example/cl/config.yaml', split_lines=false) }}" # noqa yaml[line-length]
Expand All @@ -57,14 +57,14 @@ ethereum_genesis_generator_config_files:
export EL_AND_CL_MNEMONIC="{{ ethereum_genesis_mnemonic }}"
export CL_EXEC_BLOCK="0"
export DEPOSIT_CONTRACT_BLOCK="0x0000000000000000000000000000000000000000000000000000000000000000"
export NUMBER_OF_VALIDATORS=200
export NUMBER_OF_VALIDATORS=2400
export GENESIS_FORK_VERSION="0x10{{ ethereum_genesis_fork_version_suffix }}"
export ALTAIR_FORK_VERSION="0x20{{ ethereum_genesis_fork_version_suffix }}"
export BELLATRIX_FORK_VERSION="0x30{{ ethereum_genesis_fork_version_suffix }}"
export CAPELLA_FORK_VERSION="0x40{{ ethereum_genesis_fork_version_suffix }}"
export DENEB_FORK_VERSION="0x50{{ ethereum_genesis_fork_version_suffix }}"
export ELECTRA_FORK_VERSION="0x60{{ ethereum_genesis_fork_version_suffix }}"
export ELECTRA_FORK_EPOCH="5"
export ELECTRA_FORK_EPOCH="2"
export EIP7594_FORK_VERSION="0x70{{ ethereum_genesis_fork_version_suffix }}"
export EIP7594_FORK_EPOCH="999999"
export WITHDRAWAL_TYPE="0x00"
Expand All @@ -77,8 +77,9 @@ ethereum_genesis_generator_config_files:
export CHURN_LIMIT_QUOTIENT=65536
export EJECTION_BALANCE=16000000000
export ETH1_FOLLOW_DISTANCE=2048
export MIN_VALIDATOR_WITHDRAWABILITY_DELAY=256
export MIN_VALIDATOR_WITHDRAWABILITY_DELAY=2
export SHARD_COMMITTEE_PERIOD=256
export CHURN_LIMIT_QUOTIENT=128
ethereum_genesis_validator_keys_output_dir: "{{ ansible_inventory_sources[0] | dirname }}/files/validator_keys"
ethereum_genesis_validator_bls_change_execution_address: "{{ ethereum_node_cl_validator_fee_recipient }}"
ethereum_genesis_validator_keyranges: >-
Expand Down
22 changes: 11 additions & 11 deletions ansible/inventories/devnet-0/group_vars/all/images.yaml
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
default_ethereum_client_images:
### Consensus layer clients
lighthouse: sigp/lighthouse:latest
lodestar: chainsafe/lodestar:latest
lighthouse: ethpandaops/lighthouse:ef-tests-electra
lodestar: ethpandaops/lodestar:electra-fork
nimbus: statusim/nimbus-eth2:multiarch-latest
prysm: gcr.io/prysmaticlabs/prysm/beacon-chain:latest
prysm_validator: gcr.io/prysmaticlabs/prysm/validator:latest
teku: consensys/teku:latest
grandine: ethpandaops/grandine:develop
prysm: ethpandaops/prysm-beacon-chain:electra-devnet0-d2d9aef
prysm_validator: ethpandaops/prysm-validator:electra-devnet0-d2d9aef
teku: ethpandaops/teku:master
grandine: ethpandaops/grandine:electra
### Execution layer clients
besu: hyperledger/besu:latest
geth: ethereum/client-go:stable
besu: ethpandaops/besu:pectra-interop
geth: ethpandaops/geth:lightclient-prague-devnet-0
erigon: thorax/erigon:devel
ethereumjs: ethpandaops/ethereumjs:master
nethermind: nethermindeth/nethermind:master
reth: ethpandaops/reth:main
nethermind: nethermindeth/nethermind:pectra
reth: ethpandaops/reth:devnet-0


default_tooling_images:
Expand All @@ -32,6 +32,6 @@ default_tooling_images:
eth_fauceth: chainflag/eth-faucet:latest
blobscan: blossomlabs/blobscan:latest
blobscan_indexer: blossomlabs/blobscan-indexer:latest
dora: ethpandaops/dora:master
dora: ethpandaops/dora:electra-support
dugtrio: ethpandaops/dugtrio:latest
ethereum_genesis_generator: ethpandaops/ethereum-genesis-generator:3.1.5
18 changes: 9 additions & 9 deletions ansible/inventories/devnet-0/group_vars/besu.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# role: ethpandaops.general.bootstrap
bootstrap_default_user_authorized_keys_github_team_el: []
# - garyschulte
# - jflo
# - fab-10
# - matkt
# - gezero
# - siladu
# - pinges
# - jframe
bootstrap_default_user_authorized_keys_github_team_el:
- garyschulte
- jflo
- fab-10
- matkt
- gezero
- siladu
- pinges
- jframe

# role: ethpandaops.general.ethereum_node
ethereum_node_el: besu
Expand Down
56 changes: 0 additions & 56 deletions ansible/inventories/devnet-0/group_vars/blobber.yaml

This file was deleted.

Loading
Loading