diff --git a/ansible/inventories/devnet-0/group_vars/all/all.yaml b/ansible/inventories/devnet-0/group_vars/all/all.yaml index a545b40..8f6a96b 100644 --- a/ansible/inventories/devnet-0/group_vars/all/all.yaml +++ b/ansible/inventories/devnet-0/group_vars/all/all.yaml @@ -175,6 +175,7 @@ ethereum_node_docker_watchtower_containers_list: - validator - xatu-sentry - external-block-builder + - buildoor docker_watchtower_container_additional_args: - "--schedule=0 {{ 60 | random(seed=ethereum_network_name ~ inventory_hostname ~ 'min') }} {{ 15 + (3 | random(seed=ethereum_network_name ~ inventory_hostname ~ 'hour')) }} * * *" - --stop-timeout=300s diff --git a/ansible/inventories/devnet-0/group_vars/buildoor.yaml b/ansible/inventories/devnet-0/group_vars/buildoor.yaml new file mode 100644 index 0000000..8c20ce3 --- /dev/null +++ b/ansible/inventories/devnet-0/group_vars/buildoor.yaml @@ -0,0 +1,37 @@ +--- +buildoor_container_image: "{{ default_tooling_images.buildoor }}" +buildoor_container_pull: true +buildoor_container_networks: "{{ docker_networks_shared }}" + +buildoor_jwt_path: /data/execution-auth.secret +buildoor_cl_client: http://beacon:{{ ethereum_node_cl_ports_http_beacon }} +buildoor_el_engine_api: http://execution:{{ ethereum_node_el_ports_engine }} +buildoor_el_rpc: http://execution:{{ ethereum_node_el_ports_http_rpc }} + +buildoor_api_port: 8085 + +buildoor_auth_provider_url: https://auth.{{ network_subdomain }} +buildoor_overview_url: https://buildoor.{{ network_subdomain }} + +buildoor_wallet_privkey: "{{ secret_buildoor_wallet_privkey }}" +buildoor_builder_mnemonic: "{{ secret_buildoor_builder_mnemonic }}" +buildoor_builder_mnemonic_index: "{{ builder_index }}" + +buildoor_container_command_extra_args: + - --validator-ranges-url=https://config.{{ network_subdomain }}/api/v1/nodes/validator-ranges + - --lifecycle + - --slot-result-retention-epochs=1600 + - --slot-artifact-retention-epochs=1600 +buildoor_container_env: + VIRTUAL_HOST: api-{{ server_fqdn }} + VIRTUAL_PORT: "{{ buildoor_api_port | string }}" + LETSENCRYPT_HOST: api-{{ server_fqdn }} + BUILDOOR_INJECT_HEAD_HTML: + +lodestar_container_command_extra_args: >- + {{ lodestar_container_command_extra_simple_args + + ['--emitPayloadAttributes', '--subscribeAllSubnets'] }} +teku_container_command_extra_args: >- + {{ teku_container_command_extra_simple_args + + ['--Xfork-choice-updated-always-send-payload-attributes=true', '--p2p-subscribe-all-subnets-enabled'] }} diff --git a/ansible/inventories/devnet-0/inventory.ini b/ansible/inventories/devnet-0/inventory.ini index e59aa5e..a34a00e 100755 --- a/ansible/inventories/devnet-0/inventory.ini +++ b/ansible/inventories/devnet-0/inventory.ini @@ -6,6 +6,9 @@ ethereum_network_name=focil-devnet-0 [bootnode] bootnode-1 ansible_host=209.38.96.64 ipv6=2a03:b0c0:2:f0:0:2:c40:1001 cloud=digitalocean cloud_region=ams3 arch=amd64 ethereum_node_cl_supernode_enabled=True +[buildoor_lodestar_nethermind] +buildoor-lodestar-nethermind-1 ansible_host=209.38.30.72 ipv6=2400:6180:10:200::e6ba:1000 cloud=digitalocean cloud_region=syd1 arch=amd64 ethereum_node_cl_supernode_enabled=False builder_index=0 + [lodestar_besu] lodestar-besu-1 ansible_host=134.122.33.46 ipv6=2604:a880:cad:d0:0:1:b6c1:e001 cloud=digitalocean cloud_region=tor1 arch=amd64 ethereum_node_cl_supernode_enabled=False validator_start=600 validator_end=700 @@ -37,6 +40,7 @@ teku-reth-1 ansible_host=46.101.85.206 ipv6=2a03:b0c0:1:e0:0:1:c7b1:1001 cloud=d [lighthouse:children] [lodestar:children] +buildoor_lodestar_nethermind lodestar_besu lodestar_ethrex lodestar_nethermind @@ -57,6 +61,7 @@ teku_besu [ethereumjs:children] [geth:children] [nethermind:children] +buildoor_lodestar_nethermind lodestar_nethermind [erigon:children] [reth:children] @@ -70,6 +75,7 @@ teku_ethrex # Buildoor host aggregator [buildoor:children] +buildoor_lodestar_nethermind # ansible_group_priority MUST live in the inventory (not group_vars/) — it is consulted # while loading group_vars, so a value placed in group_vars/buildoor.yaml is read too late @@ -82,12 +88,14 @@ ansible_group_priority=100 [consensus_node:children] lodestar teku +buildoor [execution_node:children] besu ethrex nethermind reth +buildoor [ethereum_node:children] consensus_node diff --git a/ansible/playbook.yaml b/ansible/playbook.yaml index fc5a6a7..8a29e19 100644 --- a/ansible/playbook.yaml +++ b/ansible/playbook.yaml @@ -117,6 +117,12 @@ VIRTUAL_DEST: "/" LETSENCRYPT_HOST: "{{ primary_bootnode }}.{{ network_server_subdomain }}" +- hosts: buildoor + become: true + roles: + - role: ethpandaops.general.buildoor + tags: [buildoor] + - hosts: tx_fuzz_txs become: true roles: diff --git a/terraform/devnet-0/main.tf b/terraform/devnet-0/main.tf index 8ff81d4..4404130 100644 --- a/terraform/devnet-0/main.tf +++ b/terraform/devnet-0/main.tf @@ -42,7 +42,7 @@ provider "cloudflare" { } provider "hcloud" { - token = var.focil_hcloud_token + token = coalesce(var.focil_hcloud_token, join("", [for i in range(64) : "0"])) } //////////////////////////////////////////////////////////////////////////////////////// diff --git a/terraform/devnet-0/nodes.tf b/terraform/devnet-0/nodes.tf index 15c9fb1..0d7cc7e 100644 --- a/terraform/devnet-0/nodes.tf +++ b/terraform/devnet-0/nodes.tf @@ -36,6 +36,7 @@ variable "nodes" { { name = "lodestar-besu", count = 1, cloud = "digitalocean", validator_start = 600, validator_end = 700 }, { name = "lodestar-reth", count = 1, cloud = "digitalocean", validator_start = 700, validator_end = 800 }, { name = "lodestar-nethermind", count = 2, cloud = "digitalocean", validator_start = 800, validator_end = 1000 }, + { name = "buildoor-lodestar-nethermind", count = 1, cloud = "digitalocean", size = "s-8vcpu-32gb-640gb-intel", builder_start = 0 }, ] validation {