diff --git a/controls/roles/update-changes/molecule/223/prepare.yml b/controls/roles/update-changes/molecule/223/prepare.yml index c4c5cd28f..ecbd9c402 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,223 @@ 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 index 1f375cb43..b93b016bb 100644 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ b/controls/roles/update-changes/molecule/223/verify.yml @@ -6,34 +6,100 @@ # 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 + # 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 + + # 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 }}" + 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 }}' + 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: "{{ 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: "{{ 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 + - 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 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/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/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 f0a96d19a..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 @@ -4,8 +4,20 @@ 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 + +- 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/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"; } 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 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/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",