Skip to content

Commit f678705

Browse files
committed
fix(kt-devnet): Update config, endpoints and justfile
* Updates eigenda-devnet config to new `optimism-package` format * Updates endpoints to match new container names * Updates `eigenda-devnet-add-tx-fuzzer` command (kt bug fix) * Updates `eigenda-devnet-restart-batcher` command to use `kurtosis service update` introduced in newer kt versions * Fixes ci after rebase
1 parent bea3eb2 commit f678705

File tree

5 files changed

+45
-113
lines changed

5 files changed

+45
-113
lines changed

.github/workflows/kurtosis-devnet.yml

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -89,37 +89,3 @@ jobs:
8989
DOCKER_API_VERSION: 1.45
9090
- run: just eigenda-devnet-test-holesky -v
9191
working-directory: kurtosis-devnet
92-
- run: just eigenda-devnet-test-memstore -v
93-
working-directory: kurtosis-devnet
94-
95-
# This is an optimism devnet which talks to the eigenda holesky testnet via an eigenda-proxy.
96-
# TODO: we should connect this to an eigenda kurtosis devnet instead of using our holesky testnet.
97-
run_op_eigenda_holesky_devnet:
98-
runs-on: ubuntu-latest
99-
strategy:
100-
fail-fast: false # run all matrix jobs even if one fails
101-
matrix:
102-
# This list should be kept up-to-date with the files in eigenda-template-values
103-
valuesFile: ["holesky-sequential-large-blobs.json", "holesky-concurrent-small-blobs.json"]
104-
steps:
105-
- uses: actions/checkout@v4
106-
- uses: jdx/mise-action@v2
107-
with:
108-
version: ${{ env.MISE_VERSION }}
109-
experimental: true
110-
# This config gets injected into the eigenda.yaml kurtosis template config file
111-
- name: Inject secrets into values config files
112-
run: |
113-
jq --argjson newconfig '{
114-
"eigenda-proxy": {
115-
"secrets": {
116-
"eigenda.signer-private-key-hex": "${{ secrets.EIGENDA_V1_HOLESKY_TESTNET_SIGNER_KEY }}",
117-
"eigenda.eth_rpc": "https://ethereum-holesky-rpc.publicnode.com"
118-
}
119-
}
120-
}' '. *= $newconfig' eigenda-template-values/${{ matrix.valuesFile }} > holesky-config-with-secrets.json
121-
working-directory: kurtosis-devnet
122-
- run: just eigenda-devnet-start holesky-config-with-secrets.json
123-
working-directory: kurtosis-devnet
124-
- run: just eigenda-devnet-test-holesky -v
125-
working-directory: kurtosis-devnet

kurtosis-devnet/eigenda.yaml

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -35,27 +35,29 @@ optimism_package:
3535
da_bond_size: 0
3636
da_resolver_refund_percentage: 0
3737
chains:
38-
- participants:
39-
- el_type: op-geth
40-
# latest tag is currently broken until the next stable release, see https://github.com/ethereum-optimism/op-geth/pull/515
41-
# Also see discussion in https://discord.com/channels/1244729134312198194/1260624141497798706/1342556343495692320
42-
el_image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:optimism"
43-
el_log_level: ""
44-
el_extra_env_vars: {}
45-
el_extra_labels: {}
46-
el_extra_params: []
47-
cl_type: op-node
48-
cl_image: {{ localDockerImage "op-node" }}
49-
cl_log_level: "debug"
50-
cl_extra_env_vars: {}
51-
cl_extra_labels: {}
52-
cl_extra_params: []
53-
count: 1
38+
op-kurtosis:
39+
participants:
40+
node0:
41+
el:
42+
type: op-geth
43+
# latest tag is currently broken until the next stable release, see https://github.com/ethereum-optimism/op-geth/pull/515
44+
# Also see discussion in https://discord.com/channels/1244729134312198194/1260624141497798706/1342556343495692320
45+
image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:optimism"
46+
log_level: ""
47+
extra_env_vars: {}
48+
extra_labels: {}
49+
extra_params: []
50+
cl:
51+
type: op-node
52+
image: {{ localDockerImage "op-node" }}
53+
log_level: "debug"
54+
extra_env_vars: {}
55+
extra_labels: {}
56+
extra_params: []
5457
network_params:
5558
network: "kurtosis"
5659
network_id: "2151908"
5760
seconds_per_slot: 2
58-
name: "op-kurtosis"
5961
fjord_time_offset: 0
6062
granite_time_offset: 0
6163
holocene_time_offset: 0
@@ -84,14 +86,8 @@ optimism_package:
8486
extra_params: []
8587
game_type: 1
8688
proposal_interval: 10m
87-
challenger_params:
88-
# TODO: reenable once we start testing secure integrations
89-
enabled: false
90-
image: {{ localDockerImage "op-challenger" }}
91-
cannon_prestate_path: ""
92-
cannon_prestates_url: "http://fileserver/proofs/op-program/cannon"
93-
extra_params: []
94-
da_server_params:
89+
da_params:
90+
enabled: true
9591
image: ghcr.io/layr-labs/eigenda-proxy:v1.7.0
9692
cmd:
9793
- --addr=0.0.0.0
@@ -116,8 +112,16 @@ optimism_package:
116112
- --eigenda.v2.signer-payment-key-hex={{ $eigendaV2SignerKey }}
117113
- --eigenda.v2.eth-rpc={{ $eigendaBackendEthRpc }}
118114
{{- end }}
119-
additional_services:
120-
- da_server
115+
116+
challengers:
117+
challenger:
118+
# TODO: reenable once we start testing secure integrations
119+
enabled: false
120+
image: {{ localDockerImage "op-challenger" }}
121+
participants: "*"
122+
cannon_prestates_url: {{ localPrestate.URL }}
123+
cannon_trace_types: ["cannon", "permissioned"]
124+
extra_params: []
121125
global_log_level: "info"
122126
global_node_selectors: {}
123127
global_tolerations: []

kurtosis-devnet/justfile

Lines changed: 9 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,12 @@ eigenda-devnet-test-holesky *ARGS="":
106106
go test ./tests/eigenda/... -run "_Holesky$" -v -timeout 40m {{ARGS}}
107107
[group('eigenda')]
108108
eigenda-devnet-add-tx-fuzzer ENCLAVE_NAME="eigenda-devnet" *ARGS="":
109-
kurtosis service add {{ENCLAVE_NAME}} tx-fuzz ethpandaops/tx-fuzz:master -- \
110-
spam \
111-
--sk "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" \
112-
--rpc "http://op-el-1-op-geth-op-node-op-kurtosis:8545" \
109+
kurtosis service add {{ENCLAVE_NAME}} tx-fuzz ethpandaops/tx-fuzz:master --cmd \
110+
"spam \
111+
--sk 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \
112+
--rpc http://op-el-2151908-node0-op-geth:8545 \
113113
--slot-time 2 \
114-
--accounts 100 --txcount 1 \
114+
--accounts 100 --txcount 1" \
115115
{{ARGS}}
116116

117117
##### EigenDA Commands below are for debugging and manual testing #####
@@ -136,13 +136,13 @@ eigenda-devnet-grafana ENCLAVE_NAME="eigenda-devnet":
136136
[group('eigenda')]
137137
eigenda-devnet-sync-status ENCLAVE_NAME="eigenda-devnet":
138138
#!/usr/bin/env bash
139-
OPNODE_ENDPOINT=$(kurtosis port print {{ENCLAVE_NAME}} op-cl-1-op-node-op-geth-op-kurtosis http)
139+
OPNODE_ENDPOINT=$(kurtosis port print {{ENCLAVE_NAME}} op-cl-2151908-node0-op-node rpc)
140140
cast rpc optimism_syncStatus --rpc-url $OPNODE_ENDPOINT | jq
141141
[group('eigenda')]
142142
eigenda-devnet-configs ENCLAVE_NAME="eigenda-devnet":
143143
#!/usr/bin/env bash
144144
echo "OP-NODE ROLLUP CONFIG:"
145-
OPNODE_ENDPOINT=$(kurtosis port print {{ENCLAVE_NAME}} op-cl-1-op-node-op-geth-op-kurtosis http)
145+
OPNODE_ENDPOINT=$(kurtosis port print {{ENCLAVE_NAME}} op-cl-2151908-node0-op-node http)
146146
cast rpc optimism_rollupConfig --rpc-url $OPNODE_ENDPOINT | jq
147147
echo "TEKU L1-CL SPEC:"
148148
TEKU_ENDPOINT=$(kurtosis port print {{ENCLAVE_NAME}} cl-1-teku-geth http)
@@ -158,49 +158,10 @@ eigenda-devnet-change-proxy-backend backend="V1" ENCLAVE_NAME="eigenda-devnet":
158158
curl -X PUT $PROXY_ENDPOINT/admin/eigenda-dispersal-backend \
159159
-H "Content-Type: application/json" \
160160
-d '{"eigenDADispersalBackend": "{{backend}}"}'
161-
# We unfortunately have to restart the batcher in this ugly way right now just to change even a single flag.
162-
# This is b/c op's kurtosis setup right now is not idempotent so if we change a param in a values file
163-
# and rerun `just eigenda-devnet-start`, the entire devnet gets respun up which takes a long time.
164-
# Track progress for fixing this in https://github.com/ethereum-optimism/optimism/issues/14390.
165-
# Kurtosis also doesn't have a simple way to update a running service's config, like `kubectl edit` for k8s.
166-
# See https://github.com/kurtosis-tech/kurtosis/issues/2628 for this issue.
167-
# Restart batcher with new flags or image.
161+
# See https://docs.kurtosis.com/service-update/
168162
[group('eigenda')]
169163
eigenda-devnet-restart-batcher ENCLAVE_NAME="eigenda-devnet":
170-
#!/usr/bin/env bash
171-
# IMAGE=op-batcher:{{ENCLAVE_NAME}}
172-
IMAGE=us-docker.pkg.dev/oplabs-tools-artifacts/images/op-batcher:v1.10.0
173-
kurtosis service add {{ENCLAVE_NAME}} op-batcher-op-kurtosis \
174-
$IMAGE \
175-
--ports "http=8548,metrics=9001" \
176-
-- op-batcher \
177-
--l2-eth-rpc=http://op-el-1-op-geth-op-node-op-kurtosis:8545 \
178-
--rollup-rpc=http://op-cl-1-op-node-op-geth-op-kurtosis:8547 \
179-
--poll-interval=1s \
180-
--sub-safety-margin=6 \
181-
--num-confirmations=1 \
182-
--safe-abort-nonce-too-low-count=3 \
183-
--resubmission-timeout=30s \
184-
--rpc.addr=0.0.0.0 \
185-
--rpc.port=8548 \
186-
--rpc.enable-admin \
187-
--metrics.enabled \
188-
--metrics.addr=0.0.0.0 \
189-
--metrics.port=9001 \
190-
--l1-eth-rpc=http://el-1-geth-teku:8545 \
191-
--private-key=0xb3d2d558e3491a3709b7c451100a0366b5872520c7aa020c17a0e7fa35b6a8df \
192-
--data-availability-type=calldata \
193-
--altda.enabled=True \
194-
--altda.da-server=http://da-server-op-kurtosis:3100 \
195-
--altda.da-service \
196-
--altda.max-concurrent-da-requests=100 \
197-
--max-pending-tx=100 \
198-
--max-channel-duration=10 \
199-
--target-num-frames=10 \
200-
--max-l1-tx-size-bytes=1000 \
201-
--batch-type=1 \
202-
--throttle-threshold=500_000 \
203-
--throttle-block-size=1000
164+
kurtosis service update {{ENCLAVE_NAME}} op-batcher-2151908-op-kurtosis
204165

205166

206167
# Simple devnet

kurtosis-devnet/tests/eigenda/harness.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func NewHarness(t *testing.T) *Harness {
7575
testStartL1BlockNum, err := clients.GethL1Client.BlockNumber(ctxWithTimeout)
7676
require.NoError(t, err)
7777

78-
batcherCtx, err := enclaveCtx.GetServiceContext("op-batcher-op-kurtosis")
78+
batcherCtx, err := enclaveCtx.GetServiceContext("op-batcher-2151908-op-kurtosis")
7979
require.NoError(t, err)
8080

8181
return &Harness{
@@ -118,10 +118,10 @@ func (h *Harness) QueryBatcherLogs(ctx context.Context, shouldFollowLogs bool, l
118118
// using external shell commands like `cast rpc ...` and `cast geth ...`.
119119
// The public endpoints are the ones that are exposed to the host machine.
120120
type EnclaveServicePublicEndpoints struct {
121-
OpNodeEndpoint string `kurtosis:"op-cl-1-op-node-op-geth-op-kurtosis,http"`
122-
OpGethEndpoint string `kurtosis:"op-el-1-op-geth-op-node-op-kurtosis,rpc"`
121+
OpNodeEndpoint string `kurtosis:"op-cl-2151908-node0-op-node,rpc"`
122+
OpGethEndpoint string `kurtosis:"op-el-2151908-node0-op-geth,rpc"`
123123
GethL1Endpoint string `kurtosis:"el-1-geth-teku,rpc"`
124-
EigendaProxyEndpoint string `kurtosis:"da-server-op-kurtosis,http"`
124+
EigendaProxyEndpoint string `kurtosis:"op-da-da-server-2151908-op-kurtosis,http"`
125125
// Adding new endpoints is as simple as adding a new field with a kurtosis tag
126126
// NewServiceEndpoint string `kurtosis:"new-service-name,port-name"`
127127
}

op-batcher/readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ When a Tx fails, an asynchronous receipts handler is triggered. The channel from
111111
> Note: there is an issue with this simple logic. See https://github.com/ethereum-optimism/optimism/issues/13283
112112
113113
#### Channel Times Out
114+
114115
When a Tx is confirmed, an asynchronous receipts handler is triggered. We only update the batcher's state if the channel timed out on chain. In that case, the `blockCursor` is rewound to the first block added to that channel, and the channel queue is cleared out. This allows the batcher to start fresh building a new channel starting from the same block -- it does not need to refetch blocks from the sequencer.
115116

116117
#### AltDA Submission Fails

0 commit comments

Comments
 (0)