Skip to content

Commit

Permalink
feat(charts): flame chart (#1943)
Browse files Browse the repository at this point in the history
## Summary
Implements a new chart dedicated for the flame package and also
integrates the new chart with the astria stack. The `evm-stack` now
support running `astria-geth` or the flame fork with an auctioneer out
of the box.
## Background
To support auctioneer deployment we need to run geth [flame
fork](https://github.com/astriaorg/flame), which implements the
necessary changes in
[pr-30](astriaorg/flame#30).
## Changes
- adds a new flame-rollup chart
- adds the new chart and auctioneer as dependencies of the `evm-stack`
- new commands and dev value file for local deployment

replace `just deploy-dev-rollup` with `just deploy-flame-dev-rollup` in
the deployment process to run `flame` instead of `astria-geth`.

Notes: 
- handle images tags on final merge. 
- does not implement any new smoke tests or workflows.

## Testing
running a local cluster and monitoring geth logs.
`│ INFO [02-04|11:25:13.608] ExecuteOptimisticBlock completed
block_num=52 timestamp=seconds:1738668312
`
## Changelogs
No updates required.
  • Loading branch information
quasystaty1 authored Feb 11, 2025
1 parent e23f3d0 commit 908b51b
Show file tree
Hide file tree
Showing 36 changed files with 1,320 additions and 30 deletions.
8 changes: 7 additions & 1 deletion charts/auctioneer/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,11 @@ version: 0.0.1
appVersion: "0.0.1"

maintainers:
- name: itamarreif
- name: wafflesvonmaple
url: astria.org
- name: quasystaty1
url: astria.org
- name: steezeburger
url: astria.org
- name: joroshiba
url: astria.org
6 changes: 3 additions & 3 deletions charts/auctioneer/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ metadata:
name: auctioneer-env
namespace: {{ include "auctioneer.namespace" . }}
data:
ASTRIA_AUCTIONEER_SEQUENCER_GRPC_ENDPOINT: "{{ .Values.config.sequencerGrpcEndpoint }}"
ASTRIA_AUCTIONEER_SEQUENCER_ABCI_ENDPOINT: "{{ .Values.config.sequencerAbciEndpoint }}"
ASTRIA_AUCTIONEER_SEQUENCER_CHAIN_ID: "{{ .Values.config.sequencerChainId }}"
ASTRIA_AUCTIONEER_SEQUENCER_GRPC_ENDPOINT: "{{ tpl .Values.config.sequencerGrpcEndpoint . }}"
ASTRIA_AUCTIONEER_SEQUENCER_ABCI_ENDPOINT: "{{ tpl .Values.config.sequencerAbciEndpoint . }}"
ASTRIA_AUCTIONEER_SEQUENCER_CHAIN_ID: "{{ tpl .Values.config.sequencerChainId . }}"
ASTRIA_AUCTIONEER_SEQUENCER_PRIVATE_KEY_PATH: "/var/secrets/{{ .Values.config.sequencerPrivateKey.secret.filename }}"
ASTRIA_AUCTIONEER_FEE_ASSET_DENOMINATION: "{{ .Values.config.feeAssetDenomination }}"
ASTRIA_AUCTIONEER_SEQUENCER_ADDRESS_PREFIX: "{{ .Values.config.sequencerAddressPrefix }}"
Expand Down
2 changes: 1 addition & 1 deletion charts/auctioneer/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ spec:
{{- if .Values.metrics.enabled }}
ports:
- containerPort: {{ .Values.ports.metrics }}
name: auctioneer-metrics
name: auct-metrics
{{- end }}
resources:
{{- toYaml .Values.resources | trim | nindent 12 }}
Expand Down
2 changes: 1 addition & 1 deletion charts/auctioneer/templates/secretproviderclass.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ metadata:
spec:
provider: {{ .Values.secretProvider.provider }}
parameters:
{{- $_ := set $ "key" .Values.config.privateKey.secret }}
{{- $_ := set $ "key" .Values.config.sequencerPrivateKey.secret }}
{{- tpl $.Values.secretProvider.parametersTemplate $ | nindent 4 }}
---
{{- end }}
2 changes: 1 addition & 1 deletion charts/auctioneer/templates/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ spec:
ports:
- name: metrics
port: {{ .Values.ports.metrics }}
targetPort: auctioneer-metrics
targetPort: auct-metrics
{{- end }}
2 changes: 1 addition & 1 deletion charts/auctioneer/templates/servicemonitor.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ spec:
matchLabels:
app: auctioneer
endpoints:
- port: auctioneer-metrics
- port: auct-metrics
path: /
{{- with .Values.serviceMonitor.interval }}
interval: {{ . }}
Expand Down
6 changes: 3 additions & 3 deletions charts/auctioneer/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ global:

images:
auctioneer:
repo: ghcr.io/astriaorg/astria-auctioneer
repo: ghcr.io/astriaorg/auctioneer
pullPolicy: IfNotPresent
# TODO - update to latest tag
tag: "pr-1822"
devTag: "pr-1822"
tag: "pr-1839"
devTag: "pr-1839"

config:
sequencerGrpcEndpoint: ""
Expand Down
11 changes: 11 additions & 0 deletions charts/deploy.just
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,20 @@ deploy-dev-rollup rollupName=defaultRollupName networkId=defaultNetworkId:
-f dev/values/rollup/dev.yaml \
{{rollupName}}-chain-chart ./charts/evm-stack --namespace astria-dev-cluster

deploy-flame-dev-rollup rollupName=defaultRollupName networkId=defaultNetworkId:
helm dependency update charts/evm-stack > /dev/null
helm install \
{{ if rollupName != '' { replace('--set config.rollup.name=# --set celestia-node.config.labelPrefix=#', '#', rollupName) } else { '' } }} \
{{ if networkId != '' { replace('--set config.rollup.networkId=#', '#', networkId) } else { '' } }} \
-f dev/values/rollup/flame-dev.yaml \
{{rollupName}}-chain-chart ./charts/evm-stack --namespace astria-dev-cluster

delete-dev-rollup rollupName=defaultRollupName:
@just delete chart {{rollupName}}-chain

delete-flame-dev-rollup rollupName=defaultRollupName:
@just delete-dev-rollup

wait-for-dev-rollup rollupName=defaultRollupName:
kubectl rollout status --watch statefulset/{{rollupName}}-geth -n astria-dev-cluster --timeout=600s

Expand Down
4 changes: 2 additions & 2 deletions charts/evm-rollup/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.0.2
version: 1.0.1

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.0.1"
appVersion: "1.0.0"

maintainers:
- name: wafflesvonmaple
Expand Down
3 changes: 1 addition & 2 deletions charts/evm-rollup/files/genesis/geth-genesis.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,9 @@
"astriaBridgeAddresses": {{ toPrettyJson .Values.genesis.bridgeAddresses | indent 8 | trim }},
"astriaFeeCollectors": {{ toPrettyJson .Values.genesis.feeCollectors | indent 8 | trim }},
"astriaEIP1559Params": {{ toPrettyJson .Values.genesis.eip1559Params | indent 8 | trim }},
"astriaSequencerAddressPrefix": "{{ .Values.genesis.sequencerAddressPrefix }}"{{- if .Values.global.dev }},{{ end }}
"astriaSequencerAddressPrefix": "{{ .Values.genesis.sequencerAddressPrefix }}"
{{- if not .Values.global.dev }}
{{- else }}
"astriaAuctioneerAddresses": {{ toPrettyJson .Values.genesis.auctioneerAddresses | indent 8 | trim }}
{{- end }}
},
"difficulty": "0",
Expand Down
3 changes: 0 additions & 3 deletions charts/evm-rollup/templates/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,6 @@ spec:
- name: ws-rpc-svc
port: {{ .Values.ports.wsRPC }}
targetPort: ws-rpc
- name: exec-grpc-svc
port: {{ .Values.ports.executionGRPC }}
targetPort: execution-grpc
---
{{- if .Values.metrics.enabled }}
kind: Service
Expand Down
1 change: 0 additions & 1 deletion charts/evm-rollup/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ genesis:
# minBaseFee: 0
# elasticityMultiplier: 2
# baseFeeChangeDenominator: 8
auctioneerAddresses: {}

## Standard Eth Genesis config values
# An EVM chain number id, different from the astria rollup name
Expand Down
12 changes: 9 additions & 3 deletions charts/evm-stack/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,16 @@ dependencies:
version: 0.4.0
- name: evm-rollup
repository: file://../evm-rollup
version: 1.0.2
version: 1.0.1
- name: flame-rollup
repository: file://../flame-rollup
version: 0.0.1
- name: composer
repository: file://../composer
version: 1.0.0
- name: auctioneer
repository: file://../auctioneer
version: 0.0.1
- name: evm-faucet
repository: file://../evm-faucet
version: 0.1.4
Expand All @@ -20,5 +26,5 @@ dependencies:
- name: blockscout-stack
repository: https://blockscout.github.io/helm-charts
version: 1.6.8
digest: sha256:fe5a1fc6ae84217c619ef95494f0ce8999f332c373ee127bc78935628d3167b4
generated: "2025-01-09T20:52:50.206866+05:30"
digest: sha256:eb8ca7fb9b3d3965080027179b6417a6d2de4498bd217e26c77213d0f5874626
generated: "2025-02-04T13:42:58.596376+02:00"
15 changes: 12 additions & 3 deletions charts/evm-stack/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,20 +15,29 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.0.8
version: 1.0.9

dependencies:
- name: celestia-node
version: 0.4.0
repository: "file://../celestia-node"
condition: celestia-node.enabled
- name: evm-rollup
version: 1.0.2
version: 1.0.1
repository: "file://../evm-rollup"
condition: evm-rollup.enabled
- name: flame-rollup
version: 0.0.1
repository: "file://../flame-rollup"
condition: flame-rollup.enabled
- name: composer
version: 1.0.0
repository: "file://../composer"
condition: composer.enabled
- name: auctioneer
version: 0.0.1
repository: "file://../auctioneer"
condition: auctioneer.enabled
- name: evm-faucet
version: 0.1.4
repository: "file://../evm-faucet"
Expand All @@ -50,7 +59,7 @@ dependencies:
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.0.1"
appVersion: "1.0.0"

maintainers:
- name: wafflesvonmaple
Expand Down
34 changes: 34 additions & 0 deletions charts/evm-stack/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,25 @@ evm-rollup:
otlpHeaders: "{{ .Values.global.otel.otlpHeaders }}"
traceHeaders: "{{ .Values.global.otel.traceHeaders }}"

flame-rollup:
enabled: false
genesis:
rollupName: "{{ .Values.global.rollupName }}"
chainId: "{{ .Values.global.evmChainId }}"
config:
conductor:
sequencerChainId: "{{ .Values.global.sequencerChainId }}"
celestiaChainId: "{{ .Values.global.celestiaChainId }}"
sequencerRpc: "{{ .Values.global.sequencerRpc }}"
sequencerGrpc: "{{ .Values.global.sequencerGrpc }}"
otel:
endpoint: "{{ .Values.global.otel.endpoint }}"
tracesEndpoint: "{{ .Values.global.otel.tracesEndpoint }}"
tracesCompression: "{{ .Values.global.otel.tracesCompression }}"
tracesTimeout: "{{ .Values.global.otel.tracesTimeout }}"
otlpHeaders: "{{ .Values.global.otel.otlpHeaders }}"
traceHeaders: "{{ .Values.global.otel.traceHeaders }}"

celestia-node:
enabled: false

Expand All @@ -61,6 +80,21 @@ composer:
otlpHeaders: "{{ .Values.global.otel.otlpHeaders }}"
traceHeaders: "{{ .Values.global.otel.traceHeaders }}"

auctioneer:
enabled: false
config:
sequencerGrpcEndpoint: "{{ .Values.global.sequencerGrpc }}"
sequencerAbciEndpoint: "{{ .Values.global.sequencerRpc }}"
sequencerChainId: "{{ .Values.global.sequencerChainId }}"

otel:
endpoint: "{{ .Values.global.otel.endpoint }}"
tracesEndpoint: "{{ .Values.global.otel.tracesEndpoint }}"
tracesCompression: "{{ .Values.global.otel.tracesCompression }}"
tracesTimeout: "{{ .Values.global.otel.tracesTimeout }}"
otlpHeaders: "{{ .Values.global.otel.otlpHeaders }}"
traceHeaders: "{{ .Values.global.otel.traceHeaders }}"

evm-faucet:
enabled: false
config:
Expand Down
23 changes: 23 additions & 0 deletions charts/flame-rollup/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
34 changes: 34 additions & 0 deletions charts/flame-rollup/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
apiVersion: v2
name: flame-rollup
description: A Helm chart for Flame EVM rollup in k8s deployed on top of Astria Sequencer Network + Celestia.

# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application

# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)

version: 0.0.1
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "0.0.1"

maintainers:
- name: wafflesvonmaple
url: astria.org
- name: quasystaty1
url: astria.org
- name: steezeburger
url: astria.org
- name: joroshiba
url: astria.org
55 changes: 55 additions & 0 deletions charts/flame-rollup/files/genesis/geth-genesis.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
{
"config": {
"chainId": {{ toString ( tpl .Values.genesis.chainId . ) | replace "\"" "" }},
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"berlinBlock": 0,
"londonBlock": 0,
"shanghaiTime": 0,
{{- if .Values.genesis.cancunTime }}
"cancunTime": {{ toString .Values.genesis.cancunTime | replace "\"" "" }},
{{- end }}
{{- if .Values.genesis.cancunTime }}
"pragueTime": {{ toString .Values.genesis.pragueTime | replace "\"" "" }},
{{- end }}
{{- if .Values.genesis.cancunTime }}
"verkleTime": {{ toString .Values.genesis.verkleTime | replace "\"" "" }},
{{- end }}
"terminalTotalDifficulty": 0,
"terminalTotalDifficultyPassed": true,
"ethash": {},
{{- range $key, $value := .Values.genesis.extra }}
"{{ $key }}": {{ toPrettyJson $value | indent 8 | trim }},
{{- end }}
{{- if .Values.genesis.extraDataOverride }}
"astriaExtraDataOverride": "{{ .Values.genesis.extraDataOverride }}",
{{- end }}
"astriaOverrideGenesisExtraData": {{ .Values.genesis.overrideGenesisExtraData }},
"astriaSequencerInitialHeight": {{ toString .Values.genesis.sequencerInitialHeight | replace "\"" "" }},
"astriaRollupName": "{{ tpl .Values.genesis.rollupName . }}",
"astriaCelestiaInitialHeight": {{ toString .Values.genesis.celestiaInitialHeight | replace "\"" "" }},
"astriaCelestiaHeightVariance": {{ toString .Values.genesis.celestiaHeightVariance | replace "\"" "" }},
"astriaBridgeAddresses": {{ toPrettyJson .Values.genesis.bridgeAddresses | indent 8 | trim }},
"astriaFeeCollectors": {{ toPrettyJson .Values.genesis.feeCollectors | indent 8 | trim }},
"astriaEIP1559Params": {{ toPrettyJson .Values.genesis.eip1559Params | indent 8 | trim }},
"astriaSequencerAddressPrefix": "{{ .Values.genesis.sequencerAddressPrefix }}",
"astriaAuctioneerAddresses": {{ toPrettyJson .Values.genesis.auctioneerAddresses | indent 8 | trim }}
{{- if not .Values.global.dev }}
{{- else }}
{{- end }}
},
"difficulty": "0",
"gasLimit": "{{ toString .Values.genesis.gasLimit | replace "\"" "" }}",
"alloc": {
{{- range $index, $value := .Values.genesis.alloc }}
{{- if $index }},{{- end }}
"{{ $value.address }}": {{ toPrettyJson $value.value | indent 8 | trim }}
{{- end }}
}
}
1 change: 1 addition & 0 deletions charts/flame-rollup/files/keys/private_key.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
8b3a7999072c9c9314c084044fe705db11714c6c4ed7cddb64da18ea270dd203
Loading

0 comments on commit 908b51b

Please sign in to comment.