Commit 884876d9 authored by protolambda's avatar protolambda Committed by GitHub

interop-devnet: remove in favor of kurtosis devnet (#13841)

parent 477dbc66
#!/bin/bash
set -eu
export OP_INTEROP_MNEMONIC="test test test test test test test test test test test junk"
log_info() { echo "[INFO] $1"; }
log_error() { echo "[ERROR] $1" >&2; }
# Run this with workdir set as root of the repo
if [ -f "../mise.toml" ]; then
log_info "Running create-chains script."
else
log_error "Cannot run create-chains script, must be in interop-devnet dir, but currently in:"
pwd
exit 1
fi
# Navigate to repository root
cd ..
# Check if already created
if [ -d ".devnet-interop" ]; then
log_error "Already created chains. Cleanup .devnet-interop dir if you want to force a re-creation."
exit 1
else
log_info "Creating new interop devnet chain configs"
fi
go run ./op-node/cmd interop dev-setup \
--artifacts-dir=packages/contracts-bedrock/forge-artifacts \
--foundry-dir=packages/contracts-bedrock \
--l1.chainid=900100 \
--l2.chainids=900200,900201 \
--out-dir=".devnet-interop" \
--log.format=logfmt \
--log.level=info
# create L1 CL genesis
eth2-testnet-genesis deneb \
--config=./ops-bedrock/beacon-data/config.yaml \
--preset-phase0=minimal \
--preset-altair=minimal \
--preset-bellatrix=minimal \
--preset-capella=minimal \
--preset-deneb=minimal \
--eth1-config=.devnet-interop/genesis/l1/genesis.json \
--state-output=.devnet-interop/genesis/l1/beaconstate.ssz \
--tranches-dir=.devnet-interop/genesis/l1/tranches \
--mnemonics=./ops-bedrock/mnemonics.yaml \
--eth1-withdrawal-address=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa \
--eth1-match-genesis-time
log_info "Writing env files now..."
# write env files for each L2 service
chain_env=".devnet-interop/env/l2/900200"
mkdir -p "$chain_env"
key_cmd="go run ./op-node/cmd interop devkey secret --domain=chain-operator --chainid=900200"
# op-node
echo "OP_NODE_P2P_SEQUENCER_KEY=$($key_cmd --name=sequencer-p2p)" >> "$chain_env/op-node.env"
# proposer
echo "OP_PROPOSER_PRIVATE_KEY=$($key_cmd --name=proposer)" >> "$chain_env/op-proposer.env"
echo "OP_PROPOSER_GAME_FACTORY_ADDRESS=$(jq -r .DisputeGameFactoryProxy .devnet-interop/deployments/l2/900200/addresses.json)" >> "$chain_env/op-proposer.env"
# batcher
echo "OP_BATCHER_PRIVATE_KEY=$($key_cmd --name=batcher)" >> "$chain_env/op-batcher.env"
chain_env=".devnet-interop/env/l2/900201"
mkdir -p "$chain_env"
key_cmd="go run ./op-node/cmd interop devkey secret --domain=chain-operator --chainid=900201"
# op-node
echo "OP_NODE_P2P_SEQUENCER_KEY=$($key_cmd --name=sequencer-p2p)" >> "$chain_env/op-node.env"
# proposer
echo "OP_PROPOSER_PRIVATE_KEY=$($key_cmd --name=proposer)" >> "$chain_env/op-proposer.env"
echo "OP_PROPOSER_GAME_FACTORY_ADDRESS=$(jq -r .DisputeGameFactoryProxy .devnet-interop/deployments/l2/900201/addresses.json)" >> "$chain_env/op-proposer.env"
# batcher
echo "OP_BATCHER_PRIVATE_KEY=$($key_cmd --name=batcher)" >> "$chain_env/op-batcher.env"
log_info "Interop devnet setup is complete!"
{
"dependencies": {
"900200": {
"chainIndex": "900200",
"activationTime": 0,
"historyMinTime": 0
},
"900201": {
"chainIndex": "900201",
"activationTime": 0,
"historyMinTime": 0
}
}
}
This diff is collapsed.
devnet-setup:
bash create-chains.sh
devnet-build-images:
PWD="$(pwd)" DOCKER_BUILDKIT=1 COMPOSE_DOCKER_CLI_BUILD=1 \
docker compose build --progress plain \
--build-arg GIT_COMMIT={git_commit} \
--build-arg GIT_DATE={git_date}
devnet-up:
docker compose up -d l1 l1-bn l1-vc
docker compose up -d \
op-supervisor \
op-node-a op-batcher-a op-proposer-a \
op-node-b op-batcher-b op-proposer-b
devnet-down:
# stops services, does not remove containers/networks
docker compose stop
devnet-metrics-up:
docker compose up -d prometheus grafana loki promtail
devnet-metrics-down:
docker compose down -d prometheus grafana loki promtail
devnet-clean:
# Stops services, and removes containers/networks
docker compose down
# Now manually clean up the related images and volumes
# Note: `justfile` interprets the curly brackets. So we escape them, by wrapping it with more, as a string, like Jinja2.
docker image ls 'interop-devnet*' --format='{{ '{{.Repository}}' }}' | xargs -r docker rmi
docker volume ls --filter name=interop-devnet --format='{{ '{{.Name}}' }}' | xargs -r docker volume rm
# docker compose down needs the env files before being able to shut down, so remove the devnet config resources last
rm -rf ../.devnet-interop
devnet-logs:
docker compose logs -f
GF_SECURITY_ADMIN_PASSWORD=admin
apiVersion: 1
providers:
- name: 'default'
orgId: 1
folder: ''
type: file
disableDeletion: true
editable: true
options:
path: /var/lib/grafana/dashboards
apiVersion: 1
deleteDatasources:
- name: "Prometheus"
datasources:
- access: "proxy"
editable: true
is_default: true
name: "Prometheus"
uid: "ddshms3dlineoe"
org_id: 1
type: "prometheus"
url: "http://prometheus:9090"
version: 1
- access: "proxy"
editable: true
name: "Loki"
uid: "loki-datasource"
org_id: 1
type: "loki"
url: "http://loki:3200"
version: 1
auth_enabled: false
server:
http_listen_port: 3200
common:
instance_addr: 127.0.0.1
path_prefix: /loki
storage:
filesystem:
chunks_directory: /loki/chunks
rules_directory: /loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-10-24
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
analytics:
reporting_enabled: false
global:
scrape_interval: 4s
evaluation_interval: 15s
scrape_configs:
- job_name: "l1-geth"
static_configs:
- targets: ["l1:6060"]
metrics_path: /debug/metrics/prometheus
- job_name: "l2-a-geth"
static_configs:
- targets: ["l2-a:6060"]
metrics_path: /debug/metrics/prometheus
- job_name: "l2-b-geth"
static_configs:
- targets: ["l2-b:6060"]
metrics_path: /debug/metrics/prometheus
- job_name: "op-node-a"
static_configs:
- targets: ["op-node-a:7300"]
- job_name: "op-node-b"
static_configs:
- targets: ["op-node-b:7300"]
- job_name: "op-batcher-a"
static_configs:
- targets: ["op-batcher-a:7300"]
- job_name: "op-batcher-b"
static_configs:
- targets: ["op-batcher-b:7300"]
- job_name: "op-proposer-a"
static_configs:
- targets: ["op-proposer-a:7300"]
- job_name: "op-proposer-b"
static_configs:
- targets: ["op-proposer-b:7300"]
- job_name: "op-supervisor"
static_configs:
- targets: ["op-supervisor:7300"]
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://loki:3200/loki/api/v1/push
scrape_configs:
# Uncomment to scrape system logs
# - job_name: system
# static_configs:
# - targets:
# - localhost
# labels:
# job: varlogs
# __path__: /var/log/*log
# This scrapes docker container logs
# copied from https://stackoverflow.com/questions/74776432/with-promtail-how-do-i-only-keep-log-messages-for-specified-docker-containers
- job_name: docker
docker_sd_configs:
- host: unix:///var/run/docker.sock
filters:
- name: name
# Filter logging to just our containers
values: ["op-batcher-*", "op-proposer-*", "op-node-*", "op-supervisor-*", "l1-*", "l1-bn-*", "l1-vc-*", "l2-a-*", "l2-b-*"]
relabel_configs:
- source_labels: ["__meta_docker_container_name"]
regex: "/(.*)"
target_label: "container"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment