From 6c0c9bfda0315bbc1ce87c4644810758ceda15a6 Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:00:03 +0200 Subject: [PATCH 1/8] ADD: Erigon Changes --- .../update-changes/molecule/223/prepare.yml | 124 ++++++++++++++++-- .../update-changes/molecule/223/verify.yml | 34 ++++- .../tasks/2.2.3/erigon_changes.yaml | 48 +++++++ .../tasks/2.2.3/updates-223.yaml | 8 +- launcher/src/backend/OneClickInstall.js | 3 - launcher/src/backend/ServiceManager.js | 2 - .../ethereum-services/ErigonService.js | 15 +-- 7 files changed, 202 insertions(+), 32 deletions(-) create mode 100644 controls/roles/update-changes/tasks/2.2.3/erigon_changes.yaml diff --git a/controls/roles/update-changes/molecule/223/prepare.yml b/controls/roles/update-changes/molecule/223/prepare.yml index c4c5cd28f..66d31f161 100644 --- a/controls/roles/update-changes/molecule/223/prepare.yml +++ b/controls/roles/update-changes/molecule/223/prepare.yml @@ -4,18 +4,18 @@ tasks: - name: Make sure Stereum's config path exists file: - path: '/etc/stereum/services' + path: "/etc/stereum/services" state: directory - owner: 'root' - group: 'root' + 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' + dest: "/etc/stereum/services/15ce3684-4dbd-4657-8a21-b1243b72b1ca.yaml" + owner: "root" + group: "root" mode: 0644 content: | service: ValidatorEjectorService @@ -63,9 +63,9 @@ - name: Create ValidatorEjectorService config copy: - dest: '/etc/stereum/services/41b15ea7-12d4-49f6-8448-8a6164edef36.yaml' - owner: 'root' - group: 'root' + dest: "/etc/stereum/services/41b15ea7-12d4-49f6-8448-8a6164edef36.yaml" + owner: "root" + group: "root" mode: 0644 content: | service: ValidatorEjectorService @@ -102,4 +102,110 @@ 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 #EOF diff --git a/controls/roles/update-changes/molecule/223/verify.yml b/controls/roles/update-changes/molecule/223/verify.yml index 1f375cb43..6eeeb5353 100644 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ b/controls/roles/update-changes/molecule/223/verify.yml @@ -6,34 +6,60 @@ # ValidatorEjectorService - name: Read ValidatorEjectorService file slurp: - src: '/etc/stereum/services/15ce3684-4dbd-4657-8a21-b1243b72b1ca.yaml' + 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' + src: "/etc/stereum/services/41b15ea7-12d4-49f6-8448-8a6164edef36.yaml" register: Ejector_service_configuration2_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 + - 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 }}" + Erigon_service_configuration: "{{ Erigon_service_configuration_raw['content'] | b64decode | from_yaml }}" + Erigon_service_configuration2: "{{ Erigon_service_configuration2_raw['content'] | b64decode | from_yaml }}" - debug: - msg: '{{ Ejector_service_configuration }}' + msg: "{{ Ejector_service_configuration }}" - debug: msg: "{{ Ejector_service_configuration_raw['content'] | b64decode }}" - debug: - msg: '{{ Ejector_service_configuration2 }}' + msg: "{{ Ejector_service_configuration2 }}" - debug: msg: "{{ Ejector_service_configuration2_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 }}" + - 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 + - Erigon_service_configuration.image | split(':') | first == 'erigontech/erigon' + - Erigon_service_configuration2.image == 'erigontech/erigon:v2.60.8' # EOF 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 new file mode 100644 index 000000000..c44fc5609 --- /dev/null +++ b/controls/roles/update-changes/tasks/2.2.3/erigon_changes.yaml @@ -0,0 +1,48 @@ +--- +- 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/updates-223.yaml b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml index f0a96d19a..d18085611 100644 --- a/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml +++ b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml @@ -4,8 +4,14 @@ paths: "/etc/stereum/services" register: service_config_files -- name: Include Prysm Changes +- name: Include Ejector Changes include_tasks: ejector_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 diff --git a/launcher/src/backend/OneClickInstall.js b/launcher/src/backend/OneClickInstall.js index d1c2ba8e2..b6390f414 100755 --- a/launcher/src/backend/OneClickInstall.js +++ b/launcher/src/backend/OneClickInstall.js @@ -63,9 +63,6 @@ export class OneClickInstall { if (this.mevboost) serviceList.push(this.mevboost); if (this.validatorService) serviceList.push(this.validatorService); if (this.extraServices) this.extraServices.forEach((service) => serviceList.push(service)); - serviceList.forEach((service) => { - if (service.switchImageTag) service.switchImageTag(this.nodeConnection.settings.stereum.settings.arch); - }); return serviceList.map((service) => service.buildConfiguration()); } diff --git a/launcher/src/backend/ServiceManager.js b/launcher/src/backend/ServiceManager.js index 70b650161..3d803ef57 100755 --- a/launcher/src/backend/ServiceManager.js +++ b/launcher/src/backend/ServiceManager.js @@ -894,7 +894,6 @@ export class ServiceManager { new ServicePort("127.0.0.1", 8546, 8546, servicePortProtocol.tcp), ]; service = ErigonService.buildByUserInput(args.network, ports, args.installDir + "/erigon"); - service.switchImageTag(this.nodeConnection.settings.stereum.settings.arch); return service; case "LighthouseBeaconService": @@ -1383,7 +1382,6 @@ export class ServiceManager { } else if (versions["prater"] && versions["prater"][service.service]) { service.imageVersion = versions["prater"][service.service].slice(-1).pop(); } - if (service.switchImageTag) service.switchImageTag(this.nodeConnection.settings.stereum.settings.arch); }); for (const service of newServices) { await this.nodeConnection.writeServiceConfiguration( diff --git a/launcher/src/backend/ethereum-services/ErigonService.js b/launcher/src/backend/ethereum-services/ErigonService.js index bc064d8d6..8d573d60d 100755 --- a/launcher/src/backend/ethereum-services/ErigonService.js +++ b/launcher/src/backend/ethereum-services/ErigonService.js @@ -15,8 +15,8 @@ export class ErigonService extends NodeService { "ErigonService", // service service.id, // id 1, // configVersion - "thorax/erigon", // image - "v2.36.1", // imageVersion + "erigontech/erigon", // image + "v2.60.8", // imageVersion [ `erigon`, `--chain=${network}`, @@ -81,17 +81,6 @@ export class ErigonService extends NodeService { return service; } - switchImageTag(arch) { - const armArchs = ["arm", "arm64", "aarch64_be", "aarch64", "armv8b", "armv8l"]; //Possible arm architectures: https://stackoverflow.com/questions/45125516/possible-values-for-uname-m - if (armArchs.includes(arch)) { - this.imageVersion = this.imageVersion.endsWith("-arm64") ? this.imageVersion : this.imageVersion + "-arm64"; - this.imageVersion = this.imageVersion.startsWith("v") ? this.imageVersion.slice(1) : this.imageVersion; - } else { - this.imageVersion = this.imageVersion.endsWith("-arm64") ? this.imageVersion.replace("-arm64", "") : this.imageVersion; - this.imageVersion = this.imageVersion.startsWith("v") ? this.imageVersion : "v" + this.imageVersion; - } - } - buildExecutionClientHttpEndpointUrl() { return "http://stereum-" + this.id + ":8545"; } From bcf7a51b8b592bd08cf6106f2cbae5928d311fad Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:19:57 +0200 Subject: [PATCH 2/8] ADD: SSV Changes --- .../update-changes/molecule/223/prepare.yml | 62 +++++++++++++++++++ .../update-changes/molecule/223/verify.yml | 26 ++++++++ .../tasks/2.2.3/ssv_changes.yaml | 48 ++++++++++++++ .../tasks/2.2.3/updates-223.yaml | 6 ++ 4 files changed, 142 insertions(+) create mode 100644 controls/roles/update-changes/tasks/2.2.3/ssv_changes.yaml diff --git a/controls/roles/update-changes/molecule/223/prepare.yml b/controls/roles/update-changes/molecule/223/prepare.yml index 66d31f161..3aa3d7233 100644 --- a/controls/roles/update-changes/molecule/223/prepare.yml +++ b/controls/roles/update-changes/molecule/223/prepare.yml @@ -208,4 +208,66 @@ 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 #EOF diff --git a/controls/roles/update-changes/molecule/223/verify.yml b/controls/roles/update-changes/molecule/223/verify.yml index 6eeeb5353..cceb4b45e 100644 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ b/controls/roles/update-changes/molecule/223/verify.yml @@ -27,12 +27,26 @@ 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 + - 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 }}" Erigon_service_configuration: "{{ Erigon_service_configuration_raw['content'] | b64decode | from_yaml }}" Erigon_service_configuration2: "{{ Erigon_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 }}" - debug: msg: "{{ Ejector_service_configuration }}" @@ -54,6 +68,16 @@ - 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 }}" + - assert: that: - Ejector_service_configuration.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xe57B3792aDCc5da47EF4fF588883F0ee0c9835C9') | length == 1 @@ -62,4 +86,6 @@ - Ejector_service_configuration2.env.ORACLE_ADDRESSES_ALLOWLIST | from_yaml | select('match', '0xEC4BfbAF681eb505B94E4a7849877DC6c600Ca3A') | length == 0 - Erigon_service_configuration.image | split(':') | first == 'erigontech/erigon' - Erigon_service_configuration2.image == 'erigontech/erigon:v2.60.8' + - SSVNetwork_service_configuration.image | split(':') | first == 'ssvlabs/ssv-node' + - SSVNetwork_service_configuration2.image == 'ssvlabs/ssv-node:v1.3.8' # EOF 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 new file mode 100644 index 000000000..0bf3da80f --- /dev/null +++ b/controls/roles/update-changes/tasks/2.2.3/ssv_changes.yaml @@ -0,0 +1,48 @@ +--- +- 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 index d18085611..9fa0873d5 100644 --- a/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml +++ b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml @@ -15,3 +15,9 @@ 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 From 101496fcd9fe40a5644d4aae7a21a26f3a13fc47 Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Wed, 9 Oct 2024 15:09:28 +0200 Subject: [PATCH 3/8] FIX: Tests --- launcher/src/backend/tests/integration/ErigonService.int.js | 2 +- launcher/src/backend/tests/unit/ErigonService.test.js | 2 +- launcher/src/backend/tests/unit/SSVNetworkService.test.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/launcher/src/backend/tests/integration/ErigonService.int.js b/launcher/src/backend/tests/integration/ErigonService.int.js index 3e130e2e3..1b3f301c0 100755 --- a/launcher/src/backend/tests/integration/ErigonService.int.js +++ b/launcher/src/backend/tests/integration/ErigonService.int.js @@ -90,7 +90,7 @@ test("erigon installation", async () => { expect(ufw.stdout).toMatch(/30303\/udp/); //check docker container - expect(docker.stdout).toMatch(/thorax\/erigon/); + expect(docker.stdout).toMatch(/erigontech\/erigon/); expect(docker.stdout).toMatch(/30303->30303/); expect(docker.stdout).toMatch(/8545-8546/); if (!executionClient.id.includes("Up")) { diff --git a/launcher/src/backend/tests/unit/ErigonService.test.js b/launcher/src/backend/tests/unit/ErigonService.test.js index 0e83d235a..d31fc19f1 100755 --- a/launcher/src/backend/tests/unit/ErigonService.test.js +++ b/launcher/src/backend/tests/unit/ErigonService.test.js @@ -18,7 +18,7 @@ test("user", () => { }); test("image", () => { - expect(ErigonService.buildByUserInput("mainnet", null, null).buildConfiguration().image).toMatch(/thorax\/erigon/); + expect(ErigonService.buildByUserInput("mainnet", null, null).buildConfiguration().image).toMatch(/erigontech\/erigon/); }); test("endpoint url", () => { diff --git a/launcher/src/backend/tests/unit/SSVNetworkService.test.js b/launcher/src/backend/tests/unit/SSVNetworkService.test.js index 5328ef368..13b9bb802 100755 --- a/launcher/src/backend/tests/unit/SSVNetworkService.test.js +++ b/launcher/src/backend/tests/unit/SSVNetworkService.test.js @@ -56,7 +56,7 @@ test("buildConfiguration", () => { expect(ssvService.ports).toHaveLength(2); expect(ssvService.id).toHaveLength(36); expect(ssvService.user).toMatch(/2000/); - expect(ssvService.image).toMatch(/bloxstaking\/ssv-node/); + expect(ssvService.image).toMatch(/ssvlabs\/ssv-node/); expect(ssvService.configVersion).toBe(1); }); From e22c1a2e5464d5607b4e1ef5fb1538a62b89d0b9 Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Wed, 9 Oct 2024 15:10:01 +0200 Subject: [PATCH 4/8] FIX: ssv image --- launcher/src/backend/ethereum-services/SSVDKGService.js | 2 +- launcher/src/backend/ethereum-services/SSVNetworkService.js | 2 +- launcher/src/components/UI/services-modal/SsvModal.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/launcher/src/backend/ethereum-services/SSVDKGService.js b/launcher/src/backend/ethereum-services/SSVDKGService.js index f47706a1a..128f67572 100644 --- a/launcher/src/backend/ethereum-services/SSVDKGService.js +++ b/launcher/src/backend/ethereum-services/SSVDKGService.js @@ -21,7 +21,7 @@ outputPath: /data/output`; service.setId(); const workingDir = service.buildWorkingDir(dir); - const image = "bloxstaking/ssv-dkg"; + const image = "ssvlabs/ssv-dkg"; // Note that local secrets volume will be replaced with // shared volume from SSVNetworkService later on... diff --git a/launcher/src/backend/ethereum-services/SSVNetworkService.js b/launcher/src/backend/ethereum-services/SSVNetworkService.js index 5945caf77..df0ff5f7f 100755 --- a/launcher/src/backend/ethereum-services/SSVNetworkService.js +++ b/launcher/src/backend/ethereum-services/SSVNetworkService.js @@ -51,7 +51,7 @@ MetricsAPIPort: 15000`; service.setId(); const workingDir = service.buildWorkingDir(dir); - const image = "bloxstaking/ssv-node"; + const image = "ssvlabs/ssv-node"; const volumes = [new ServiceVolume(workingDir + "/data", "/data"), new ServiceVolume(workingDir + "/secrets", "/secrets")]; diff --git a/launcher/src/components/UI/services-modal/SsvModal.vue b/launcher/src/components/UI/services-modal/SsvModal.vue index 1f11efe81..9544deaf8 100755 --- a/launcher/src/components/UI/services-modal/SsvModal.vue +++ b/launcher/src/components/UI/services-modal/SsvModal.vue @@ -384,7 +384,7 @@ export default { this.ssvTotalConfig = await ControlService.getSSVTotalConfig(this.ssvService.config.serviceID); // TODO: check image min version - // const imageTag = 'bloxstaking/ssv-node:v1.0.1-hotfix'; + // const imageTag = 'ssvlabs/ssv-node:v1.0.1-hotfix'; // const minimumVersion = '1.1.0'; const imageTag = this.ssvTotalConfig.ssvServiceConfig.image; const minimumVersion = "v1.3.0"; From dfb1910783e221970b3447f1ab89b509e5ae38eb Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Wed, 9 Oct 2024 15:28:58 +0200 Subject: [PATCH 5/8] ADD: new oracle allowlist for holesky --- .../update-changes/molecule/223/prepare.yml | 47 +++++++++++++++++++ .../update-changes/molecule/223/verify.yml | 14 ++++++ .../tasks/2.2.3/ejector_changes.yaml | 14 +++++- .../ValidatorEjectorService.js | 2 +- 4 files changed, 74 insertions(+), 3 deletions(-) diff --git a/controls/roles/update-changes/molecule/223/prepare.yml b/controls/roles/update-changes/molecule/223/prepare.yml index 3aa3d7233..2e48ddcf6 100644 --- a/controls/roles/update-changes/molecule/223/prepare.yml +++ b/controls/roles/update-changes/molecule/223/prepare.yml @@ -270,4 +270,51 @@ 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 #EOF diff --git a/controls/roles/update-changes/molecule/223/verify.yml b/controls/roles/update-changes/molecule/223/verify.yml index cceb4b45e..c556a99db 100644 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ b/controls/roles/update-changes/molecule/223/verify.yml @@ -15,6 +15,12 @@ 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: @@ -43,6 +49,7 @@ set_fact: Ejector_service_configuration: "{{ Ejector_service_configuration_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 }}" Erigon_service_configuration: "{{ Erigon_service_configuration_raw['content'] | b64decode | from_yaml }}" Erigon_service_configuration2: "{{ Erigon_service_configuration2_raw['content'] | b64decode | from_yaml }}" SSVNetwork_service_configuration: "{{ SSVNetwork_service_configuration_raw['content'] | b64decode | from_yaml }}" @@ -58,6 +65,11 @@ - 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: @@ -84,6 +96,8 @@ - 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 + - 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' - SSVNetwork_service_configuration.image | split(':') | first == 'ssvlabs/ssv-node' 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 index 9c64b044a..5248870d1 100644 --- a/controls/roles/update-changes/tasks/2.2.3/ejector_changes.yaml +++ b/controls/roles/update-changes/tasks/2.2.3/ejector_changes.yaml @@ -1,7 +1,7 @@ --- - name: Read service file slurp: - src: '{{ config_file.path }}' + src: "{{ config_file.path }}" register: service_configuration_raw - name: Parse service's configuration @@ -11,10 +11,20 @@ - name: Update Oracle Allow List replace: - path: '{{ config_file.path }}' + 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/launcher/src/backend/ethereum-services/ValidatorEjectorService.js b/launcher/src/backend/ethereum-services/ValidatorEjectorService.js index f1e148772..9432f190d 100755 --- a/launcher/src/backend/ethereum-services/ValidatorEjectorService.js +++ b/launcher/src/backend/ethereum-services/ValidatorEjectorService.js @@ -23,7 +23,7 @@ export class ValidatorEjectorService extends NodeService { case "holesky": locatorAddress = "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8"; //https://docs.lido.fi/deployed-contracts/holesky#core-protocol oracleAllowList = - '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399", "0xD892c09b556b547c80B7d8c8cB8d75bf541B2284", "0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5", "0x31fa51343297FFce0CC1E67a50B2D3428057D1b1", "0x81E411f1BFDa43493D7994F82fb61A415F6b8Fd4", "0x4c75FA734a39f3a21C57e583c1c29942F021C6B7", "0xD3b1e36A372Ca250eefF61f90E833Ca070559970", "0xF0F23944EfC5A63c53632C571E7377b85d5E6B6f", "0xb29dD2f6672C0DFF2d2f173087739A42877A5172", "0x3799bDA7B884D33F79CEC926af21160dc47fbe05"]'; + '["0x12A1D74F8697b9f4F1eEBb0a9d0FB6a751366399", "0xD892c09b556b547c80B7d8c8cB8d75bf541B2284", "0xf7aE520e99ed3C41180B5E12681d31Aa7302E4e5", "0x31fa51343297FFce0CC1E67a50B2D3428057D1b1", "0x81E411f1BFDa43493D7994F82fb61A415F6b8Fd4", "0x4c75FA734a39f3a21C57e583c1c29942F021C6B7", "0xD3b1e36A372Ca250eefF61f90E833Ca070559970", "0xF0F23944EfC5A63c53632C571E7377b85d5E6B6f", "0xb29dD2f6672C0DFF2d2f173087739A42877A5172", "0xfe43A8B0b481Ae9fB1862d31826532047d2d538c"]'; break; case "sepolia": locatorAddress = "0x8f6254332f69557A72b0DA2D5F0Bc07d4CA991E7"; //https://docs.lido.fi/deployed-contracts/sepolia#core-protocol From dc1afe38be276faf3fa1d62cc609f717944e4d2a Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:37:37 +0200 Subject: [PATCH 6/8] REVERT: new image for dkg service --- launcher/src/backend/ethereum-services/SSVDKGService.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/launcher/src/backend/ethereum-services/SSVDKGService.js b/launcher/src/backend/ethereum-services/SSVDKGService.js index 128f67572..f47706a1a 100644 --- a/launcher/src/backend/ethereum-services/SSVDKGService.js +++ b/launcher/src/backend/ethereum-services/SSVDKGService.js @@ -21,7 +21,7 @@ outputPath: /data/output`; service.setId(); const workingDir = service.buildWorkingDir(dir); - const image = "ssvlabs/ssv-dkg"; + const image = "bloxstaking/ssv-dkg"; // Note that local secrets volume will be replaced with // shared volume from SSVNetworkService later on... From 82bb87d9fde2f7fe05cdc73eebf6a8f69f58c3a9 Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:29:22 +0200 Subject: [PATCH 7/8] ADJUST: remove eden and add titan relay --- .../update-changes/molecule/223/prepare.yml | 66 +++++++++++++++++++ .../update-changes/molecule/223/verify.yml | 26 ++++++++ .../tasks/2.2.3/mev_changes.yaml | 18 +++++ .../tasks/2.2.3/updates-223.yaml | 6 ++ launcher/src/store/nodeManage.js | 19 +++--- 5 files changed, 125 insertions(+), 10 deletions(-) create mode 100644 controls/roles/update-changes/tasks/2.2.3/mev_changes.yaml diff --git a/controls/roles/update-changes/molecule/223/prepare.yml b/controls/roles/update-changes/molecule/223/prepare.yml index 2e48ddcf6..ebbca4d97 100644 --- a/controls/roles/update-changes/molecule/223/prepare.yml +++ b/controls/roles/update-changes/molecule/223/prepare.yml @@ -317,4 +317,70 @@ 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 index c556a99db..c1cd628d4 100644 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ b/controls/roles/update-changes/molecule/223/verify.yml @@ -45,6 +45,18 @@ 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 }}" @@ -54,6 +66,8 @@ Erigon_service_configuration2: "{{ Erigon_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 }}" + 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 }}" @@ -90,6 +104,16 @@ - debug: msg: "{{ SSVNetwork_service_configuration2_raw['content'] | b64decode }}" + - debug: + 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 @@ -102,4 +126,6 @@ - Erigon_service_configuration2.image == 'erigontech/erigon:v2.60.8' - SSVNetwork_service_configuration.image | split(':') | first == 'ssvlabs/ssv-node' - SSVNetwork_service_configuration2.image == 'ssvlabs/ssv-node:v1.3.8' + - Mev_service_configuration.entrypoint | select('match', 'eden') | length == 0 + - Mev_service_configuration2.entrypoint | select('match', 'eden') | length == 0 # EOF 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 new file mode 100644 index 000000000..b89e93d33 --- /dev/null +++ b/controls/roles/update-changes/tasks/2.2.3/mev_changes.yaml @@ -0,0 +1,18 @@ +--- +- 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/updates-223.yaml b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml index 9fa0873d5..bebbb768d 100644 --- a/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml +++ b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml @@ -21,3 +21,9 @@ 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/launcher/src/store/nodeManage.js b/launcher/src/store/nodeManage.js index 0e2180a70..6db4c692c 100755 --- a/launcher/src/store/nodeManage.js +++ b/launcher/src/store/nodeManage.js @@ -123,27 +123,26 @@ export const useNodeManage = defineStore("nodeManage", { freeCensorship: true, }, { - icon: "/img/icon/one-click-icons/mevboost-icons/eden.png", - name: "Eden", + icon: "/img/icon/one-click-icons/mevboost-icons/flashbots.png", + name: "Titan Relay", mainnet: - "https://0xb3ee7afcf27f1f1259ac1787876318c6584ee353097a50ed84f51a1f21a323b3736f271a895c7ce918c038e4265918be@relay.edennetwork.io/", - + "https://0x8c4ed5e24fe5c6ae21018437bde147693f68cda427cd1122cf20819c30eda7ed74f72dece09bb313f2a1855595ab677d@global.titanrelay.xyz", holesky: - "https://0xb1d229d9c21298a87846c7022ebeef277dfc321fe674fa45312e20b5b6c400bfde9383f801848d7837ed5fc449083a12@relay-holesky.edennetwork.io", + "https://0xaa58208899c6105603b74396734a6263cc7d947f444f396a90f7b7d3e65d102aec7e5e5291b27e08d02c50a050825c2f@holesky.titanrelay.xyz", id: 10, isSelected: false, isRemoved: false, - freeCensorship: false, + freeCensorship: true, }, { icon: "/img/icon/one-click-icons/mevboost-icons/flashbots.png", - name: "Titan Relay", - holesky: - "https://0xaa58208899c6105603b74396734a6263cc7d947f444f396a90f7b7d3e65d102aec7e5e5291b27e08d02c50a050825c2f@holesky.titanrelay.xyz", + name: "Titan Relay Filtered", + mainnet: + "https://0x8c4ed5e24fe5c6ae21018437bde147693f68cda427cd1122cf20819c30eda7ed74f72dece09bb313f2a1855595ab677d@regional.titanrelay.xyz", id: 11, isSelected: false, isRemoved: false, - freeCensorship: true, + freeCensorship: false, }, { icon: "/img/icon/one-click-icons/mevboost-icons/bloxroute.png", From 17783d0d7ba0971cdc2f841aa36da1b08c4eb152 Mon Sep 17 00:00:00 2001 From: NeoPlays <80448387+NeoPlays@users.noreply.github.com> Date: Thu, 17 Oct 2024 10:08:53 +0200 Subject: [PATCH 8/8] REMOVE: SSV Changes --- .../update-changes/molecule/223/prepare.yml | 62 ------------------- .../update-changes/molecule/223/verify.yml | 26 -------- .../tasks/2.2.3/ssv_changes.yaml | 48 -------------- .../tasks/2.2.3/updates-223.yaml | 6 -- .../ethereum-services/SSVNetworkService.js | 2 +- .../tests/unit/SSVNetworkService.test.js | 2 +- .../components/UI/services-modal/SsvModal.vue | 2 +- 7 files changed, 3 insertions(+), 145 deletions(-) delete mode 100644 controls/roles/update-changes/tasks/2.2.3/ssv_changes.yaml diff --git a/controls/roles/update-changes/molecule/223/prepare.yml b/controls/roles/update-changes/molecule/223/prepare.yml index ebbca4d97..ecbd9c402 100644 --- a/controls/roles/update-changes/molecule/223/prepare.yml +++ b/controls/roles/update-changes/molecule/223/prepare.yml @@ -209,68 +209,6 @@ 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 ValidatorEjectorService config copy: dest: "/etc/stereum/services/3911cf56-f350-5fc7-dded-1d08da1a9954.yaml" diff --git a/controls/roles/update-changes/molecule/223/verify.yml b/controls/roles/update-changes/molecule/223/verify.yml index c1cd628d4..b93b016bb 100644 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ b/controls/roles/update-changes/molecule/223/verify.yml @@ -33,18 +33,6 @@ 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: @@ -64,8 +52,6 @@ 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 }}" - SSVNetwork_service_configuration: "{{ SSVNetwork_service_configuration_raw['content'] | b64decode | from_yaml }}" - SSVNetwork_service_configuration2: "{{ SSVNetwork_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 }}" @@ -94,16 +80,6 @@ - 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 }}" - - debug: msg: "{{ Mev_service_configuration }}" - debug: @@ -124,8 +100,6 @@ - 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' - - SSVNetwork_service_configuration.image | split(':') | first == 'ssvlabs/ssv-node' - - SSVNetwork_service_configuration2.image == 'ssvlabs/ssv-node:v1.3.8' - Mev_service_configuration.entrypoint | select('match', 'eden') | length == 0 - Mev_service_configuration2.entrypoint | select('match', 'eden') | length == 0 # EOF 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 0bf3da80f..000000000 --- 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 index bebbb768d..bca9b7724 100644 --- a/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml +++ b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml @@ -16,12 +16,6 @@ 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 MEV Changes include_tasks: mev_changes.yaml loop: "{{ service_config_files.files }}" diff --git a/launcher/src/backend/ethereum-services/SSVNetworkService.js b/launcher/src/backend/ethereum-services/SSVNetworkService.js index df0ff5f7f..5945caf77 100755 --- a/launcher/src/backend/ethereum-services/SSVNetworkService.js +++ b/launcher/src/backend/ethereum-services/SSVNetworkService.js @@ -51,7 +51,7 @@ MetricsAPIPort: 15000`; service.setId(); const workingDir = service.buildWorkingDir(dir); - const image = "ssvlabs/ssv-node"; + const image = "bloxstaking/ssv-node"; const volumes = [new ServiceVolume(workingDir + "/data", "/data"), new ServiceVolume(workingDir + "/secrets", "/secrets")]; diff --git a/launcher/src/backend/tests/unit/SSVNetworkService.test.js b/launcher/src/backend/tests/unit/SSVNetworkService.test.js index 13b9bb802..5328ef368 100755 --- a/launcher/src/backend/tests/unit/SSVNetworkService.test.js +++ b/launcher/src/backend/tests/unit/SSVNetworkService.test.js @@ -56,7 +56,7 @@ test("buildConfiguration", () => { expect(ssvService.ports).toHaveLength(2); expect(ssvService.id).toHaveLength(36); expect(ssvService.user).toMatch(/2000/); - expect(ssvService.image).toMatch(/ssvlabs\/ssv-node/); + expect(ssvService.image).toMatch(/bloxstaking\/ssv-node/); expect(ssvService.configVersion).toBe(1); }); diff --git a/launcher/src/components/UI/services-modal/SsvModal.vue b/launcher/src/components/UI/services-modal/SsvModal.vue index 9544deaf8..1f11efe81 100755 --- a/launcher/src/components/UI/services-modal/SsvModal.vue +++ b/launcher/src/components/UI/services-modal/SsvModal.vue @@ -384,7 +384,7 @@ export default { this.ssvTotalConfig = await ControlService.getSSVTotalConfig(this.ssvService.config.serviceID); // TODO: check image min version - // const imageTag = 'ssvlabs/ssv-node:v1.0.1-hotfix'; + // const imageTag = 'bloxstaking/ssv-node:v1.0.1-hotfix'; // const minimumVersion = '1.1.0'; const imageTag = this.ssvTotalConfig.ssvServiceConfig.image; const minimumVersion = "v1.3.0";