diff --git a/controls/roles/update-changes/molecule/223/verify.yml b/controls/roles/update-changes/molecule/223/verify.yml index b93b016bb..a0e1f840d 100644 --- a/controls/roles/update-changes/molecule/223/verify.yml +++ b/controls/roles/update-changes/molecule/223/verify.yml @@ -98,8 +98,8 @@ - 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' + # - 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/updates-223.yaml b/controls/roles/update-changes/tasks/2.2.3/updates-223.yaml index bca9b7724..2bf114863 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 @@ -10,11 +10,11 @@ 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 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 diff --git a/launcher/src/backend/OneClickInstall.js b/launcher/src/backend/OneClickInstall.js index b6390f414..d1c2ba8e2 100755 --- a/launcher/src/backend/OneClickInstall.js +++ b/launcher/src/backend/OneClickInstall.js @@ -63,6 +63,9 @@ 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 3d803ef57..70b650161 100755 --- a/launcher/src/backend/ServiceManager.js +++ b/launcher/src/backend/ServiceManager.js @@ -894,6 +894,7 @@ 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": @@ -1382,6 +1383,7 @@ 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 8d573d60d..f1142c11f 100755 --- a/launcher/src/backend/ethereum-services/ErigonService.js +++ b/launcher/src/backend/ethereum-services/ErigonService.js @@ -15,7 +15,7 @@ export class ErigonService extends NodeService { "ErigonService", // service service.id, // id 1, // configVersion - "erigontech/erigon", // image + "thorax/erigon", // image "v2.60.8", // imageVersion [ `erigon`, @@ -81,6 +81,17 @@ 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.slice(1) : this.imageVersion; + } + } + buildExecutionClientHttpEndpointUrl() { return "http://stereum-" + this.id + ":8545"; } diff --git a/launcher/src/backend/tests/unit/ErigonService.test.js b/launcher/src/backend/tests/unit/ErigonService.test.js index d31fc19f1..0e83d235a 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(/erigontech\/erigon/); + expect(ErigonService.buildByUserInput("mainnet", null, null).buildConfiguration().image).toMatch(/thorax\/erigon/); }); test("endpoint url", () => {