diff --git a/controls/roles/update-changes/molecule/222/prepare.yml b/controls/roles/update-changes/molecule/222/prepare.yml deleted file mode 100644 index a91c775574..0000000000 --- a/controls/roles/update-changes/molecule/222/prepare.yml +++ /dev/null @@ -1,153 +0,0 @@ ---- -- name: Prepare - hosts: all - tasks: - - name: Make sure Stereum's config path exists - file: - path: "/etc/stereum/services" - state: directory - owner: "root" - group: "root" - mode: 0644 - become: yes - - - name: Create PrysmBeaconService config - copy: - dest: "/etc/stereum/services/bc148566-de35-88b8-6f5a-02e76360a2f1.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: PrysmBeaconService - id: bc148566-de35-88b8-6f5a-02e76360a2f1 - configVersion: 1 - command: /app/cmd/beacon-chain/beacon-chain --accept-terms-of-use=true - --datadir=/opt/app/beacon --p2p-host-dns="" --holesky=true - --block-batch-limit=512 - --genesis-state=/opt/app/genesis/prysm-prater-genesis.ssz --rpc-host=0.0.0.0 - --grpc-gateway-host=0.0.0.0 --p2p-max-peers=100 - --execution-endpoint=http://stereum-81fa4c43-8317-cd0f-2404-2c316523b9d5:8551 - --monitoring-host=0.0.0.0 --monitoring-port=8080 --p2p-tcp-port=13001 - --p2p-udp-port=12001 --jwt-secret=/engine.jwt - --checkpoint-sync-url=https://checkpoint-sync.holesky.ethpandaops.io - entrypoint: [] - env: {} - image: prysmaticlabs/prysm-beacon-chain:v5.0.4 - ports: - - 0.0.0.0:13001:13001/tcp - - 0.0.0.0:12001:12001/udp - - 127.0.0.1:4000:4000/tcp - - 127.0.0.1:3500:3500/tcp - volumes: - - /opt/stereum/prysm-bc148566-de35-88b8-6f5a-02e76360a2f1/beacon:/opt/app/beacon - - /opt/stereum/prysm-bc148566-de35-88b8-6f5a-02e76360a2f1/genesis:/opt/app/genesis - - /opt/stereum/nethermind-81fa4c43-8317-cd0f-2404-2c316523b9d5/engine.jwt:/engine.jwt - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: - - service: NethermindService - id: 81fa4c43-8317-cd0f-2404-2c316523b9d5 - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create PrysmValidator config - copy: - dest: "/etc/stereum/services/2b374159-df35-7afb-66d8-5114ac03dd5e.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: PrysmValidatorService - id: 2b374159-df35-7afb-66d8-5114ac03dd5e - configVersion: 1 - command: /app/cmd/validator/validator --accept-terms-of-use=true - --beacon-rpc-provider="stereum-bc148566-de35-88b8-6f5a-02e76360a2f1:4000" - --beacon-rpc-gateway-provider="stereum-bc148566-de35-88b8-6f5a-02e76360a2f1:3500" - --web --holesky=true --datadir=/opt/app/data/db - --wallet-dir=/opt/app/data/wallets - --wallet-password-file=/opt/app/data/passwords/wallet-password - --monitoring-host=0.0.0.0 --grpc-gateway-port=7500 --grpc-gateway-host=0.0.0.0 - --grpc-gateway-corsdomain="*" --monitoring-host=0.0.0.0 - --monitoring-port=8081 - --suggested-fee-recipient=0x0000000000000000000000000000000000000000 - --graffiti-file=/opt/app/graffitis/graffitis.yaml --enable-builder=true - --enable-doppelganger=true - entrypoint: [] - env: {} - image: prysmaticlabs/prysm-validator:v5.0.4 - ports: - - 127.0.0.1:7500:7500/tcp - volumes: - - /opt/stereum/prysm-2b374159-df35-7afb-66d8-5114ac03dd5e/data/db:/opt/app/data/db - - /opt/stereum/prysm-2b374159-df35-7afb-66d8-5114ac03dd5e/data/wallets:/opt/app/data/wallets - - /opt/stereum/prysm-2b374159-df35-7afb-66d8-5114ac03dd5e/data/passwords:/opt/app/data/passwords - - /opt/stereum/prysm-2b374159-df35-7afb-66d8-5114ac03dd5e/graffitis:/opt/app/graffitis - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: - - service: PrysmBeaconService - id: bc148566-de35-88b8-6f5a-02e76360a2f1 - mevboost: [] - otherServices: [] - become: yes - - - name: Create PrysmValidator config - copy: - dest: "/etc/stereum/services/fe23d5fb-055f-4475-bf66-b452e71582fb.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - autoupdate: true - command: - - --grpc-gateway-host=0.0.0.0 - - --monitoring-host=0.0.0.0 - - --accept-terms-of-use=true - - --monitoring-port=8081 - - --web - - --beacon-rpc-gateway-provider="stereum-bc148566-de35-88b8-6f5a-02e76360a2f1:3500" - - --grpc-gateway-port=7500 - - --graffiti-file=/opt/app/graffitis/graffitis.yaml - - --grpc-gateway-corsdomain="*" - - --holesky=true - - --beacon-rpc-provider="stereum-bc148566-de35-88b8-6f5a-02e76360a2f1:4000" - - --wallet-dir=/opt/app/data/wallets - - --enable-doppelganger=true - - --keymanager-token-file=/opt/app/data/wallets/auth-token - - --wallet-password-file=/opt/app/data/passwords/wallet-password - - --suggested-fee-recipient=0x0000000000000000000000000000000000000000 - - --enable-builder=true - - --datadir=/opt/app/data/db - configVersion: 1 - dependencies: - consensusClients: - - id: bc148566-de35-88b8-6f5a-02e76360a2f1 - service: PrysmBeaconService - executionClients: [] - mevboost: [] - otherServices: [] - entrypoint: - - /app/cmd/validator/validator - env: {} - id: fe23d5fb-055f-4475-bf66-b452e71582fb - image: prysmaticlabs/prysm-validator:v5.0.4 - network: holesky - ports: - - 127.0.0.1:7500:7500/tcp - service: PrysmValidatorService - user: '2000' - volumes: - - /opt/stereum/prysm-fe23d5fb-055f-4475-bf66-b452e71582fb/data/db:/opt/app/data/db - - /opt/stereum/prysm-fe23d5fb-055f-4475-bf66-b452e71582fb/data/wallets:/opt/app/data/wallets - - /opt/stereum/prysm-fe23d5fb-055f-4475-bf66-b452e71582fb/data/passwords:/opt/app/data/passwords - - /opt/stereum/prysm-fe23d5fb-055f-4475-bf66-b452e71582fb/graffitis:/opt/app/graffitis - become: yes - -#EOF \ No newline at end of file diff --git a/controls/roles/update-changes/molecule/222/verify.yml b/controls/roles/update-changes/molecule/222/verify.yml deleted file mode 100644 index 982c826d79..0000000000 --- a/controls/roles/update-changes/molecule/222/verify.yml +++ /dev/null @@ -1,58 +0,0 @@ ---- -- name: Verify - hosts: all - gather_facts: false - tasks: - - # PrysmBeaconService - - name: Read PrysmBeaconService file - slurp: - src: "/etc/stereum/services/bc148566-de35-88b8-6f5a-02e76360a2f1.yaml" - register: Prysm_Beacon_service_configuration_raw - - # PrysmValidatorService - - name: Read PrysmValidatorService file - slurp: - src: "/etc/stereum/services/2b374159-df35-7afb-66d8-5114ac03dd5e.yaml" - register: Prysm_Validator_service_configuration_raw - - # PrysmValidatorService 2 - - name: Read PrysmValidatorService 2 file - slurp: - src: "/etc/stereum/services/fe23d5fb-055f-4475-bf66-b452e71582fb.yaml" - register: Prysm_Validator_2_service_configuration_raw - - - name: Parse Service configurations - set_fact: - Prysm_Beacon_service_configuration: "{{ Prysm_Beacon_service_configuration_raw['content'] | b64decode | from_yaml }}" - Prysm_Validator_service_configuration: "{{ Prysm_Validator_service_configuration_raw['content'] | b64decode | from_yaml }}" - Prysm_Validator_2_service_configuration: "{{ Prysm_Validator_2_service_configuration_raw['content'] | b64decode | from_yaml }}" - - - debug: - msg: "{{ Prysm_Beacon_service_configuration }}" - - debug: - msg: "{{ Prysm_Beacon_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Prysm_Validator_service_configuration }}" - - debug: - msg: "{{ Prysm_Validator_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Prysm_Validator_2_service_configuration }}" - - debug: - msg: "{{ Prysm_Validator_2_service_configuration_raw['content'] | b64decode }}" - - - assert: - that: - - not (Prysm_Beacon_service_configuration.command is string) - - Prysm_Beacon_service_configuration.command | select('match', '--p2p-host-dns=\"\"') | length == 0 - - Prysm_Beacon_service_configuration.command | select('match', '/app/cmd/beacon-chain/beacon-chain') | length == 0 - - Prysm_Beacon_service_configuration.entrypoint | first == '/app/cmd/beacon-chain/beacon-chain' - - not (Prysm_Validator_service_configuration.command is string) - - Prysm_Validator_service_configuration.command | select('match', '/app/cmd/validator/validator') | length == 0 - - Prysm_Validator_service_configuration.entrypoint | first == '/app/cmd/validator/validator' - - not (Prysm_Validator_2_service_configuration.command is string) - - Prysm_Validator_2_service_configuration.command | select('match', '/app/cmd/validator/validator') | length == 0 - - Prysm_Validator_2_service_configuration.entrypoint | first == '/app/cmd/validator/validator' -# EOF diff --git a/controls/roles/update-changes/molecule/223/converge.yml b/controls/roles/update-changes/molecule/223/converge.yml deleted file mode 100644 index 3f84cb4a24..0000000000 --- a/controls/roles/update-changes/molecule/223/converge.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Converge - hosts: all - vars_files: - - ../../../../defaults/stereum_defaults.yaml - - tasks: - - name: "Include update-changes" - include_role: - name: "update-changes" diff --git a/controls/roles/update-changes/molecule/223/molecule.yml b/controls/roles/update-changes/molecule/223/molecule.yml deleted file mode 100644 index 256f7b5bb4..0000000000 --- a/controls/roles/update-changes/molecule/223/molecule.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -#dependency: -# name: galaxy -driver: - name: docker -platforms: - - name: "update-changes--2.2.3--ubuntu-24.04" - image: ubuntu:noble - # - name: "configure-updates--default--centos-8" - # image: geerlingguy/docker-centos8-ansible -provisioner: - name: ansible - env: - ANSIBLE_PIPELINING: "True" -lint: | - set -e - yamllint . - ansible-lint . -scenario: - test_sequence: - - destroy - - create - - prepare - - converge - - idempotence - - verify - - destroy diff --git a/controls/roles/update-changes/molecule/223/playbook.yml b/controls/roles/update-changes/molecule/223/playbook.yml deleted file mode 100644 index 710c596cf6..0000000000 --- a/controls/roles/update-changes/molecule/223/playbook.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: Converge - hosts: all - tasks: - - name: "Include update-changes" - include_role: - name: "update-changes" diff --git a/controls/roles/update-changes/molecule/223/prepare.yml b/controls/roles/update-changes/molecule/223/prepare.yml deleted file mode 100644 index 98132cbafa..0000000000 --- a/controls/roles/update-changes/molecule/223/prepare.yml +++ /dev/null @@ -1,386 +0,0 @@ ---- -- name: Prepare - hosts: all - tasks: - - name: Make sure Stereum's config path exists - file: - path: "/etc/stereum/services" - state: directory - owner: "root" - group: "root" - mode: 0644 - become: yes - - - name: Create ValidatorEjectorService config - copy: - dest: "/etc/stereum/services/15ce3684-4dbd-4657-8a21-b1243b72b1ca.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: ValidatorEjectorService - id: 15ce3684-4dbd-4657-8a21-b1243b72b1ca - configVersion: 1 - command: [] - entrypoint: [] - env: - EXECUTION_NODE: http://stereum-ce456ae0-64d6-4886-a53b-6b90984d4913:8545 - CONSENSUS_NODE: http://stereum-e7bd77d1-4d20-4a2e-85a6-1915f105a4c6:5052 - LOCATOR_ADDRESS: "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" - STAKING_MODULE_ID: "123" - OPERATOR_ID: "123" - MESSAGES_LOCATION: /app/messages - ORACLE_ADDRESSES_ALLOWLIST: '["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E", - "0xA7410857ABbf75043d61ea54e07D57A6EB6EF186", - "0x404335BcE530400a5814375E7Ec1FB55fAff3eA2", - "0x946D3b081ed19173dC83Cd974fC69e1e760B7d78", - "0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5", - "0xEC4BfbAF681eb505B94E4a7849877DC6c600Ca3A", - "0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8", - "0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d", - "0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]' - HTTP_PORT: "8989" - RUN_METRICS: "true" - RUN_HEALTH_CHECK: "true" - DRY_RUN: "false" - image: lidofinance/validator-ejector:1.6.0 - ports: [] - volumes: - - /opt/stereum/validatorejector-15ce3684-4dbd-4657-8a21-b1243b72b1ca/messages:/app/messages - user: "2000" - autoupdate: true - network: mainnet - dependencies: - executionClients: - - service: GethService - id: ce456ae0-64d6-4886-a53b-6b90984d4913 - consensusClients: - - service: LighthouseBeaconService - id: e7bd77d1-4d20-4a2e-85a6-1915f105a4c6 - mevboost: [] - otherServices: [] - become: yes - - - name: Create ValidatorEjectorService config - copy: - dest: "/etc/stereum/services/41b15ea7-12d4-49f6-8448-8a6164edef36.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: ValidatorEjectorService - id: 41b15ea7-12d4-49f6-8448-8a6164edef36 - configVersion: 1 - command: [] - entrypoint: [] - env: - EXECUTION_NODE: http://stereum-cc1323ce-90a1-440f-8b78-f930a3300b38:8545 - CONSENSUS_NODE: http://stereum-62cb879b-b0f0-4ea2-bc13-f606b7f4cfb9:5052 - LOCATOR_ADDRESS: "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" - STAKING_MODULE_ID: "123" - OPERATOR_ID: "123" - MESSAGES_LOCATION: /app/messages - ORACLE_ADDRESSES_ALLOWLIST: '["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xEC4BfbAF681eb505B94E4a7849877DC6c600Ca3A","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]' - HTTP_PORT: "8989" - RUN_METRICS: "true" - RUN_HEALTH_CHECK: "true" - DRY_RUN: "false" - image: lidofinance/validator-ejector:1.6.0 - ports: [] - volumes: - - /opt/stereum/validatorejector-41b15ea7-12d4-49f6-8448-8a6164edef36/messages:/app/messages - user: "2000" - autoupdate: true - network: mainnet - dependencies: - executionClients: - - service: GethService - id: cc1323ce-90a1-440f-8b78-f930a3300b38 - consensusClients: - - service: LighthouseBeaconService - id: 62cb879b-b0f0-4ea2-bc13-f606b7f4cfb9 - mevboost: [] - otherServices: [] - become: yes - - - name: Create SSVNetworkService config - copy: - dest: "/etc/stereum/services/cb941f15-6eef-4e4d-fc81-4d524b627373.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: SSVNetworkService - id: cb941f15-6eef-4e4d-fc81-4d524b627373 - configVersion: 1 - command: make BUILD_PATH=/go/bin/ssvnode start-node && docker logs ssv_node - entrypoint: [] - env: - CONFIG_PATH: /data/config.yaml - image: bloxstaking/ssv-node:v1.3.8 - ports: - - 0.0.0.0:12000:12000/udp - - 0.0.0.0:13000:13000/tcp - volumes: - - /opt/stereum/ssv_network-cb941f15-6eef-4e4d-fc81-4d524b627373/data:/data - - /opt/stereum/ssv_network-cb941f15-6eef-4e4d-fc81-4d524b627373/secrets:/secrets - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create SSVNetworkService config - copy: - dest: "/etc/stereum/services/611cf17d-adf7-433e-bc4e-2e38c0f502c3.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: SSVNetworkService - id: 611cf17d-adf7-433e-bc4e-2e38c0f502c3 - configVersion: 1 - command: make BUILD_PATH=/go/bin/ssvnode start-node && docker logs ssv_node - entrypoint: [] - env: - CONFIG_PATH: /data/config.yaml - image: ssvlabs/ssv-node:v1.3.8 - ports: - - 0.0.0.0:12000:12000/udp - - 0.0.0.0:13000:13000/tcp - volumes: - - /opt/stereum/ssv_network-611cf17d-adf7-433e-bc4e-2e38c0f502c3/data:/data - - /opt/stereum/ssv_network-611cf17d-adf7-433e-bc4e-2e38c0f502c3/secrets:/secrets - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create ErigonService config - copy: - dest: "/etc/stereum/services/b180d035-f390-d644-5fae-6671659dbcdb.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: ErigonService - id: b180d035-f390-d644-5fae-6671659dbcdb - configVersion: 1 - command: - - erigon - - --chain=holesky - - --datadir=/opt/data/erigon - - --authrpc.addr=0.0.0.0 - - --authrpc.vhosts=* - - --authrpc.port=8551 - - --authrpc.jwtsecret=/engine.jwt - - --rpc.returndata.limit=1000000 - - --ws - - --http - - --http.vhosts=* - - --http.corsdomain=* - - --http.addr=0.0.0.0 - - --http.port=8545 - - --http.api=engine,net,eth,web3 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --db.pagesize=16K - - --db.size.limit=8TB - - --prune=htc - entrypoint: [] - env: {} - image: thorax/erigon:v2.60.8 - ports: - - 0.0.0.0:30303:30303/tcp - - 0.0.0.0:30303:30303/udp - - 127.0.0.1:8545:8545/tcp - - 127.0.0.1:8546:8546/tcp - volumes: - - /opt/stereum/erigon-b180d035-f390-d644-5fae-6671659dbcdb/data:/opt/data/erigon - - /opt/stereum/erigon-b180d035-f390-d644-5fae-6671659dbcdb/engine.jwt:/engine.jwt - user: root - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create ErigonService config - copy: - dest: "/etc/stereum/services/580c2c43-ad2a-405d-ab78-eb3678383f59.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: ErigonService - id: 580c2c43-ad2a-405d-ab78-eb3678383f59 - configVersion: 1 - command: - - erigon - - --chain=holesky - - --datadir=/opt/data/erigon - - --authrpc.addr=0.0.0.0 - - --authrpc.vhosts=* - - --authrpc.port=8551 - - --authrpc.jwtsecret=/engine.jwt - - --rpc.returndata.limit=1000000 - - --ws - - --http - - --http.vhosts=* - - --http.corsdomain=* - - --http.addr=0.0.0.0 - - --http.port=8545 - - --http.api=engine,net,eth,web3 - - --metrics - - --metrics.addr=0.0.0.0 - - --metrics.port=6060 - - --db.pagesize=16K - - --db.size.limit=8TB - - --prune=htc - entrypoint: [] - env: {} - image: erigontech/erigon:v2.60.8 - ports: - - 0.0.0.0:30303:30303/tcp - - 0.0.0.0:30303:30303/udp - - 127.0.0.1:8545:8545/tcp - - 127.0.0.1:8546:8546/tcp - volumes: - - /opt/stereum/erigon-580c2c43-ad2a-405d-ab78-eb3678383f59/data:/opt/data/erigon - - /opt/stereum/erigon-580c2c43-ad2a-405d-ab78-eb3678383f59/engine.jwt:/engine.jwt - user: root - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create ValidatorEjectorService config - copy: - dest: "/etc/stereum/services/3911cf56-f350-5fc7-dded-1d08da1a9954.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: ValidatorEjectorService - id: 3911cf56-f350-5fc7-dded-1d08da1a9954 - configVersion: 1 - command: [] - entrypoint: [] - env: - EXECUTION_NODE: "" - CONSENSUS_NODE: "" - LOCATOR_ADDRESS: "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" - STAKING_MODULE_ID: "1" - OPERATOR_ID: "123456789" - MESSAGES_LOCATION: /app/messages - ORACLE_ADDRESSES_ALLOWLIST: '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399", - "0xD892c09b556b547c80B7d8c8cB8d75bf541B2284", - "0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5", - "0x31fa51343297FFce0CC1E67a50B2D3428057D1b1", - "0x81E411f1BFDa43493D7994F82fb61A415F6b8Fd4", - "0x4c75FA734a39f3a21C57e583c1c29942F021C6B7", - "0xD3b1e36A372Ca250eefF61f90E833Ca070559970", - "0xF0F23944EfC5A63c53632C571E7377b85d5E6B6f", - "0xb29dD2f6672C0DFF2d2f173087739A42877A5172", - "0x3799bDA7B884D33F79CEC926af21160dc47fbe05"]' - HTTP_PORT: "8989" - RUN_METRICS: "true" - RUN_HEALTH_CHECK: "true" - DRY_RUN: "false" - image: lidofinance/validator-ejector:1.6.0 - ports: [] - volumes: - - /opt/stereum/validatorejector-3911cf56-f350-5fc7-dded-1d08da1a9954/messages:/app/messages - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create FlashbotsMevBoostService config - copy: - dest: "/etc/stereum/services/5c9c2120-03dc-ffa3-30a8-7faf61f09a3d.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: FlashbotsMevBoostService - id: 5c9c2120-03dc-ffa3-30a8-7faf61f09a3d - configVersion: 1 - command: [] - entrypoint: - - /app/mev-boost - - -addr - - 0.0.0.0:18550 - - -holesky - - -relay-check - - -relays - - https://0xaa58208899c6105603b74396734a6263cc7d947f444f396a90f7b7d3e65d102aec7e5e5291b27e08d02c50a050825c2f@holesky.titanrelay.xyz,https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money,https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.holesky.blxrbdn.com,https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@boost-relay-holesky.flashbots.net,https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7c0406754376c2c8285a36c630346aa5c5f833@holesky.aestus.live,https://0xb1d229d9c21298a87846c7022ebeef277dfc321fe674fa45312e20b5b6c400bfde9383f801848d7837ed5fc449083a12@relay-holesky.edennetwork.io - env: {} - image: flashbots/mev-boost:1.8 - ports: [] - volumes: [] - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create FlashbotsMevBoostService config - copy: - dest: "/etc/stereum/services/4fee6e50-1fe2-533c-8ec2-e23b83e3236c.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: FlashbotsMevBoostService - id: 4fee6e50-1fe2-533c-8ec2-e23b83e3236c - configVersion: 1 - command: [] - entrypoint: - - /app/mev-boost - - -addr - - 0.0.0.0:18550 - - -holesky - - -relay-check - - -relays - - https://0xab78bf8c781c58078c3beb5710c57940874dd96aef2835e7742c866b4c7c0406754376c2c8285a36c630346aa5c5f833@holesky.aestus.live,https://0xb1d229d9c21298a87846c7022ebeef277dfc321fe674fa45312e20b5b6c400bfde9383f801848d7837ed5fc449083a12@relay-holesky.edennetwork.io,https://0x821f2a65afb70e7f2e820a925a9b4c80a159620582c1766b1b09729fec178b11ea22abb3a51f07b288be815a1a2ff516@bloxroute.holesky.blxrbdn.com,https://0xafa4c6985aa049fb79dd37010438cfebeb0f2bd42b115b89dd678dab0670c1de38da0c4e9138c9290a398ecd9a0b3110@boost-relay-holesky.flashbots.net,https://0xb1559beef7b5ba3127485bbbb090362d9f497ba64e177ee2c8e7db74746306efad687f2cf8574e38d70067d40ef136dc@relay-stag.ultrasound.money,https://0xaa58208899c6105603b74396734a6263cc7d947f444f396a90f7b7d3e65d102aec7e5e5291b27e08d02c50a050825c2f@holesky.titanrelay.xyz - env: {} - image: flashbots/mev-boost:1.8 - ports: [] - volumes: [] - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes -#EOF diff --git a/controls/roles/update-changes/molecule/223/verify.yml b/controls/roles/update-changes/molecule/223/verify.yml deleted file mode 100644 index 5882e67692..0000000000 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ /dev/null @@ -1,130 +0,0 @@ ---- -- name: Verify - hosts: all - gather_facts: false - tasks: - # ValidatorEjectorService - - name: Read ValidatorEjectorService file - slurp: - src: "/etc/stereum/services/15ce3684-4dbd-4657-8a21-b1243b72b1ca.yaml" - register: Ejector_service_configuration_raw - - # ValidatorEjectorService2 - - name: Read ValidatorEjectorService file - slurp: - src: "/etc/stereum/services/41b15ea7-12d4-49f6-8448-8a6164edef36.yaml" - register: Ejector_service_configuration2_raw - - # ValidatorEjectorService3 - - name: Read ValidatorEjectorService file - slurp: - src: "/etc/stereum/services/3911cf56-f350-5fc7-dded-1d08da1a9954.yaml" - register: Ejector_service_configuration3_raw - - # ErigonService - - name: Read ErigonService file - slurp: - src: "/etc/stereum/services/b180d035-f390-d644-5fae-6671659dbcdb.yaml" - register: Erigon_service_configuration_raw - - # ErigonService2 - - name: Read ErigonService file - slurp: - src: "/etc/stereum/services/580c2c43-ad2a-405d-ab78-eb3678383f59.yaml" - register: Erigon_service_configuration2_raw - - # SSVNetworkService - - name: Read SSVNetworkService file - slurp: - src: "/etc/stereum/services/cb941f15-6eef-4e4d-fc81-4d524b627373.yaml" - register: SSVNetwork_service_configuration_raw - - # SSVNetworkService2 - - name: Read SSVNetworkService file - slurp: - src: "/etc/stereum/services/611cf17d-adf7-433e-bc4e-2e38c0f502c3.yaml" - register: SSVNetwork_service_configuration2_raw - - # FlashbotsMevBoostService - - name: Read FlashbotsMevBoostService file - slurp: - src: "/etc/stereum/services/5c9c2120-03dc-ffa3-30a8-7faf61f09a3d.yaml" - register: Mev_service_configuration_raw - - # FlashbotsMevBoostService - - name: Read FlashbotsMevBoostService file - slurp: - src: "/etc/stereum/services/4fee6e50-1fe2-533c-8ec2-e23b83e3236c.yaml" - register: Mev_service_configuration2_raw - - - name: Parse Service configurations - set_fact: - Ejector_service_configuration: "{{ Ejector_service_configuration_raw['content'] | b64decode | from_yaml }}" - Ejector_service_configuration2: "{{ Ejector_service_configuration2_raw['content'] | b64decode | from_yaml }}" - SSVNetwork_service_configuration: "{{ SSVNetwork_service_configuration_raw['content'] | b64decode | from_yaml }}" - SSVNetwork_service_configuration2: "{{ SSVNetwork_service_configuration2_raw['content'] | b64decode | from_yaml }}" - Ejector_service_configuration3: "{{ Ejector_service_configuration3_raw['content'] | b64decode | from_yaml }}" - Erigon_service_configuration: "{{ Erigon_service_configuration_raw['content'] | b64decode | from_yaml }}" - Erigon_service_configuration2: "{{ Erigon_service_configuration2_raw['content'] | b64decode | from_yaml }}" - Mev_service_configuration: "{{ Mev_service_configuration_raw['content'] | b64decode | from_yaml }}" - Mev_service_configuration2: "{{ Mev_service_configuration2_raw['content'] | b64decode | from_yaml }}" - - - debug: - msg: "{{ Ejector_service_configuration }}" - - debug: - msg: "{{ Ejector_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Ejector_service_configuration2 }}" - - debug: - msg: "{{ Ejector_service_configuration2_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Ejector_service_configuration3 }}" - - debug: - msg: "{{ Ejector_service_configuration3_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Erigon_service_configuration }}" - - debug: - msg: "{{ Erigon_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Erigon_service_configuration2 }}" - - debug: - msg: "{{ Erigon_service_configuration2_raw['content'] | b64decode }}" - - - debug: - msg: "{{ SSVNetwork_service_configuration }}" - - debug: - msg: "{{ SSVNetwork_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ SSVNetwork_service_configuration2 }}" - - debug: - msg: "{{ SSVNetwork_service_configuration2_raw['content'] | b64decode }}" - - msg: "{{ Mev_service_configuration }}" - - debug: - msg: "{{ Mev_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Mev_service_configuration2 }}" - - debug: - msg: "{{ Mev_service_configuration2_raw['content'] | b64decode }}" - - - assert: - that: - - Ejector_service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9') | length == 1 - - Ejector_service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xEC4BfbAF681eb505B94E4a7849877DC6c600Ca3A') | length == 0 - - Ejector_service_configuration2.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9') | length == 1 - - Ejector_service_configuration2.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xEC4BfbAF681eb505B94E4a7849877DC6c600Ca3A') | length == 0 - - SSVNetwork_service_configuration.image | split(':') | first == 'ssvlabs/ssv-node' - - SSVNetwork_service_configuration2.image == 'ssvlabs/ssv-node:v1.3.8' - - Ejector_service_configuration3.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xfe43A8B0b481Ae9fB1862d31826532047d2d538c') | length == 1 - - Ejector_service_configuration3.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0x3799bDA7B884D33F79CEC926af21160dc47fbe05') | length == 0 - - Erigon_service_configuration.image | split(':') | first == 'erigontech/erigon' - - Erigon_service_configuration2.image == 'erigontech/erigon:v2.60.8' - - Mev_service_configuration.entrypoint | select('match', 'eden') | length == 0 - - Mev_service_configuration2.entrypoint | select('match', 'eden') | length == 0 -# EOF \ No newline at end of file diff --git a/controls/roles/update-changes/molecule/224/converge.yml b/controls/roles/update-changes/molecule/224/converge.yml deleted file mode 100644 index 3f84cb4a24..0000000000 --- a/controls/roles/update-changes/molecule/224/converge.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: Converge - hosts: all - vars_files: - - ../../../../defaults/stereum_defaults.yaml - - tasks: - - name: "Include update-changes" - include_role: - name: "update-changes" diff --git a/controls/roles/update-changes/molecule/224/molecule.yml b/controls/roles/update-changes/molecule/224/molecule.yml deleted file mode 100644 index 01c1a4a939..0000000000 --- a/controls/roles/update-changes/molecule/224/molecule.yml +++ /dev/null @@ -1,27 +0,0 @@ ---- -#dependency: -# name: galaxy -driver: - name: docker -platforms: - - name: "update-changes--2.2.4--ubuntu-24.04" - image: ubuntu:noble - # - name: "configure-updates--default--centos-8" - # image: geerlingguy/docker-centos8-ansible -provisioner: - name: ansible - env: - ANSIBLE_PIPELINING: "True" -lint: | - set -e - yamllint . - ansible-lint . -scenario: - test_sequence: - - destroy - - create - - prepare - - converge - - idempotence - - verify - - destroy diff --git a/controls/roles/update-changes/molecule/224/playbook.yml b/controls/roles/update-changes/molecule/224/playbook.yml deleted file mode 100644 index 710c596cf6..0000000000 --- a/controls/roles/update-changes/molecule/224/playbook.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- name: Converge - hosts: all - tasks: - - name: "Include update-changes" - include_role: - name: "update-changes" diff --git a/controls/roles/update-changes/molecule/224/prepare.yml b/controls/roles/update-changes/molecule/224/prepare.yml deleted file mode 100644 index deae067ce3..0000000000 --- a/controls/roles/update-changes/molecule/224/prepare.yml +++ /dev/null @@ -1,264 +0,0 @@ ---- -- name: Prepare - hosts: all - tasks: - - name: Make sure Stereum's config path exists - file: - path: "/etc/stereum/services" - state: directory - owner: "root" - group: "root" - mode: 0644 - become: yes - - - name: Create ValidatorEjectorService config - copy: - dest: "/etc/stereum/services/15ce3684-4dbd-4657-8a21-b1243b72b1ca.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: ValidatorEjectorService - id: 15ce3684-4dbd-4657-8a21-b1243b72b1ca - configVersion: 1 - command: [] - entrypoint: [] - env: - EXECUTION_NODE: http://stereum-ce456ae0-64d6-4886-a53b-6b90984d4913:8545 - CONSENSUS_NODE: http://stereum-e7bd77d1-4d20-4a2e-85a6-1915f105a4c6:5052 - LOCATOR_ADDRESS: "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" - STAKING_MODULE_ID: "123" - OPERATOR_ID: "123" - MESSAGES_LOCATION: /app/messages - ORACLE_ADDRESSES_ALLOWLIST: '["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E", - "0xA7410857ABbf75043d61ea54e07D57A6EB6EF186", - "0x404335BcE530400a5814375E7Ec1FB55fAff3eA2", - "0x946D3b081ed19173dC83Cd974fC69e1e760B7d78", - "0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5", - "0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9", - "0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8", - "0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d", - "0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]' - HTTP_PORT: "8989" - RUN_METRICS: "true" - RUN_HEALTH_CHECK: "true" - DRY_RUN: "false" - image: lidofinance/validator-ejector:1.6.0 - ports: [] - volumes: - - /opt/stereum/validatorejector-15ce3684-4dbd-4657-8a21-b1243b72b1ca/messages:/app/messages - user: "2000" - autoupdate: true - network: mainnet - dependencies: - executionClients: - - service: GethService - id: ce456ae0-64d6-4886-a53b-6b90984d4913 - consensusClients: - - service: LighthouseBeaconService - id: e7bd77d1-4d20-4a2e-85a6-1915f105a4c6 - mevboost: [] - otherServices: [] - become: yes - - - name: Create ValidatorEjectorService config - copy: - dest: "/etc/stereum/services/41b15ea7-12d4-49f6-8448-8a6164edef36.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: ValidatorEjectorService - id: 41b15ea7-12d4-49f6-8448-8a6164edef36 - configVersion: 1 - command: [] - entrypoint: [] - env: - EXECUTION_NODE: http://stereum-cc1323ce-90a1-440f-8b78-f930a3300b38:8545 - CONSENSUS_NODE: http://stereum-62cb879b-b0f0-4ea2-bc13-f606b7f4cfb9:5052 - LOCATOR_ADDRESS: "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" - STAKING_MODULE_ID: "123" - OPERATOR_ID: "123" - MESSAGES_LOCATION: /app/messages - ORACLE_ADDRESSES_ALLOWLIST: '["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]' - HTTP_PORT: "8989" - RUN_METRICS: "true" - RUN_HEALTH_CHECK: "true" - DRY_RUN: "false" - image: lidofinance/validator-ejector:1.6.0 - ports: [] - volumes: - - /opt/stereum/validatorejector-41b15ea7-12d4-49f6-8448-8a6164edef36/messages:/app/messages - user: "2000" - autoupdate: true - network: mainnet - dependencies: - executionClients: - - service: GethService - id: cc1323ce-90a1-440f-8b78-f930a3300b38 - consensusClients: - - service: LighthouseBeaconService - id: 62cb879b-b0f0-4ea2-bc13-f606b7f4cfb9 - mevboost: [] - otherServices: [] - become: yes - - - name: Create PrysmBeaconService config - copy: - dest: "/etc/stereum/services/d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: PrysmBeaconService - id: d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2 - configVersion: 1 - command: - - --accept-terms-of-use=true - - --holesky - - --datadir=/opt/app/beacon - - --block-batch-limit=512 - - --rpc-host=0.0.0.0 - - --grpc-gateway-host=0.0.0.0 - - --p2p-max-peers=100 - - --execution-endpoint=http://stereum-54c64310-1cf4-bea6-e539-b775393e2eb2:8551 - - --grpc-gateway-port=3500 - - --grpc-gateway-host=0.0.0.0 - - --grpc-gateway-corsdomain="*" - - --jwt-secret=/engine.jwt - - --monitoring-host=0.0.0.0 - - --monitoring-port=8080 - - --p2p-tcp-port=13001 - - --p2p-udp-port=12001 - - --genesis-state=/opt/app/genesis/prysm-holesky-genesis.ssz - - --checkpoint-sync-url=https://checkpoint-sync.holesky.ethpandaops.io - entrypoint: - - /app/cmd/beacon-chain/beacon-chain - env: {} - image: prysmaticlabs/prysm-beacon-chain:v5.1.2 - ports: - - 0.0.0.0:13001:13001/tcp - - 0.0.0.0:12001:12001/udp - - 127.0.0.1:4000:4000/tcp - - 127.0.0.1:3500:3500/tcp - volumes: - - /opt/stereum/prysm-d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2/beacon:/opt/app/beacon - - /opt/stereum/prysm-d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2/genesis:/opt/app/genesis - - /opt/stereum/nethermind-54c64310-1cf4-bea6-e539-b775393e2eb2/engine.jwt:/engine.jwt - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: - - service: NethermindService - id: 54c64310-1cf4-bea6-e539-b775393e2eb2 - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes - - - name: Create PrysmValidatorService config - copy: - dest: "/etc/stereum/services/0f8ae6ed-4fb1-ad08-7219-9078373f957b.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: PrysmValidatorService - id: 0f8ae6ed-4fb1-ad08-7219-9078373f957b - configVersion: 1 - command: - - --accept-terms-of-use=true - - --beacon-rpc-provider=stereum-d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2:4000 - - --beacon-rpc-gateway-provider=stereum-d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2:3500,stereum-d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2:3500,stereum-d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2:3500, - - --web - - --holesky - - --datadir=/opt/app/data/db - - --keymanager-token-file=/opt/app/data/wallets/auth-token - - --wallet-dir=/opt/app/data/wallets - - --wallet-password-file=/opt/app/data/passwords/wallet-password - - --monitoring-host=0.0.0.0 - - --grpc-gateway-port=7500 - - --grpc-gateway-host=0.0.0.0 - - --grpc-gateway-corsdomain="*" - - --monitoring-host=0.0.0.0 - - --monitoring-port=8081 - - --suggested-fee-recipient=0x0000000000000000000000000000000000000000 - - --graffiti-file=/opt/app/graffitis/graffitis.yaml - - --enable-builder=true - - --enable-doppelganger=true - entrypoint: - - /app/cmd/validator/validator - env: {} - image: prysmaticlabs/prysm-validator:v5.1.2 - ports: - - 127.0.0.1:7500:7500/tcp - volumes: - - /opt/stereum/prysm-0f8ae6ed-4fb1-ad08-7219-9078373f957b/data/db:/opt/app/data/db - - /opt/stereum/prysm-0f8ae6ed-4fb1-ad08-7219-9078373f957b/data/wallets:/opt/app/data/wallets - - /opt/stereum/prysm-0f8ae6ed-4fb1-ad08-7219-9078373f957b/data/passwords:/opt/app/data/passwords - - /opt/stereum/prysm-0f8ae6ed-4fb1-ad08-7219-9078373f957b/graffitis:/opt/app/graffitis - user: "2000" - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: - - service: PrysmBeaconService - id: d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2 - mevboost: [] - otherServices: [] - become: yes - - - name: Create RethService config - copy: - dest: "/etc/stereum/services/a9c5f8d8-7487-3038-46da-b72f71caa105.yaml" - owner: "root" - group: "root" - mode: 0644 - content: | - service: RethService - id: a9c5f8d8-7487-3038-46da-b72f71caa105 - configVersion: 1 - command: - - node - - --chain=holesky - - --datadir=/opt/data/reth - - --http - - --http.port=8545 - - --http.addr=0.0.0.0 - - --http.api=debug,web3,eth,net - - --http.corsdomain=* - - --ws - - --ws.port=8546 - - --ws.addr=0.0.0.0 - - --ws.api=debug,web3,eth,net - - --ws.origins=* - - --authrpc.port=8551 - - --authrpc.addr=0.0.0.0 - - --authrpc.jwtsecret=/engine.jwt - - --metrics=0.0.0.0:6060 - - --color=never - - --engine.legacy - entrypoint: - - /usr/local/bin/reth - env: {} - image: ghcr.io/paradigmxyz/reth:v1.0.8 - ports: - - 0.0.0.0:30304:30303/tcp - - 0.0.0.0:30304:30303/udp - - 127.0.0.1:8547:8545/tcp - - 127.0.0.1:8548:8546/tcp - volumes: - - /opt/stereum/reth-a9c5f8d8-7487-3038-46da-b72f71caa105/data:/opt/data/reth - - /opt/stereum/reth-a9c5f8d8-7487-3038-46da-b72f71caa105/engine.jwt:/engine.jwt - user: root - autoupdate: true - network: holesky - dependencies: - executionClients: [] - consensusClients: [] - mevboost: [] - otherServices: [] - become: yes -#EOF diff --git a/controls/roles/update-changes/molecule/224/verify.yml b/controls/roles/update-changes/molecule/224/verify.yml deleted file mode 100644 index a885d3b1dd..0000000000 --- a/controls/roles/update-changes/molecule/224/verify.yml +++ /dev/null @@ -1,81 +0,0 @@ ---- -- name: Verify - hosts: all - gather_facts: false - tasks: - # ValidatorEjectorService - - name: Read ValidatorEjectorService file - slurp: - src: "/etc/stereum/services/15ce3684-4dbd-4657-8a21-b1243b72b1ca.yaml" - register: Ejector_service_configuration_raw - - # ValidatorEjectorService2 - - name: Read ValidatorEjectorService file - slurp: - src: "/etc/stereum/services/41b15ea7-12d4-49f6-8448-8a6164edef36.yaml" - register: Ejector_service_configuration2_raw - - # PrysmBeaconService - - name: Read PrysmBeaconService file - slurp: - src: "/etc/stereum/services/d545b944-56d5-dd8f-e6d7-51ad6ecfe7b2.yaml" - register: PrysmBeacon_service_configuration_raw - - # PrysmValidatorService - - name: Read PrysmValidatorService file - slurp: - src: "/etc/stereum/services/0f8ae6ed-4fb1-ad08-7219-9078373f957b.yaml" - register: PrysmValdiator_service_configuration_raw - - # RethService - - name: Read RethService file - slurp: - src: "/etc/stereum/services/a9c5f8d8-7487-3038-46da-b72f71caa105.yaml" - register: Reth_service_configuration_raw - - - name: Parse Service configurations - set_fact: - Ejector_service_configuration: "{{ Ejector_service_configuration_raw['content'] | b64decode | from_yaml }}" - Ejector_service_configuration2: "{{ Ejector_service_configuration2_raw['content'] | b64decode | from_yaml }}" - PrysmBeacon_service_configuration: "{{ PrysmBeacon_service_configuration_raw['content'] | b64decode | from_yaml }}" - PrysmValdiator_service_configuration: "{{ PrysmValdiator_service_configuration_raw['content'] | b64decode | from_yaml }}" - Reth_service_configuration: "{{ Reth_service_configuration_raw['content'] | b64decode | from_yaml }}" - - - debug: - msg: "{{ Ejector_service_configuration }}" - - debug: - msg: "{{ Ejector_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Ejector_service_configuration2 }}" - - debug: - msg: "{{ Ejector_service_configuration2_raw['content'] | b64decode }}" - - - debug: - msg: "{{ PrysmBeacon_service_configuration }}" - - debug: - msg: "{{ PrysmBeacon_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ PrysmValdiator_service_configuration }}" - - debug: - msg: "{{ PrysmValdiator_service_configuration_raw['content'] | b64decode }}" - - - debug: - msg: "{{ Reth_service_configuration }}" - - debug: - msg: "{{ Reth_service_configuration_raw['content'] | b64decode }}" - - - assert: - that: - - Ejector_service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12') | length == 1 - - Ejector_service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d') | length == 0 - - Ejector_service_configuration2.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12') | length == 1 - - Ejector_service_configuration2.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d') | length == 0 - - PrysmBeacon_service_configuration.command | select('match', 'grpc-gateway') | length == 0 - - PrysmValdiator_service_configuration.command | select('match', 'grpc-gateway') | length == 0 - - PrysmValdiator_service_configuration.command | select('match', '--beacon-rest-api-provider') | length == 1 - - PrysmValdiator_service_configuration.command | select('match', '--enable-beacon-rest-api') | length == 1 - - PrysmValdiator_service_configuration.command | select('match', '--beacon-rpc-gateway-provider') | length == 0 - - Reth_service_configuration.command | select('match', '--engine.legacy') | length == 0 -# EOF diff --git a/controls/roles/update-changes/molecule/222/converge.yml b/controls/roles/update-changes/molecule/241/converge.yml similarity index 100% rename from controls/roles/update-changes/molecule/222/converge.yml rename to controls/roles/update-changes/molecule/241/converge.yml diff --git a/controls/roles/update-changes/molecule/222/molecule.yml b/controls/roles/update-changes/molecule/241/molecule.yml similarity index 90% rename from controls/roles/update-changes/molecule/222/molecule.yml rename to controls/roles/update-changes/molecule/241/molecule.yml index 5bdd1e5102..a0e69d6f97 100644 --- a/controls/roles/update-changes/molecule/222/molecule.yml +++ b/controls/roles/update-changes/molecule/241/molecule.yml @@ -4,7 +4,7 @@ driver: name: docker platforms: - - name: "update-changes--2.2.2--ubuntu-24.04" + - name: "update-changes--2.4.1--ubuntu-24.04" image: ubuntu:noble # - name: "configure-updates--default--centos-8" # image: geerlingguy/docker-centos8-ansible diff --git a/controls/roles/update-changes/molecule/222/playbook.yml b/controls/roles/update-changes/molecule/241/playbook.yml similarity index 100% rename from controls/roles/update-changes/molecule/222/playbook.yml rename to controls/roles/update-changes/molecule/241/playbook.yml diff --git a/controls/roles/update-changes/molecule/241/prepare.yml b/controls/roles/update-changes/molecule/241/prepare.yml new file mode 100644 index 0000000000..bb427e6924 --- /dev/null +++ b/controls/roles/update-changes/molecule/241/prepare.yml @@ -0,0 +1,250 @@ +--- +- name: Prepare + hosts: all + tasks: + - name: Make sure Stereum's config path exists + file: + path: "/etc/stereum/services" + state: directory + owner: "root" + group: "root" + mode: 0644 + become: yes + + - name: Create ValidatorEjectorService config + copy: + dest: "/etc/stereum/services/03f03a11-b23d-4ada-9512-47e3061baaa9.yaml" + owner: "root" + group: "root" + mode: 0644 + content: | + service: ValidatorEjectorService + id: 03f03a11-b23d-4ada-9512-47e3061baaa9 + configVersion: 1 + command: [] + entrypoint: [] + env: + EXECUTION_NODE: "" + CONSENSUS_NODE: "" + LOCATOR_ADDRESS: "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb" + STAKING_MODULE_ID: "1" + OPERATOR_ID: "123456789" + MESSAGES_LOCATION: /app/messages + ORACLE_ADDRESSES_ALLOWLIST: '["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]' + HTTP_PORT: "8989" + RUN_METRICS: "true" + RUN_HEALTH_CHECK: "true" + DRY_RUN: "false" + image: lidofinance/validator-ejector:1.7.0 + ports: [] + volumes: + - /opt/stereum/validatorejector-03f03a11-b23d-4ada-9512-47e3061baaa9/messages:/app/messages + user: "2000" + autoupdate: true + network: mainnet + dependencies: + executionClients: [] + consensusClients: [] + mevboost: [] + otherServices: [] + become: yes + + - name: Create ValidatorEjectorService config + copy: + dest: "/etc/stereum/services/0e7c600b-8bf1-4685-b00b-2638cb26be9c.yaml" + owner: "root" + group: "root" + mode: 0644 + content: | + service: ValidatorEjectorService + id: 0e7c600b-8bf1-4685-b00b-2638cb26be9c + configVersion: 1 + command: [] + entrypoint: [] + env: + EXECUTION_NODE: "" + CONSENSUS_NODE: "" + LOCATOR_ADDRESS: "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb" + STAKING_MODULE_ID: "1" + OPERATOR_ID: "123456789" + MESSAGES_LOCATION: /app/messages + ORACLE_ADDRESSES_ALLOWLIST: '["0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x285f8537e1dAeEdaf617e96C742F2Cf36d63CcfB"]' + HTTP_PORT: "8989" + RUN_METRICS: "true" + RUN_HEALTH_CHECK: "true" + DRY_RUN: "false" + image: lidofinance/validator-ejector:1.7.0 + ports: [] + volumes: + - /opt/stereum/validatorejector-0e7c600b-8bf1-4685-b00b-2638cb26be9c/messages:/app/messages + user: "2000" + autoupdate: true + network: mainnet + dependencies: + executionClients: [] + consensusClients: [] + mevboost: [] + otherServices: [] + become: yes + + - name: Create ValidatorEjectorService config + copy: + dest: "/etc/stereum/services/9041a1ab-2680-0bcb-e633-f934b0e9271a.yaml" + owner: "root" + group: "root" + mode: 0644 + content: | + service: ValidatorEjectorService + id: 9041a1ab-2680-0bcb-e633-f934b0e9271a + configVersion: 1 + command: [] + entrypoint: [] + env: + EXECUTION_NODE: "" + CONSENSUS_NODE: "" + LOCATOR_ADDRESS: "0xe2EF9536DAAAEBFf5b1c130957AB3E80056b06D8" + STAKING_MODULE_ID: "1" + OPERATOR_ID: "123456789" + MESSAGES_LOCATION: /app/messages + ORACLE_ADDRESSES_ALLOWLIST: '["0xcA80ee7313A315879f326105134F938676Cfd7a9","0xf03B8DC8762B97F13Ac82e6F94bE3Ed002FF7459","0x1932f53B1457a5987791a40Ba91f71c5Efd5788F","0x99B2B75F490fFC9A29E4E1f5987BE8e30E690aDF","0x219743f1911d84B32599BdC2Df21fC8Dba6F81a2","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xB1cC91878c1831893D39C2Bb0988404ca5Fa7918","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c"]' + HTTP_PORT: "8989" + RUN_METRICS: "true" + RUN_HEALTH_CHECK: "true" + DRY_RUN: "false" + image: lidofinance/validator-ejector:1.7.0 + ports: [] + volumes: + - /opt/stereum/validatorejector-9041a1ab-2680-0bcb-e633-f934b0e9271a/messages:/app/messages + user: "2000" + autoupdate: true + network: hoodi + dependencies: + executionClients: [] + consensusClients: [] + mevboost: [] + otherServices: [] + become: yes + + - name: Create ValidatorEjectorService config + copy: + dest: "/etc/stereum/services/c41319d7-a472-4ee8-ba8a-25f1c46a2b91.yaml" + owner: "root" + group: "root" + mode: 0644 + content: | + service: ValidatorEjectorService + id: c41319d7-a472-4ee8-ba8a-25f1c46a2b91 + configVersion: 1 + command: [] + entrypoint: [] + env: + EXECUTION_NODE: "" + CONSENSUS_NODE: "" + LOCATOR_ADDRESS: "0xe2EF9536DAAAEBFf5b1c130957AB3E80056b06D8" + STAKING_MODULE_ID: "1" + OPERATOR_ID: "123456789" + MESSAGES_LOCATION: /app/messages + ORACLE_ADDRESSES_ALLOWLIST: '["0xcA80ee7313A315879f326105134F938676Cfd7a9","0xf03B8DC8762B97F13Ac82e6F94bE3Ed002FF7459","0x1932f53B1457a5987791a40Ba91f71c5Efd5788F","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x99B2B75F490fFC9A29E4E1f5987BE8e30E690aDF","0x219743f1911d84B32599BdC2Df21fC8Dba6F81a2","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xB1cC91878c1831893D39C2Bb0988404ca5Fa7918","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c","0x43C45C2455C49eed320F463fF4f1Ece3D2BF5aE2"]' + HTTP_PORT: "8989" + RUN_METRICS: "true" + RUN_HEALTH_CHECK: "true" + DRY_RUN: "false" + image: lidofinance/validator-ejector:1.7.0 + ports: [] + volumes: + - /opt/stereum/validatorejector-c41319d7-a472-4ee8-ba8a-25f1c46a2b91/messages:/app/messages + user: "2000" + autoupdate: true + network: hoodi + dependencies: + executionClients: [] + consensusClients: [] + mevboost: [] + otherServices: [] + become: yes + + - name: Create ValidatorEjectorService config + copy: + dest: "/etc/stereum/services/fccd26c2-e815-6612-f22d-c2a7ff266111.yaml" + owner: "root" + group: "root" + mode: 0644 + content: | + service: ValidatorEjectorService + id: fccd26c2-e815-6612-f22d-c2a7ff266111 + configVersion: 1 + command: [] + entrypoint: [] + env: + EXECUTION_NODE: "" + CONSENSUS_NODE: "" + LOCATOR_ADDRESS: "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" + STAKING_MODULE_ID: "1" + OPERATOR_ID: "123456789" + MESSAGES_LOCATION: /app/messages + ORACLE_ADDRESSES_ALLOWLIST: '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399", + "0xD892c09b556b547c80B7d8c8cB8d75bf541B2284", + "0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5", + "0x31fa51343297FFce0CC1E67a50B2D3428057D1b1", + "0x81E411f1BFDa43493D7994F82fb61A415F6b8Fd4", + "0x4c75FA734a39f3a21C57e583c1c29942F021C6B7", + "0xD3b1e36A372Ca250eefF61f90E833Ca070559970", + "0xF0F23944EfC5A63c53632C571E7377b85d5E6B6f", + "0xb29dD2f6672C0DFF2d2f173087739A42877A5172", + "0xfe43A8B0b481Ae9fB1862d31826532047d2d538c"]' + HTTP_PORT: "8989" + RUN_METRICS: "true" + RUN_HEALTH_CHECK: "true" + DRY_RUN: "false" + image: lidofinance/validator-ejector:1.7.0 + ports: [] + volumes: + - /opt/stereum/validatorejector-fccd26c2-e815-6612-f22d-c2a7ff266111/messages:/app/messages + user: "2000" + autoupdate: true + network: holesky + dependencies: + executionClients: [] + consensusClients: [] + mevboost: [] + otherServices: [] + become: yes + + - name: Create ValidatorEjectorService config + copy: + dest: "/etc/stereum/services/840d4d1b-150d-45b8-8aba-957ce08b8f03.yaml" + owner: "root" + group: "root" + mode: 0644 + content: | + service: ValidatorEjectorService + id: 840d4d1b-150d-45b8-8aba-957ce08b8f03 + configVersion: 1 + command: [] + entrypoint: [] + env: + EXECUTION_NODE: "" + CONSENSUS_NODE: "" + LOCATOR_ADDRESS: "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" + STAKING_MODULE_ID: "1" + OPERATOR_ID: "123456789" + MESSAGES_LOCATION: /app/messages + ORACLE_ADDRESSES_ALLOWLIST: '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399", + "0xD892c09b556b547c80B7d8c8cB8d75bf541B2284"]' + HTTP_PORT: "8989" + RUN_METRICS: "true" + RUN_HEALTH_CHECK: "true" + DRY_RUN: "false" + image: lidofinance/validator-ejector:1.7.0 + ports: [] + volumes: + - /opt/stereum/validatorejector-840d4d1b-150d-45b8-8aba-957ce08b8f03/messages:/app/messages + user: "2000" + autoupdate: true + network: holesky + dependencies: + executionClients: [] + consensusClients: [] + mevboost: [] + otherServices: [] + become: yes diff --git a/controls/roles/update-changes/molecule/241/verify.yml b/controls/roles/update-changes/molecule/241/verify.yml new file mode 100644 index 0000000000..f5eaf44f3e --- /dev/null +++ b/controls/roles/update-changes/molecule/241/verify.yml @@ -0,0 +1,92 @@ +--- +- name: Verify + hosts: all + gather_facts: false + tasks: + # ValidatorEjectorService1 + - name: Read ValidatorEjectorService file + slurp: + src: "/etc/stereum/services/03f03a11-b23d-4ada-9512-47e3061baaa9.yaml" + register: Ejector_service_configuration1_raw + + # ValidatorEjectorService2 + - name: Read ValidatorEjectorService file + slurp: + src: "/etc/stereum/services/0e7c600b-8bf1-4685-b00b-2638cb26be9c.yaml" + register: Ejector_service_configuration2_raw + + # ValidatorEjectorService3 + - name: Read ValidatorEjectorService file + slurp: + src: "/etc/stereum/services/9041a1ab-2680-0bcb-e633-f934b0e9271a.yaml" + register: Ejector_service_configuration3_raw + + # ValidatorEjectorService4 + - name: Read ValidatorEjectorService file + slurp: + src: "/etc/stereum/services/c41319d7-a472-4ee8-ba8a-25f1c46a2b91.yaml" + register: Ejector_service_configuration4_raw + + # ValidatorEjectorService5 + - name: Read ValidatorEjectorService file + slurp: + src: "/etc/stereum/services/fccd26c2-e815-6612-f22d-c2a7ff266111.yaml" + register: Ejector_service_configuration5_raw + + # ValidatorEjectorService6 + - name: Read ValidatorEjectorService file + slurp: + src: "/etc/stereum/services/840d4d1b-150d-45b8-8aba-957ce08b8f03.yaml" + register: Ejector_service_configuration6_raw + + - name: Parse Service configurations + set_fact: + Ejector_service_configuration1: "{{ Ejector_service_configuration1_raw['content'] | b64decode | from_yaml }}" + Ejector_service_configuration2: "{{ Ejector_service_configuration2_raw['content'] | b64decode | from_yaml }}" + Ejector_service_configuration3: "{{ Ejector_service_configuration3_raw['content'] | b64decode | from_yaml }}" + Ejector_service_configuration4: "{{ Ejector_service_configuration4_raw['content'] | b64decode | from_yaml }}" + Ejector_service_configuration5: "{{ Ejector_service_configuration5_raw['content'] | b64decode | from_yaml }}" + Ejector_service_configuration6: "{{ Ejector_service_configuration6_raw['content'] | b64decode | from_yaml }}" + mainnet_oracle_allowlist: '["0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x285f8537e1dAeEdaf617e96C742F2Cf36d63CcfB"]' + holesky_oracle_allowlist: '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399","0xD892c09b556b547c80B7d8c8cB8d75bf541B2284"]' + hoodi_oracle_allowlist: '["0xcA80ee7313A315879f326105134F938676Cfd7a9","0xf03B8DC8762B97F13Ac82e6F94bE3Ed002FF7459","0x1932f53B1457a5987791a40Ba91f71c5Efd5788F","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x99B2B75F490fFC9A29E4E1f5987BE8e30E690aDF","0x219743f1911d84B32599BdC2Df21fC8Dba6F81a2","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xB1cC91878c1831893D39C2Bb0988404ca5Fa7918","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c","0x43C45C2455C49eed320F463fF4f1Ece3D2BF5aE2"]' + + - debug: + msg: "{{ Ejector_service_configuration1 }}" + - debug: + msg: "{{ Ejector_service_configuration1_raw['content'] | b64decode }}" + + - debug: + msg: "{{ Ejector_service_configuration2 }}" + - debug: + msg: "{{ Ejector_service_configuration2_raw['content'] | b64decode }}" + + - debug: + msg: "{{ Ejector_service_configuration3 }}" + - debug: + msg: "{{ Ejector_service_configuration3_raw['content'] | b64decode }}" + + - debug: + msg: "{{ Ejector_service_configuration4 }}" + - debug: + msg: "{{ Ejector_service_configuration4_raw['content'] | b64decode }}" + + - debug: + msg: "{{ Ejector_service_configuration5 }}" + - debug: + msg: "{{ Ejector_service_configuration5_raw['content'] | b64decode }}" + + - debug: + msg: "{{ Ejector_service_configuration6 }}" + - debug: + msg: "{{ Ejector_service_configuration6_raw['content'] | b64decode }}" + + - assert: + that: + - Ejector_service_configuration1.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml == mainnet_oracle_allowlist | from_yaml + - Ejector_service_configuration2.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml == mainnet_oracle_allowlist | from_yaml + - Ejector_service_configuration3.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml == hoodi_oracle_allowlist | from_yaml + - Ejector_service_configuration4.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml == hoodi_oracle_allowlist | from_yaml + - Ejector_service_configuration5.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml == holesky_oracle_allowlist | from_yaml + - Ejector_service_configuration6.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml == holesky_oracle_allowlist | from_yaml +# EOF diff --git a/controls/roles/update-changes/tasks/2.2.2/prysm_changes.yaml b/controls/roles/update-changes/tasks/2.2.2/prysm_changes.yaml deleted file mode 100644 index 7c3fa63dd3..0000000000 --- a/controls/roles/update-changes/tasks/2.2.2/prysm_changes.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - -- name: set new config - ansible.utils.update_fact: - updates: - - path: service_configuration.command - value: "{{ service_configuration.command | split(' ') | difference(['--p2p-host-ip=\"\"', '--p2p-host-dns=\"\"', '/app/cmd/beacon-chain/beacon-chain', '/app/cmd/validator/validator']) | select('string') | select('match', '^(?!\\s*$).+') | list }}" - - path: service_configuration.entrypoint - value: ["{{ service_configuration.command | split(' ') | select('string') | select('match', '^(?!\\s*$).+') | list | first}}"] - register: updated - when: - - service_configuration.service == "PrysmValidatorService" or service_configuration.service == "PrysmBeaconService" - - service_configuration.command is string - -- name: update config - set_fact: - service_configuration: "{{ updated.service_configuration }}" - when: - - service_configuration.service == "PrysmValidatorService" or service_configuration.service == "PrysmBeaconService" - - service_configuration.command is string - - -- name: Write Config - copy: - dest: "{{ config_file.path }}" - content: "{{ service_configuration | to_nice_yaml(indent=2) }}" - owner: "root" - group: "root" - mode: 0644 - when: - - service_configuration.service == "PrysmValidatorService" or service_configuration.service == "PrysmBeaconService" - - updated.changed \ No newline at end of file diff --git a/controls/roles/update-changes/tasks/2.2.3/ejector_changes.yaml b/controls/roles/update-changes/tasks/2.2.3/ejector_changes.yaml deleted file mode 100644 index 5248870d12..0000000000 --- a/controls/roles/update-changes/tasks/2.2.3/ejector_changes.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - service_configuration_text: "{{ service_configuration_raw['content'] | b64decode }}" - -- name: Update Oracle Allow List - replace: - path: "{{ config_file.path }}" - regexp: '(?s)ORACLE_ADDRESSES_ALLOWLIST:.*?]["'']{1}' - replace: 'ORACLE_ADDRESSES_ALLOWLIST: ''["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]''' - when: - - service_configuration.service == "ValidatorEjectorService" - - service_configuration.network == "mainnet" - - service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xEC4BfbAF681eb505B94E4a7849877DC6c600Ca3A') | length == 1 - -- name: Update Oracle Allow List - replace: - path: "{{ config_file.path }}" - regexp: '(?s)ORACLE_ADDRESSES_ALLOWLIST:.*?]["'']{1}' - replace: 'ORACLE_ADDRESSES_ALLOWLIST: ''["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399","0xD892c09b556b547c80B7d8c8cB8d75bf541B2284","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x31fa51343297FFce0CC1E67a50B2D3428057D1b1","0x81E411f1BFDa43493D7994F82fb61A415F6b8Fd4","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0xF0F23944EfC5A63c53632C571E7377b85d5E6B6f","0xb29dD2f6672C0DFF2d2f173087739A42877A5172","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c"]''' - when: - - service_configuration.service == "ValidatorEjectorService" - - service_configuration.network == "holesky" - - service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0x3799bDA7B884D33F79CEC926af21160dc47fbe05') | length == 1 diff --git a/controls/roles/update-changes/tasks/2.2.3/erigon_changes.yaml b/controls/roles/update-changes/tasks/2.2.3/erigon_changes.yaml deleted file mode 100644 index c44fc5609a..0000000000 --- a/controls/roles/update-changes/tasks/2.2.3/erigon_changes.yaml +++ /dev/null @@ -1,48 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - -- name: Update Erigon image - when: service_configuration.service == "ErigonService" and "thorax" in service_configuration.image - block: - - name: Download update metadata - uri: - url: https://stereum.net/downloads/updates.json - method: GET - return_content: true - status_code: 200 - body_format: json - register: update_data_download - - - name: Set update data - set_fact: - update_data: "{{ update_data_test | default(update_data_download) }}" - - - name: Get latest version for this service - set_fact: - new_service_docker_image_tag: "{{ update_data.json[service_configuration.network][service_configuration.service] | default(update_data.json['mainnet'][service_configuration.service]) | last }}" - - - name: set new config - ansible.utils.update_fact: - updates: - - path: service_configuration.image - value: "erigontech/erigon:{{ new_service_docker_image_tag }}" - register: updated - - - name: update config - set_fact: - new_service_configuration: "{{ updated.service_configuration }}" - - - name: Write Config - copy: - dest: "{{ config_file.path }}" - content: "{{ new_service_configuration | to_nice_yaml(indent=2) }}" - owner: "root" - group: "root" - mode: 0644 diff --git a/controls/roles/update-changes/tasks/2.2.3/mev_changes.yaml b/controls/roles/update-changes/tasks/2.2.3/mev_changes.yaml deleted file mode 100644 index b89e93d33c..0000000000 --- a/controls/roles/update-changes/tasks/2.2.3/mev_changes.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - -- name: Remove Eden Relay - when: service_configuration.service == "FlashbotsMevBoostService" and service_configuration.entrypoint | select('match', 'eden') | length > 0 - block: - - name: Remove Eden relays from the relays list - replace: - path: "{{ config_file.path }}" - regexp: ",?https://[^,]*eden[^,]*" - replace: "" diff --git a/controls/roles/update-changes/tasks/2.2.3/ssv_changes.yaml b/controls/roles/update-changes/tasks/2.2.3/ssv_changes.yaml deleted file mode 100644 index 0bf3da80f4..0000000000 --- a/controls/roles/update-changes/tasks/2.2.3/ssv_changes.yaml +++ /dev/null @@ -1,48 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - -- name: Update SSV image - when: service_configuration.service == "SSVNetworkService" and "bloxstaking" in service_configuration.image - block: - - name: Download update metadata - uri: - url: https://stereum.net/downloads/updates.json - method: GET - return_content: true - status_code: 200 - body_format: json - register: update_data_download - - - name: Set update data - set_fact: - update_data: "{{ update_data_test | default(update_data_download) }}" - - - name: Get latest version for this service - set_fact: - new_service_docker_image_tag: "{{ update_data.json[service_configuration.network][service_configuration.service] | default(update_data.json['mainnet'][service_configuration.service]) | last }}" - - - name: set new config - ansible.utils.update_fact: - updates: - - path: service_configuration.image - value: "ssvlabs/ssv-node:{{ new_service_docker_image_tag }}" - register: updated - - - name: update config - set_fact: - new_service_configuration: "{{ updated.service_configuration }}" - - - name: Write Config - copy: - dest: "{{ config_file.path }}" - content: "{{ new_service_configuration | to_nice_yaml(indent=2) }}" - owner: "root" - group: "root" - mode: 0644 diff --git a/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml deleted file mode 100644 index 8926e74e1e..0000000000 --- a/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- name: Find service configs - find: - paths: "/etc/stereum/services" - register: service_config_files - -- name: Include Ejector Changes - include_tasks: ejector_changes.yaml - loop: "{{ service_config_files.files }}" - loop_control: - loop_var: config_file - -- name: Include SSV Changes - include_tasks: ssv_changes.yaml - loop: "{{ service_config_files.files }}" - loop_control: - loop_var: config_file - -- name: Include Erigon Changes - include_tasks: erigon_changes.yaml - loop: "{{ service_config_files.files }}" - loop_control: - loop_var: config_file - -- name: Include MEV Changes - include_tasks: mev_changes.yaml - loop: "{{ service_config_files.files }}" - loop_control: - loop_var: config_file diff --git a/controls/roles/update-changes/tasks/2.2.4/ejector_changes.yaml b/controls/roles/update-changes/tasks/2.2.4/ejector_changes.yaml deleted file mode 100644 index e922def268..0000000000 --- a/controls/roles/update-changes/tasks/2.2.4/ejector_changes.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - service_configuration_text: "{{ service_configuration_raw['content'] | b64decode }}" - -- name: Update Oracle Allow List - replace: - path: "{{ config_file.path }}" - regexp: '(?s)ORACLE_ADDRESSES_ALLOWLIST:.*?]["'']{1}' - replace: 'ORACLE_ADDRESSES_ALLOWLIST: ''["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]''' - when: - - service_configuration.service == "ValidatorEjectorService" - - service_configuration.network == "mainnet" - - service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0x1Ca0fEC59b86F549e1F1184d97cb47794C8Af58d') | length == 1 diff --git a/controls/roles/update-changes/tasks/2.2.4/prysm_changes.yaml b/controls/roles/update-changes/tasks/2.2.4/prysm_changes.yaml deleted file mode 100644 index 9af9420ede..0000000000 --- a/controls/roles/update-changes/tasks/2.2.4/prysm_changes.yaml +++ /dev/null @@ -1,53 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - service_configuration_text: "{{ service_configuration_raw['content'] | b64decode }}" - -- name: Update PrysmBeacon Changes - when: service_configuration.service == "PrysmBeaconService" or service_configuration.service == "PrysmValidatorService" - block: - - name: Update grpc-gateway-corsdomain - replace: - path: "{{ config_file.path }}" - regexp: "--grpc-gateway-corsdomain" - replace: "--http-cors-domain" - - - name: Update grpc-gateway* to http* - replace: - path: "{{ config_file.path }}" - regexp: "--grpc-gateway" - replace: "--http" - - - name: Update ports - lineinfile: - path: "{{ config_file.path }}" - regexp: "[0-9]{1,3}:[0-9]{1,5}:4000" - state: absent - when: - - service_configuration.service == "PrysmBeaconService" - -- name: Update PrysmValidator Changes - when: service_configuration.service == "PrysmValidatorService" - block: - - name: get urls - when: service_configuration.command | select('match', '--beacon-rpc-gateway-provider') | length > 0 - set_fact: - urls: "{{ service_configuration.command | select('match', '--beacon-rpc-gateway-provider') | first | regex_replace('^--beacon-rpc-gateway-provider[= ]', '') | split(',') | reject('equalto', '') | map('regex_replace', '^(.*)$', 'http://\\1') | join(',') }}" - - - name: Update beacon-rpc-gateway-provider - replace: - path: "{{ config_file.path }}" - regexp: "--beacon-rpc-gateway-provider.*" - replace: "--beacon-rest-api-provider={{ urls | default('') }}" - - - name: Add enable-beacon-rest-api - replace: - path: "{{ config_file.path }}" - regexp: "--beacon-rpc-provider.*" - replace: "--enable-beacon-rest-api" diff --git a/controls/roles/update-changes/tasks/2.2.4/reth_changes.yaml b/controls/roles/update-changes/tasks/2.2.4/reth_changes.yaml deleted file mode 100644 index d1aeadb31b..0000000000 --- a/controls/roles/update-changes/tasks/2.2.4/reth_changes.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -- name: Read service file - slurp: - src: "{{ config_file.path }}" - register: service_configuration_raw - -- name: Parse service's configuration - set_fact: - service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" - -- name: set new config - ansible.utils.update_fact: - updates: - - path: service_configuration.command - value: "{{ service_configuration.command | difference(['--engine.legacy']) }}" - register: updated - when: - - service_configuration.service == "RethService" - - "'--engine.legacy' in service_configuration.command" - -- name: update config - set_fact: - service_configuration: "{{ updated.service_configuration }}" - when: - - service_configuration.service == "RethService" - - "'--engine.legacy' in service_configuration.command" - -- name: Write Config - copy: - dest: "{{ config_file.path }}" - content: "{{ service_configuration | to_nice_yaml(indent=2) }}" - owner: "root" - group: "root" - mode: 0644 - when: - - service_configuration.service == "RethService" - - updated.changed diff --git a/controls/roles/update-changes/tasks/2.2.4/updates-224.yaml b/controls/roles/update-changes/tasks/2.2.4/updates-224.yaml deleted file mode 100644 index 88a7f0f396..0000000000 --- a/controls/roles/update-changes/tasks/2.2.4/updates-224.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -- name: Find service configs - find: - paths: "/etc/stereum/services" - register: service_config_files - -- name: Include Ejector Changes - include_tasks: ejector_changes.yaml - loop: "{{ service_config_files.files }}" - loop_control: - loop_var: config_file - -- name: Include Prysm Changes - include_tasks: prysm_changes.yaml - loop: "{{ service_config_files.files }}" - loop_control: - loop_var: config_file - -- name: Include Reth Changes - include_tasks: reth_changes.yaml - loop: "{{ service_config_files.files }}" - loop_control: - loop_var: config_file diff --git a/controls/roles/update-changes/tasks/2.4.1/ejector_changes.yaml b/controls/roles/update-changes/tasks/2.4.1/ejector_changes.yaml new file mode 100644 index 0000000000..9b302a8ff5 --- /dev/null +++ b/controls/roles/update-changes/tasks/2.4.1/ejector_changes.yaml @@ -0,0 +1,43 @@ +--- +- name: Read service file + slurp: + src: "{{ config_file.path }}" + register: service_configuration_raw + +- name: Parse service's configuration + set_fact: + service_configuration: "{{ service_configuration_raw['content'] | b64decode | from_yaml }}" + service_configuration_text: "{{ service_configuration_raw['content'] | b64decode }}" + mainnet_oracle_allowlist: '["0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x285f8537e1dAeEdaf617e96C742F2Cf36d63CcfB"]' + holesky_oracle_allowlist: '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399","0xD892c09b556b547c80B7d8c8cB8d75bf541B2284"]' + hoodi_oracle_allowlist: '["0xcA80ee7313A315879f326105134F938676Cfd7a9","0xf03B8DC8762B97F13Ac82e6F94bE3Ed002FF7459","0x1932f53B1457a5987791a40Ba91f71c5Efd5788F","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x99B2B75F490fFC9A29E4E1f5987BE8e30E690aDF","0x219743f1911d84B32599BdC2Df21fC8Dba6F81a2","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xB1cC91878c1831893D39C2Bb0988404ca5Fa7918","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c","0x43C45C2455C49eed320F463fF4f1Ece3D2BF5aE2"]' + +- name: Update Oracle Allow List + replace: + path: "{{ config_file.path }}" + regexp: '(?s)ORACLE_ADDRESSES_ALLOWLIST:.*?]["'']{1}' + replace: 'ORACLE_ADDRESSES_ALLOWLIST: ''["0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x285f8537e1dAeEdaf617e96C742F2Cf36d63CcfB"]''' + when: + - service_configuration.service == "ValidatorEjectorService" + - service_configuration.network == "mainnet" + - (service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | difference(mainnet_oracle_allowlist | from_yaml) | length != 0) or (service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | length) != (mainnet_oracle_allowlist | from_yaml | length) + +- name: Update Oracle Allow List + replace: + path: "{{ config_file.path }}" + regexp: '(?s)ORACLE_ADDRESSES_ALLOWLIST:.*?]["'']{1}' + replace: 'ORACLE_ADDRESSES_ALLOWLIST: ''["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399","0xD892c09b556b547c80B7d8c8cB8d75bf541B2284"]''' + when: + - service_configuration.service == "ValidatorEjectorService" + - service_configuration.network == "holesky" + - (service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | difference(holesky_oracle_allowlist | from_yaml) | length != 0) or (service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | length) != (holesky_oracle_allowlist | from_yaml | length) + +- name: Update Oracle Allow List + replace: + path: "{{ config_file.path }}" + regexp: '(?s)ORACLE_ADDRESSES_ALLOWLIST:.*?]["'']{1}' + replace: 'ORACLE_ADDRESSES_ALLOWLIST: ''["0xcA80ee7313A315879f326105134F938676Cfd7a9","0xf03B8DC8762B97F13Ac82e6F94bE3Ed002FF7459","0x1932f53B1457a5987791a40Ba91f71c5Efd5788F","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x99B2B75F490fFC9A29E4E1f5987BE8e30E690aDF","0x219743f1911d84B32599BdC2Df21fC8Dba6F81a2","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xB1cC91878c1831893D39C2Bb0988404ca5Fa7918","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c","0x43C45C2455C49eed320F463fF4f1Ece3D2BF5aE2"]''' + when: + - service_configuration.service == "ValidatorEjectorService" + - service_configuration.network == "hoodi" + - (service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | difference(hoodi_oracle_allowlist | from_yaml) | length != 0) or (service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | length) != (hoodi_oracle_allowlist | from_yaml | length) diff --git a/controls/roles/update-changes/tasks/2.2.2/updates-222.yaml b/controls/roles/update-changes/tasks/2.4.1/updates-241.yaml similarity index 63% rename from controls/roles/update-changes/tasks/2.2.2/updates-222.yaml rename to controls/roles/update-changes/tasks/2.4.1/updates-241.yaml index 585c2fd7cf..d3deab9df8 100644 --- a/controls/roles/update-changes/tasks/2.2.2/updates-222.yaml +++ b/controls/roles/update-changes/tasks/2.4.1/updates-241.yaml @@ -4,8 +4,8 @@ paths: "/etc/stereum/services" register: service_config_files -- name: Include Prysm Changes - include_tasks: prysm_changes.yaml +- name: Include Ejector Changes + include_tasks: ejector_changes.yaml loop: "{{ service_config_files.files }}" loop_control: - loop_var: config_file \ No newline at end of file + loop_var: config_file diff --git a/controls/roles/update-changes/tasks/main.yml b/controls/roles/update-changes/tasks/main.yml index a38357780d..49adcbc7c5 100644 --- a/controls/roles/update-changes/tasks/main.yml +++ b/controls/roles/update-changes/tasks/main.yml @@ -1,15 +1,3 @@ -- name: Include 2.2.2 Update Scripts - include_tasks: "2.2.2/updates-222.yaml" - ignore_errors: yes - -- name: Include 2.2.3 Update Scripts - include_tasks: "2.2.3/updates-223.yaml" - ignore_errors: yes - -- name: Include 2.2.4 Update Scripts - include_tasks: "2.2.4/updates-224.yaml" - ignore_errors: yes - - name: Include 2.3.2 Update Scripts include_tasks: "2.3.2/updates-232.yaml" ignore_errors: yes @@ -17,4 +5,8 @@ - name: Include 2.3.5 Update Scripts include_tasks: "2.3.5/updates-235.yaml" ignore_errors: yes + +- name: Include 2.4.1 Update Scripts + include_tasks: "2.4.1/updates-241.yaml" + ignore_errors: yes # EOF diff --git a/launcher/src/backend/Monitoring.js b/launcher/src/backend/Monitoring.js index c89eeaf7b4..a86e5e2308 100755 --- a/launcher/src/backend/Monitoring.js +++ b/launcher/src/backend/Monitoring.js @@ -3257,130 +3257,6 @@ export class Monitoring { } } - async getCurrentEpochSlot(currBeaconService) { - try { - currBeaconService = currBeaconService.toUpperCase(); - let beaconStatus = await this.getBeaconStatus(); - // Ensure beaconStatus.data is an array - if (!Array.isArray(beaconStatus.data)) { - beaconStatus.data = [beaconStatus.data]; - } - beaconStatus.data = beaconStatus.data.filter((obj) => obj.clt === currBeaconService); - let currentEpochSlotStatus = {}; - if (beaconStatus.code === 0) { - // retrive current network & define epoch length (ethereum -> 32 | gnosis -> 16) - let serviceName = beaconStatus.data[0].clt.toLowerCase(); - let serviceNameConverted = serviceName.charAt(0).toUpperCase() + serviceName.slice(1); - let serviceInfo = await this.getServiceInfos(serviceNameConverted + "BeaconService"); - const currentNetwork = serviceInfo[0].config.network; - const epochLength = currentNetwork === "gnosis" ? 16 : 32; - - // retrive current-Slot also current, justified and finalized-Epochs - const beaconAPIPort = beaconStatus.data[0].beacon.destinationPort; - let APIBegin = `curl -s -X 'GET' 'http://localhost:${beaconAPIPort}/eth/v1/beacon/`; - let cmdBegin = `curl -s -X 'GET' 'http://localhost:${beaconAPIPort}/eth/v2/beacon/blocks/`; - let cmdEnd = "' -H 'accept: application/json'"; - let notFound = ":404"; - - let beaconAPISlotRunCmd = await this.nodeConnection.sshService.exec(`${APIBegin}headers/head${cmdEnd}`); - let beaconAPIEpochRunCmd = await this.nodeConnection.sshService.exec(`${APIBegin}states/head/finality_checkpoints${cmdEnd}`); - - let currentSlot = parseInt(JSON.parse(beaconAPISlotRunCmd.stdout).data.header.message.slot); - let currentEpoch = Math.floor(currentSlot / epochLength); - let currentJustifiedEpoch = parseInt(JSON.parse(beaconAPIEpochRunCmd.stdout).data.current_justified.epoch); - let previousJustifiedEpoch = parseInt(JSON.parse(beaconAPIEpochRunCmd.stdout).data.previous_justified.epoch); - let finalizedEpoch = parseInt(JSON.parse(beaconAPIEpochRunCmd.stdout).data.finalized.epoch) - 1; // because beacon-API sends previousJustifiedEpoch = finalizedEpoch - - // create return data - currentEpochSlotStatus = { - currentSlot: currentSlot, - currentEpoch: currentEpoch, - currentJustifiedEpoch: currentJustifiedEpoch, - previousJustifiedEpoch: previousJustifiedEpoch, - finalizedEpoch: finalizedEpoch, - beaconStatus: beaconStatus.code, - currentEpochStatus: [], - justifiedEpochStatus: [], - preJustifiedEpochStatus: [], - finalizedEpochStatus: [], - }; - - // create sub arrays - const currentSlotStatusArray = []; - const justifiedSlotStatusArray = []; - const preJustifiedSlotStatusArray = []; - const finalizedSlotStatusArray = []; - - // retrive corresponding Slots' status - let firstSlots = { - firstSlotInCurrentEpoch: currentEpoch * epochLength, - firstSlotInJustifiedEpoch: currentJustifiedEpoch * epochLength, - firstSlotInPreviousJustifiedEpoch: previousJustifiedEpoch * epochLength, - firstSlotInFinalizedEpoch: finalizedEpoch * epochLength, - }; - - for (const slots in firstSlots) { - let slotsNumberInEpoch = `${slots}` === "firstSlotInCurrentEpoch" ? (currentSlot % epochLength) + 1 : epochLength; - - for (let i = 0; i < slotsNumberInEpoch; i++) { - let beaconAPISlotStatusCmd = - serviceNameConverted === "Lodestar" - ? `${cmdBegin}${firstSlots[slots] + i}${cmdEnd}` - : `${cmdBegin}${firstSlots[slots] + i}/root${cmdEnd}`; - - let beaconAPISlotStatusRunCmd = await this.nodeConnection.sshService.exec(beaconAPISlotStatusCmd); - if (`${slots}` === "firstSlotInCurrentEpoch") { - currentSlotStatusArray.push({ - slotNumber: firstSlots[slots] + i, - slotStatus: beaconAPISlotStatusRunCmd.stdout.includes(notFound) ? "missed" : "proposed", - }); - } else if (`${slots}` === "firstSlotInJustifiedEpoch") { - justifiedSlotStatusArray.push({ - slotNumber: firstSlots[slots] + i, - slotStatus: beaconAPISlotStatusRunCmd.stdout.includes(notFound) ? "missed" : "proposed", - }); - } else if (`${slots}` === "firstSlotInPreviousJustifiedEpoch") { - preJustifiedSlotStatusArray.push({ - slotNumber: firstSlots[slots] + i, - slotStatus: beaconAPISlotStatusRunCmd.stdout.includes(notFound) ? "missed" : "proposed", - }); - } else { - finalizedSlotStatusArray.push({ - slotNumber: firstSlots[slots] + i, - slotStatus: beaconAPISlotStatusRunCmd.stdout.includes(notFound) ? "missed" : "proposed", - }); - } - } - } - - currentEpochSlotStatus["currentEpochStatus"].push(currentSlotStatusArray); - currentEpochSlotStatus["justifiedEpochStatus"].push(justifiedSlotStatusArray); - currentEpochSlotStatus["preJustifiedEpochStatus"].push(preJustifiedSlotStatusArray); - currentEpochSlotStatus["finalizedEpochStatus"].push(finalizedSlotStatusArray); - return currentEpochSlotStatus; - } else if (beaconStatus.code === 2) { - return (currentEpochSlotStatus = { - currentSlot: null, - currentEpoch: null, - currentJustifiedEpoch: null, - previousJustifiedEpoch: null, - finalizedEpoch: null, - beaconStatus: 2, - currentEpochStatus: [], - justifiedEpochStatus: [], - preJustifiedEpochStatus: [], - finalizedEpochStatus: [], - }); - } - } catch (error) { - console.log("Error occured to get Beacon node status: ", error); - return { - info: "Error occured to get Beacon node status: ", - data: error, - }; - } - } - async exitValidatorAccount(pubkey, serviceID) { const beaconStatus = await this.getBeaconStatus(); diff --git a/launcher/src/backend/ethereum-services/ValidatorEjectorService.js b/launcher/src/backend/ethereum-services/ValidatorEjectorService.js index feb2f70969..215147a1e3 100755 --- a/launcher/src/backend/ethereum-services/ValidatorEjectorService.js +++ b/launcher/src/backend/ethereum-services/ValidatorEjectorService.js @@ -18,12 +18,11 @@ export class ValidatorEjectorService extends NodeService { case "mainnet": locatorAddress = "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb"; //https://docs.lido.fi/deployed-contracts/#core-protocol oracleAllowList = - '["0x140Bd8FbDc884f48dA7cb1c09bE8A2fAdfea776E","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf"]'; + '["0x73181107c8D9ED4ce0bbeF7A0b4ccf3320C41d12","0xA7410857ABbf75043d61ea54e07D57A6EB6EF186","0x404335BcE530400a5814375E7Ec1FB55fAff3eA2","0x946D3b081ed19173dC83Cd974fC69e1e760B7d78","0x007DE4a5F7bc37E2F26c0cb2E8A95006EE9B89b5","0xc79F702202E3A6B0B6310B537E786B9ACAA19BAf","0x61c91ECd902EB56e314bB2D5c5C07785444Ea1c8","0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9","0x285f8537e1dAeEdaf617e96C742F2Cf36d63CcfB"]'; break; case "holesky": locatorAddress = "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8"; //https://docs.lido.fi/deployed-contracts/holesky#core-protocol - oracleAllowList = - '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399", "0xD892c09b556b547c80B7d8c8cB8d75bf541B2284", "0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5", "0x31fa51343297FFce0CC1E67a50B2D3428057D1b1", "0x81E411f1BFDa43493D7994F82fb61A415F6b8Fd4", "0x4c75FA734a39f3a21C57e583c1c29942F021C6B7", "0xD3b1e36A372Ca250eefF61f90E833Ca070559970", "0xF0F23944EfC5A63c53632C571E7377b85d5E6B6f", "0xb29dD2f6672C0DFF2d2f173087739A42877A5172", "0xfe43A8B0b481Ae9fB1862d31826532047d2d538c"]'; + oracleAllowList = '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399","0xD892c09b556b547c80B7d8c8cB8d75bf541B2284"]'; break; case "sepolia": locatorAddress = "0x8f6254332f69557A72b0DA2D5F0Bc07d4CA991E7"; //https://docs.lido.fi/deployed-contracts/sepolia#core-protocol @@ -31,7 +30,7 @@ export class ValidatorEjectorService extends NodeService { case "hoodi": locatorAddress = "0xe2EF9536DAAAEBFf5b1c130957AB3E80056b06D8"; //https://docs.lido.fi/deployed-contracts/hoodi#core-protocol oracleAllowList = - '["0xcA80ee7313A315879f326105134F938676Cfd7a9","0xf03B8DC8762B97F13Ac82e6F94bE3Ed002FF7459","0x1932f53B1457a5987791a40Ba91f71c5Efd5788F","0x99B2B75F490fFC9A29E4E1f5987BE8e30E690aDF","0x219743f1911d84B32599BdC2Df21fC8Dba6F81a2","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xB1cC91878c1831893D39C2Bb0988404ca5Fa7918","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c"]'; + '["0xcA80ee7313A315879f326105134F938676Cfd7a9","0xf03B8DC8762B97F13Ac82e6F94bE3Ed002FF7459","0x1932f53B1457a5987791a40Ba91f71c5Efd5788F","0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5","0x99B2B75F490fFC9A29E4E1f5987BE8e30E690aDF","0x219743f1911d84B32599BdC2Df21fC8Dba6F81a2","0xD3b1e36A372Ca250eefF61f90E833Ca070559970","0x4c75FA734a39f3a21C57e583c1c29942F021C6B7","0xB1cC91878c1831893D39C2Bb0988404ca5Fa7918","0xfe43A8B0b481Ae9fB1862d31826532047d2d538c","0x43C45C2455C49eed320F463fF4f1Ece3D2BF5aE2"]'; break; default: break; diff --git a/launcher/src/components/UI/control-page/components/widgets/AmsterdamComponent.vue b/launcher/src/components/UI/control-page/components/widgets/AmsterdamComponent.vue deleted file mode 100755 index 2d95b9f9ea..0000000000 --- a/launcher/src/components/UI/control-page/components/widgets/AmsterdamComponent.vue +++ /dev/null @@ -1,459 +0,0 @@ - - - - diff --git a/launcher/src/components/UI/control-page/components/widgets/EpochSlot.vue b/launcher/src/components/UI/control-page/components/widgets/EpochSlot.vue index bde8834747..0d863f2b5e 100644 --- a/launcher/src/components/UI/control-page/components/widgets/EpochSlot.vue +++ b/launcher/src/components/UI/control-page/components/widgets/EpochSlot.vue @@ -21,7 +21,7 @@ /> { - if (!controlStore.currentResult || controlStore.currentResult.beaconStatus === undefined) { - return "Checking Beacon Status..."; + return "Loading..."; +}); + +const refreshTimer = () => { + const intervalTime = setupsStore.selectedServicePairs?.network === "gnosis" ? 5000 : 11000; + + polling.value = setInterval(() => { + currentEpochSlot(); + }, intervalTime); +}; + +const currentEpochSlot = async () => { + try { + let res = await ControlService?.getCurrentEpochandSlot(); + res.currentEpoch = res.current_epoch; + res.currentSlot = res.current_slot; + delete res.current_epoch; + delete res.current_slot; + controlStore.currentResult = res; + } catch (error) { + console.error("An error occurred while fetching currentEpochandSlot:", error); } - return controlStore.currentResult.beaconStatus !== 0 ? "No Running Beacon Node!" : "Loading..."; +}; + +onMounted(() => { + refreshTimer(); +}); + +onBeforeUnmount(() => { + clearInterval(polling.value); }); +const getSlotIndex = () => { + const slot = controlStore?.currentResult?.currentSlot; + return slot % controlStore.currentResult.slotsPerEpoch; +}; + const isConsensusMissing = computed(() => footerStore?.missingServices?.includes("consensus")); -const flag = computed(() => !controlStore?.currentResult || controlStore?.currentResult?.beaconStatus !== 0); +const flag = computed(() => !controlStore?.currentResult); diff --git a/launcher/src/components/UI/control-page/sections/StakingSidebar.vue b/launcher/src/components/UI/control-page/sections/StakingSidebar.vue index d1356a66dc..9de214b089 100644 --- a/launcher/src/components/UI/control-page/sections/StakingSidebar.vue +++ b/launcher/src/components/UI/control-page/sections/StakingSidebar.vue @@ -7,7 +7,7 @@ v-if="controlStore.pickedService == 'exeCons' || controlStore.pickedService == 'vld'" class="amsterdam-widget col-start-1 col-span-6 row-start-4 row-span-3 text-white" > - + - import WidgetCard from "../components/cards/WidgetCard.vue"; import SelectServiceWidget from "../components/widgets/SelectServiceWidget.vue"; -import AmsterdamComponent from "../components/widgets/AmsterdamComponent.vue"; import TheStaking from "../components/widgets/TheStaking.vue"; import EndpointWidget from "../components/widgets/EndpointWidget.vue"; import PeerToPeer from "../components/widgets/PeerToPeer.vue"; diff --git a/launcher/src/components/UI/the-control/ControlDashboard.vue b/launcher/src/components/UI/the-control/ControlDashboard.vue index 995ccb482d..0ad29cf36b 100755 --- a/launcher/src/components/UI/the-control/ControlDashboard.vue +++ b/launcher/src/components/UI/the-control/ControlDashboard.vue @@ -25,9 +25,6 @@ - - - @@ -67,7 +64,6 @@ import TheCpu from "../control-page/components/widgets/TheCpu.vue"; import TheHard from "./TheHard.vue"; import MachineName from "./MachineName.vue"; import DashboardCard from "./DashboardCard.vue"; -import AmsterdamComponent from "./AmsterdamComponent.vue"; import TheRam from "../control-page/components/widgets/TheRam.vue"; import PeerToPeer from "./PeerToPeer.vue"; import TheNetwork from "./TheNetwork.vue"; @@ -88,7 +84,6 @@ export default { SyncStatus, TheHard, DashboardCard, - AmsterdamComponent, MachineName, TheRam, // NewPeerToPeer, @@ -197,14 +192,6 @@ export default { grid-column: 1/2; grid-row: 4/5; } -.amsterdam { - grid-row: 3/4; - grid-column: 2/3; - display: flex; - justify-content: center; - align-items: center; - box-sizing: border-box; -} .the-cpu { grid-row: 5/6; grid-column: 1/2; diff --git a/launcher/src/components/UI/the-control/EpochSlot.vue b/launcher/src/components/UI/the-control/EpochSlot.vue deleted file mode 100755 index 5b00aabf03..0000000000 --- a/launcher/src/components/UI/the-control/EpochSlot.vue +++ /dev/null @@ -1,131 +0,0 @@ - - -