From 8af6939c45830f9af355579f03afb958da211d4b Mon Sep 17 00:00:00 2001 From: merkleplant Date: Tue, 21 Apr 2026 16:44:42 +0200 Subject: [PATCH] feat(validator): Adds helios lightclient for eth --- .../validator/templates/deployment-vao.yaml | 26 ++++++++++++++++++- charts/validator/templates/deployment.yaml | 24 +++++++++++++++++ charts/validator/values.yaml | 21 +++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/charts/validator/templates/deployment-vao.yaml b/charts/validator/templates/deployment-vao.yaml index 5a06db3..dff2f9e 100644 --- a/charts/validator/templates/deployment-vao.yaml +++ b/charts/validator/templates/deployment-vao.yaml @@ -99,7 +99,11 @@ spec: - name: CFG_CHAIN_ID value: {{ .Values.global.chainId | default "1" | quote }} - name: CFG_CHAIN_RPC_URLS + {{- if .Values.helios.enabled }} + value: "http://localhost:{{ .Values.helios.port }}" + {{- else }} value: {{ .Values.ghost.rpcUrl | quote }} + {{- end }} {{- if .Values.global.chainTxType }} - name: CFG_CHAIN_TX_TYPE value: {{ .Values.global.chainTxType | default "eip1559" | quote }} @@ -144,7 +148,6 @@ spec: resources: {{- toYaml ( .Values.vao.resources | default .Values.global.resources ) | nindent 12 }} - {{- if .Values.vao.extraVolumes }} volumeMounts: {{- range .Values.vao.extraVolumes }} @@ -157,6 +160,27 @@ spec: {{- end }} {{- end }} + {{- if .Values.helios.enabled }} + - name: helios + image: "{{ .Values.helios.image.repository }}:{{ .Values.helios.image.tag }}" + imagePullPolicy: {{ .Values.helios.image.pullPolicy }} + args: + - "node" + - "--chain=ethereum" + - "--execution-rpc={{ .Values.ghost.rpcUrl }}" + - "--consensus-rpc={{ .Values.helios.consensusRpc }}" + - "--rpc-bind-ip=0.0.0.0" + - "--rpc-port={{ .Values.helios.port }}" + ports: + - name: helios-rpc + containerPort: {{ .Values.helios.port }} + protocol: TCP + {{- with .Values.helios.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- end }} + {{- if .Values.vao.extraVolumes }} volumes: {{- range .Values.vao.extraVolumes }} diff --git a/charts/validator/templates/deployment.yaml b/charts/validator/templates/deployment.yaml index 36575aa..d9c076b 100644 --- a/charts/validator/templates/deployment.yaml +++ b/charts/validator/templates/deployment.yaml @@ -101,7 +101,11 @@ spec: - name: CFG_CHAIN_ID value: {{ .Values.global.chainId | default "1" | quote }} - name: CFG_CHAIN_RPC_URLS + {{- if .Values.helios.enabled }} + value: "http://localhost:{{ .Values.helios.port }}" + {{- else }} value: {{ .Values.ghost.rpcUrl | quote }} + {{- end }} {{- if .Values.global.chainTxType }} - name: CFG_CHAIN_TX_TYPE value: {{ .Values.global.chainTxType | default "eip1559" | quote }} @@ -160,6 +164,26 @@ spec: resources: {{- toYaml ( .Values.ghost.resources | default .Values.global.resources ) | nindent 12 }} + {{- if .Values.helios.enabled }} + - name: helios + image: "{{ .Values.helios.image.repository }}:{{ .Values.helios.image.tag }}" + imagePullPolicy: {{ .Values.helios.image.pullPolicy }} + args: + - "node" + - "--chain=ethereum" + - "--execution-rpc={{ .Values.ghost.rpcUrl }}" + - "--consensus-rpc={{ .Values.helios.consensusRpc }}" + - "--rpc-bind-ip=0.0.0.0" + - "--rpc-port={{ .Values.helios.port }}" + ports: + - name: helios-rpc + containerPort: {{ .Values.helios.port }} + protocol: TCP + {{- with .Values.helios.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- end }} {{- with .Values.global.nodeSelector }} nodeSelector: diff --git a/charts/validator/values.yaml b/charts/validator/values.yaml index 18aec66..8971453 100644 --- a/charts/validator/values.yaml +++ b/charts/validator/values.yaml @@ -269,6 +269,27 @@ vao: # subPath: keyfile.json # Mount specific file from secret # readOnly: true +# -- Helios light client sidecar for trustless Ethereum RPC +helios: + # -- Enable Helios light client sidecar in both ghost and vao pods + enabled: false + image: + repository: ghcr.io/a16z/helios + tag: "latest" + pullPolicy: Always + # -- Consensus layer (beacon API) RPC used by Helios to verify blocks + consensusRpc: "" + # -- Local RPC port exposed by Helios (ghost/vao connect to this via localhost) + port: 8547 + # -- Resources constraints for the Helios sidecar + resources: {} + # limits: + # cpu: 200m + # memory: 256Mi + # requests: + # cpu: 100m + # memory: 128Mi + # -- Values for Tor Proxy (subchart of ghost) tor-proxy: # -- values for tor-proxy, installs [tor-controller](/crds/tor-controller.yaml) and creates an [onionService CRD](/templates/tor-onion-service.yaml)