mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-08 03:43:56 -05:00
* use 9 blobs for Pectra * add linting to script * turn prague on by default * remove non-prague configuration * testing not-yet-prague is the reason for failure * using pectra from genesis * reset to 9 for testing * lowering blobs per tick * add missing 9s and update blobscan * spotless * expect 9 blobs in one tx * Update coordinator/app/src/main/kotlin/net/consensys/zkevm/coordinator/app/config/CoordinatorConfig.kt Co-authored-by: Julien Marchand <julien-marchand@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * refactor testdata folders and use 9 blob agg * refactor function for ease of reading * move arguments up * rename function * format parameters * validate at least 1 blob exists * more spotless * simplify blob hash computation --------- Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> Co-authored-by: Julien Marchand <julien-marchand@users.noreply.github.com>
598 lines
21 KiB
YAML
598 lines
21 KiB
YAML
# To debug inside the network and volumes:
|
|
# docker run --rm -it --network=docker_linea -v=linea-local-dev:/data -v=linea-logs:/logs weibeld/ubuntu-networking bash
|
|
|
|
services:
|
|
sequencer:
|
|
hostname: sequencer
|
|
container_name: sequencer
|
|
image: consensys/linea-besu-package:${BESU_PACKAGE_TAG:-sepolia-3e31c8f}
|
|
profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ]
|
|
ports:
|
|
- "8545:8545"
|
|
- "8546:8546"
|
|
- "8550:8550"
|
|
- "19545:9545" # metrics
|
|
- "30301:30301"
|
|
- "30305:30303"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /tmp/pid ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 120
|
|
restart: "no"
|
|
environment:
|
|
LOG4J_CONFIGURATION_FILE: /var/lib/besu/log4j.xml
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
/opt/besu/bin/besu \
|
|
--config-file=/var/lib/besu/sequencer.config.toml \
|
|
--node-private-key-file="/var/lib/besu/key" \
|
|
--plugin-linea-l1-polling-interval="PT12S" \
|
|
--plugin-linea-l1-smart-contract-address="0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" \
|
|
--plugin-linea-l1-rpc-endpoint="http://l1-el-node:8545" \
|
|
--plugin-linea-rejected-tx-endpoint="http://transaction-exclusion-api:8080" \
|
|
--plugin-linea-node-type="SEQUENCER"
|
|
volumes:
|
|
- ./config/linea-besu-sequencer/sequencer.config.toml:/var/lib/besu/sequencer.config.toml:ro
|
|
- ./config/linea-besu-sequencer/deny-list.txt:/var/lib/besu/deny-list.txt:ro
|
|
- ./config/linea-local-dev-genesis-PoA-besu.json/:/var/lib/besu/genesis.json:ro
|
|
- ./config/linea-besu-sequencer/key:/var/lib/besu/key:ro
|
|
- ./config/linea-besu-sequencer/log4j.xml:/var/lib/besu/log4j.xml:ro
|
|
- ../config/common/traces-limits-besu-v2.toml:/var/lib/besu/traces-limits.toml:ro
|
|
networks:
|
|
l1network:
|
|
linea:
|
|
ipv4_address: 11.11.11.101
|
|
|
|
l2-node:
|
|
container_name: l2-node
|
|
hostname: l2-node
|
|
image: consensys/linea-geth:${ZKGETH_TAG:-0588665}
|
|
platform: linux/amd64
|
|
profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ]
|
|
depends_on:
|
|
sequencer:
|
|
condition: service_healthy
|
|
ports:
|
|
- "8845:8545"
|
|
- "8846:8546"
|
|
- "30306:30303"
|
|
environment:
|
|
DATA_DIR: "/data/l2-zkgeth-l2-node/"
|
|
BOOTNODES: "enode://14408801a444dafc44afbccce2eb755f902aed3b5743fed787b3c790e021fef28b8c827ed896aa4e8fb46e22bd67c39f994a73768b4b382f8597b0d44370e15d@11.11.11.101:30303"
|
|
NETRESTRICT: "11.11.11.0/24"
|
|
DISABLE_ZKEVM: "true"
|
|
MAX_BLOCK_GAS: 10000000 #10M
|
|
MAX_BLOCKDATA_BYTES: 35000 #35 KBytes
|
|
MAX_TXDATA_BYTES: 30000 #30 KBytes
|
|
ZKGETH_LOWER_GAS_MARGIN_PERCENTS: 120
|
|
ZKGETH_UPPER_GAS_MARGIN_PERCENTS: 300
|
|
entrypoint: [ "sh", "/scripts/node.sh", "1337", "/genesis.json", "0x0", "0x1C9C380", "0xF4240" ]
|
|
volumes:
|
|
- ./geth/scripts:/scripts:ro
|
|
- ./config/linea-local-dev-genesis-PoA-geth.json:/genesis.json:ro
|
|
- ./geth/geth-l2-node.key:/boot.key:ro
|
|
- local-dev:/data/
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.209
|
|
|
|
l2-node-besu:
|
|
hostname: l2-node-besu
|
|
container_name: l2-node-besu
|
|
image: consensys/linea-besu-package:${BESU_PACKAGE_TAG:-sepolia-3e31c8f}
|
|
profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ]
|
|
depends_on:
|
|
sequencer:
|
|
condition: service_healthy
|
|
ports:
|
|
- "9045:8545"
|
|
- "9046:8546"
|
|
- "9050:8550"
|
|
- "9051:8548"
|
|
- "30309:30303"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /tmp/pid ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 120
|
|
restart: "no"
|
|
environment:
|
|
LOG4J_CONFIGURATION_FILE: /var/lib/besu/log4j.xml
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
/opt/besu/bin/besu \
|
|
--config-file=/var/lib/besu/l2-node-besu.config.toml \
|
|
--genesis-file=/var/lib/besu/genesis.json \
|
|
--plugin-linea-l1-polling-interval="PT12S" \
|
|
--plugin-linea-l1-smart-contract-address="0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9" \
|
|
--plugin-linea-l1-rpc-endpoint="http://l1-el-node:8545" \
|
|
--plugin-linea-rejected-tx-endpoint="http://transaction-exclusion-api:8080" \
|
|
--plugin-linea-node-type="RPC" \
|
|
--bootnodes=enode://14408801a444dafc44afbccce2eb755f902aed3b5743fed787b3c790e021fef28b8c827ed896aa4e8fb46e22bd67c39f994a73768b4b382f8597b0d44370e15d@11.11.11.101:30303
|
|
volumes:
|
|
- ./config/l2-node-besu/l2-node-besu-config.toml:/var/lib/besu/l2-node-besu.config.toml:ro
|
|
- ./config/linea-besu-sequencer/deny-list.txt:/var/lib/besu/deny-list.txt:ro
|
|
- ./config/l2-node-besu/log4j.xml:/var/lib/besu/log4j.xml:ro
|
|
- ./config/linea-local-dev-genesis-PoA-besu.json/:/var/lib/besu/genesis.json:ro
|
|
- ../config/common/traces-limits-besu-v2.toml:/var/lib/besu/traces-limits.toml:ro
|
|
- ../tmp/local/:/data/:rw
|
|
networks:
|
|
l1network:
|
|
linea:
|
|
ipv4_address: 11.11.11.119
|
|
|
|
traces-node-v2:
|
|
hostname: traces-node-v2
|
|
container_name: traces-node-v2
|
|
image: consensys/linea-besu-package:${BESU_PACKAGE_TAG:-sepolia-3e31c8f}
|
|
profiles: [ "l2", "l2-bc", "debug", "external-to-monorepo" ]
|
|
depends_on:
|
|
sequencer:
|
|
condition: service_healthy
|
|
ports:
|
|
- "8745:8545"
|
|
- "8746:8546"
|
|
- "8750:8550"
|
|
- "8751:8548"
|
|
- "30308:30303"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /tmp/pid ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 120
|
|
restart: "no"
|
|
environment:
|
|
JAVA_OPTS: -Xmx1g -XX:+UnlockExperimentalVMOptions -XX:-UseG1GC -XX:+UseZGC
|
|
LOG4J_CONFIGURATION_FILE: /var/lib/besu/log4j.xml
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
/opt/besu/bin/besu \
|
|
--config-file=/var/lib/besu/traces-node-v2.config.toml \
|
|
--genesis-file=/var/lib/besu/genesis.json \
|
|
--bootnodes=enode://14408801a444dafc44afbccce2eb755f902aed3b5743fed787b3c790e021fef28b8c827ed896aa4e8fb46e22bd67c39f994a73768b4b382f8597b0d44370e15d@11.11.11.101:30303
|
|
volumes:
|
|
- ./config/traces-node-v2/traces-node-v2-config.toml:/var/lib/besu/traces-node-v2.config.toml:ro
|
|
- ./config/traces-node-v2/log4j.xml:/var/lib/besu/log4j.xml:ro
|
|
- ./config/linea-local-dev-genesis-PoA-besu.json/:/var/lib/besu/genesis.json:ro
|
|
- ../tmp/local/:/data/:rw
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.115
|
|
|
|
prover-v3: # prover compatible with the traces from zkbesu
|
|
container_name: prover-v3
|
|
hostname: prover-v3
|
|
image: consensys/linea-prover:${PROVER_TAG:-052958b}
|
|
platform: linux/amd64
|
|
# to avoid spinning up on CI for now
|
|
profiles: [ "l2" ]
|
|
environment:
|
|
GOMAXPROCS: 16
|
|
CONFIG_FILE: "/opt/linea/prover/config.toml"
|
|
GOMEMLIMIT: "10GiB"
|
|
WORKER_ID: prover-i1 # keep this prover- to mimic prod env prover-aggregation-91
|
|
volumes:
|
|
- ../tmp/local/:/data/
|
|
- logs:/logs
|
|
- ./config/prover/v3/prover-config.toml:/opt/linea/prover/config.toml:ro
|
|
- ../prover/prover-assets:/opt/linea/prover/prover-assets:ro
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.109
|
|
|
|
postman:
|
|
container_name: postman
|
|
hostname: postman
|
|
image: consensys/linea-postman:${POSTMAN_TAG:-052958b}
|
|
profiles: [ "l2", "debug" ]
|
|
platform: linux/amd64
|
|
restart: on-failure
|
|
ports:
|
|
- "9090:3000"
|
|
depends_on:
|
|
sequencer:
|
|
condition: service_healthy
|
|
postgres:
|
|
condition: service_healthy
|
|
env_file: "./config/postman/env"
|
|
networks:
|
|
l1network:
|
|
ipv4_address: 10.10.10.222
|
|
linea:
|
|
ipv4_address: 11.11.11.222
|
|
|
|
coordinator:
|
|
hostname: coordinator
|
|
container_name: coordinator
|
|
image: consensys/linea-coordinator:${COORDINATOR_TAG:-052958b}
|
|
platform: linux/amd64
|
|
profiles: [ "l2", "debug" ]
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
l1-el-node:
|
|
condition: service_started
|
|
sequencer:
|
|
condition: service_started
|
|
shomei:
|
|
condition: service_started
|
|
# shomei-frontend:
|
|
# condition: service_started
|
|
ports:
|
|
- "9545:9545"
|
|
restart: on-failure
|
|
command: [ 'java', '-Dvertx.configurationFile=/var/lib/coordinator/vertx-options.json', '-Dlog4j2.configurationFile=/var/lib/coordinator/log4j2-dev.xml', '-jar', 'libs/coordinator.jar', '--traces-limits', 'config/traces-limits-v1.toml', '--smart-contract-errors', 'config/smart-contract-errors.toml', '--gas-price-cap-time-of-day-multipliers', 'config/gas-price-cap-time-of-day-multipliers.toml', 'config/coordinator-docker.config.toml', 'config/coordinator-docker-web3signer-override.config.toml' ]
|
|
volumes:
|
|
- ../config/coordinator/coordinator-docker.config.toml:/opt/consensys/linea/coordinator/config/coordinator-docker.config.toml:ro
|
|
- ../config/coordinator/coordinator-docker-web3signer-override.config.toml:/opt/consensys/linea/coordinator/config/coordinator-docker-web3signer-override.config.toml:ro
|
|
- ../config/common/traces-limits-v1.toml:/opt/consensys/linea/coordinator/config/traces-limits-v1.toml:ro
|
|
- ../config/common/smart-contract-errors.toml:/opt/consensys/linea/coordinator/config/smart-contract-errors.toml:ro
|
|
- ../config/common/gas-price-cap-time-of-day-multipliers.toml:/opt/consensys/linea/coordinator/config/gas-price-cap-time-of-day-multipliers.toml:ro
|
|
- ../config/coordinator/vertx-options.json:/var/lib/coordinator/vertx-options.json:ro
|
|
- ../config/coordinator/log4j2-dev.xml:/var/lib/coordinator/log4j2-dev.xml:ro
|
|
- ../tmp/local/:/data/
|
|
networks:
|
|
l1network:
|
|
ipv4_address: 10.10.10.106
|
|
linea:
|
|
ipv4_address: 11.11.11.106
|
|
|
|
web3signer:
|
|
hostname: web3signer
|
|
container_name: web3signer
|
|
image: consensys/web3signer:23.3-jdk17
|
|
profiles: [ "l2", "debug", "external-to-monorepo" ]
|
|
ports:
|
|
- "9000:9000"
|
|
command:
|
|
- --key-store-path=/keyFiles/
|
|
- --http-host-allowlist=*
|
|
- eth1
|
|
volumes:
|
|
- ./web3signer/keyFiles/:/keyFiles/
|
|
networks:
|
|
- linea
|
|
|
|
postgres:
|
|
image: postgres:16.0
|
|
hostname: postgres
|
|
container_name: postgres
|
|
profiles: [ "l2", "debug", "external-to-monorepo", "staterecovery" ]
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
|
|
PGDATA: /data/postgres
|
|
command: postgres -c config_file=/etc/postgresql/postgresql.conf
|
|
# uncomment command below if you need to log and debug queries to PG
|
|
# command:
|
|
# - postgres
|
|
# - -c
|
|
# - config_file=/etc/postgresql/postgresql.conf
|
|
ports:
|
|
- "5432:5432"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "pg_isready" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 120
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./postgres/init:/docker-entrypoint-initdb.d/
|
|
- ./postgres/conf/:/etc/postgresql/
|
|
networks:
|
|
- linea
|
|
- l1network
|
|
|
|
zkbesu-shomei:
|
|
image: consensys/linea-besu-package:${BESU_PACKAGE_TAG:-sepolia-3e31c8f}
|
|
hostname: zkbesu-shomei
|
|
container_name: zkbesu-shomei
|
|
profiles: [ "l2", "l2-bc", "external-to-monorepo" ]
|
|
depends_on:
|
|
sequencer:
|
|
condition: service_healthy
|
|
privileged: true
|
|
restart: always
|
|
user: root
|
|
ports:
|
|
- "8945:8545" # http
|
|
- "8946:8546" # websockets
|
|
- "8950:8550"
|
|
- "30307:30303"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /tmp/pid ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 120
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.113
|
|
environment:
|
|
LOG4J_CONFIGURATION_FILE: /var/lib/besu/log4j.xml
|
|
JAVA_OPTS: -Xmx512m -XX:+UnlockExperimentalVMOptions -XX:-UseG1GC -XX:+UseZGC
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
/opt/besu/bin/besu \
|
|
--config-file=/var/lib/besu/zkbesu-config.toml \
|
|
--genesis-file=/var/lib/besu/genesis.json \
|
|
--plugin-shomei-http-host="11.11.11.114" \
|
|
--plugin-shomei-http-port=8888 \
|
|
--bonsai-limit-trie-logs-enabled=false \
|
|
--bootnodes=enode://14408801a444dafc44afbccce2eb755f902aed3b5743fed787b3c790e021fef28b8c827ed896aa4e8fb46e22bd67c39f994a73768b4b382f8597b0d44370e15d@11.11.11.101:30303
|
|
|
|
volumes:
|
|
- ./config/zkbesu-shomei/zkbesu-config.toml:/var/lib/besu/zkbesu-config.toml:ro
|
|
- ./config/zkbesu-shomei/log4j.xml:/var/lib/besu/log4j.xml:ro
|
|
- ./config/linea-local-dev-genesis-PoA-besu.json/:/var/lib/besu/genesis.json:ro
|
|
|
|
shomei:
|
|
image: consensys/linea-shomei:2.3.0
|
|
hostname: shomei
|
|
container_name: shomei
|
|
profiles: [ "l2", "l2-bc", "external-to-monorepo" ]
|
|
depends_on:
|
|
zkbesu-shomei:
|
|
condition: service_started
|
|
privileged: true
|
|
user: root
|
|
ports:
|
|
- "8998:8888"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /data/shomei/LOCK ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 60
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.114
|
|
environment:
|
|
LOG4J_CONFIGURATION_FILE: /log4j.xml
|
|
command:
|
|
- --besu-rpc-http-host=11.11.11.113
|
|
- --besu-rpc-http-port=8545
|
|
- --rpc-http-host=11.11.11.114
|
|
- --rpc-http-host-allow-list=*
|
|
- --rpc-http-port=8888
|
|
- --min-confirmations-before-importing=0
|
|
- --trace-start-block-number=0
|
|
- --data-path=/data/shomei
|
|
volumes:
|
|
- ./config/shomei/log4j.xml:/log4j.xml:ro
|
|
# - ../tmp/local/shomei:/data/shomei/:z
|
|
|
|
shomei-frontend:
|
|
image: consensys/linea-shomei:2.3.0
|
|
hostname: shomei-frontend
|
|
container_name: shomei-frontend
|
|
profiles: [ "l2", "l2-bc", "external-to-monorepo" ]
|
|
depends_on:
|
|
zkbesu-shomei:
|
|
condition: service_started
|
|
privileged: true
|
|
user: root
|
|
restart: always
|
|
ports:
|
|
- "8889:8888"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /data/shomei/LOCK ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 60
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.107
|
|
environment:
|
|
LOG4J_CONFIGURATION_FILE: /log4j.xml
|
|
command:
|
|
- --besu-rpc-http-host=11.11.11.113
|
|
- --besu-rpc-http-port=8545
|
|
- --rpc-http-host=11.11.11.107
|
|
- --rpc-http-host-allow-list=*
|
|
- --rpc-http-port=8888
|
|
- --min-confirmations-before-importing=0
|
|
- --trace-start-block-number=0
|
|
- --data-path=/data/shomei-frontend
|
|
- --metrics-http-host=0.0.0.0
|
|
- --metrics-http-port=9545
|
|
- --enable-trace-generation=false
|
|
- --enable-finalized-block-limit=true
|
|
- --use-finalized-block-number=0
|
|
- --use-finalized-block-hash=0x0ca7c811d834d51a08e390bef9ae24db8623338bad13176d420b2f03bc282b90 #some unlikely hash
|
|
|
|
volumes:
|
|
- ./config/shomei/log4j.xml:/log4j.xml:ro
|
|
|
|
transaction-exclusion-api:
|
|
hostname: transaction-exclusion-api
|
|
container_name: transaction-exclusion-api
|
|
image: consensys/linea-transaction-exclusion-api:${TRANSACTION_EXCLUSION_API_TAG:-052958b}
|
|
profiles: [ "l2", "debug" ]
|
|
restart: on-failure
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
ports:
|
|
- "8082:8080"
|
|
command: [ 'java', '-Dvertx.configurationFile=config/vertx-options.json', '-Dlog4j2.configurationFile=config/log4j2-dev.xml', '-jar', 'libs/transaction-exclusion-api.jar', 'config/transaction-exclusion-app-docker.config.toml', ]
|
|
volumes:
|
|
- ../config/transaction-exclusion-api/transaction-exclusion-app-docker.config.toml:/opt/consensys/linea/transaction-exclusion-api/config/transaction-exclusion-app-docker.config.toml:ro
|
|
- ../config/transaction-exclusion-api/vertx-options.json:/opt/consensys/linea/transaction-exclusion-api/config/vertx-options.json:ro
|
|
- ../config/transaction-exclusion-api/log4j2-dev.xml:/opt/consensys/linea/transaction-exclusion-api/config/log4j2-dev.xml:ro
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.110
|
|
|
|
########################
|
|
# Blob Scan stack, used for state recover app
|
|
########################
|
|
blobscan-api:
|
|
container_name: blobscan-api
|
|
hostname: blobscan-api
|
|
image: blossomlabs/blobscan-api:1.7.0
|
|
platform: linux/amd64 # only linux available
|
|
profiles: [ "staterecovery" ]
|
|
ports:
|
|
- "4001:4001"
|
|
env_file: "./config/blobscan/env"
|
|
restart: always
|
|
# healthcheck:
|
|
# test: [ "CMD", "curl", "-f", "http://localhost:4001/healthcheck" ]
|
|
# disable: true
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 20
|
|
# start_period: 5s
|
|
networks:
|
|
l1network:
|
|
ipv4_address: 10.10.10.203
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
l1-cl-node:
|
|
condition: service_healthy
|
|
l1-el-node:
|
|
condition: service_healthy
|
|
|
|
blobscan-indexer:
|
|
container_name: blobscan-indexer
|
|
hostname: blobscan-indexer
|
|
image: blossomlabs/blobscan-indexer:0.3.1
|
|
platform: linux/amd64 # only linux available
|
|
profiles: [ "staterecovery" ]
|
|
env_file: "./config/blobscan/env"
|
|
networks:
|
|
l1network:
|
|
ipv4_address: 10.10.10.204
|
|
restart: always
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
blobscan-api:
|
|
condition: service_started
|
|
l1-cl-node:
|
|
condition: service_healthy
|
|
l1-el-node:
|
|
condition: service_healthy
|
|
|
|
redis:
|
|
container_name: redis
|
|
hostname: redis
|
|
image: "redis:7.4.1-alpine"
|
|
profiles: [ "staterecovery" ]
|
|
ports:
|
|
- "6379:6379"
|
|
environment:
|
|
- REDIS_REPLICATION_MODE=master
|
|
- REDIS_PASSWORD=s3cr3t
|
|
- REDIS_USERNAME=blobscan
|
|
healthcheck:
|
|
test: [ "CMD", "redis-cli", "ping" ]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
networks:
|
|
l1network:
|
|
ipv4_address: 10.10.10.205
|
|
|
|
zkbesu-shomei-sr:
|
|
image: consensys/linea-besu-package:${BESU_PACKAGE_TAG:-sepolia-3e31c8f}
|
|
hostname: zkbesu-shomei-sr
|
|
container_name: zkbesu-shomei-sr
|
|
profiles: [ "external-to-monorepo", "staterecovery" ]
|
|
privileged: true
|
|
user: root
|
|
ports:
|
|
- "9145:8545" # http
|
|
- "9146:8546" # websockets
|
|
- "9150:8550"
|
|
- "10545:9545"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /tmp/pid ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 120
|
|
restart: "no"
|
|
networks:
|
|
l1network:
|
|
ipv4_address: 10.10.10.206
|
|
linea:
|
|
ipv4_address: 11.11.11.116
|
|
environment:
|
|
LOG4J_CONFIGURATION_FILE: /var/lib/besu/log4j.xml
|
|
L1_ROLLUP_CONTRACT_ADDRESS: ${L1_ROLLUP_CONTRACT_ADDRESS:-0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9}
|
|
STATERECOVERY_OVERRIDE_START_BLOCK_NUMBER: ${STATERECOVERY_OVERRIDE_START_BLOCK_NUMBER:-1}
|
|
entrypoint:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
(rm /opt/besu/plugins/linea-staterecovery-besu-plugin-v* || true) && \
|
|
(rm /opt/besu/plugins/linea-finalized-tag-updater* || true) && \
|
|
ls -lh /opt/besu/plugins && \
|
|
sed -i '/^CLASSPATH/c\CLASSPATH=/opt/besu/lib/\*\:/opt/besu/plugins/\*' /opt/besu/bin/besu && \
|
|
/opt/besu/bin/besu \
|
|
--config-file=/var/lib/besu/zkbesu-config.toml \
|
|
--genesis-file=/var/lib/besu/genesis.json \
|
|
--plugins=BesuShomeiRpcPlugin,ZkTrieLogPlugin,LineaStateRecoveryPlugin \
|
|
--rpc-http-api=ADMIN,DEBUG,NET,ETH,WEB3,PLUGINS,MINER,SHOMEI \
|
|
--bonsai-limit-trie-logs-enabled=false \
|
|
--plugin-shomei-http-host="11.11.11.117" \
|
|
--plugin-shomei-http-port=8888 \
|
|
--plugin-staterecovery-l1-endpoint=http://l1-el-node:8545 \
|
|
--plugin-staterecovery-l1-polling-interval=PT1S \
|
|
--plugin-staterecovery-l1-earliest-search-block=EARLIEST \
|
|
--plugin-staterecovery-l1-highest-search-block=LATEST \
|
|
--plugin-staterecovery-shomei-endpoint=http://shomei-sr:8888 \
|
|
--plugin-staterecovery-blobscan-endpoint=http://blobscan-api:4001 \
|
|
--plugin-staterecovery-linea-sequencer-beneficiary-address=0x6d976c9b8ceee705d4fe8699b44e5eb58242f484 \
|
|
--bootnodes=enode://14408801a444dafc44afbccce2eb755f902aed3b5743fed787b3c790e021fef28b8c827ed896aa4e8fb46e22bd67c39f994a73768b4b382f8597b0d44370e15d@11.11.11.101:30303
|
|
volumes:
|
|
- ./config/zkbesu-shomei/zkbesu-config.toml:/var/lib/besu/zkbesu-config.toml:ro
|
|
- ./config/zkbesu-shomei/log4j-staterecovery.xml:/var/lib/besu/log4j.xml:ro
|
|
- ./config/linea-local-dev-genesis-PoA-besu.json/:/var/lib/besu/genesis.json:ro
|
|
- ../besu-plugins/state-recovery/besu-plugin/build/libs/linea-staterecovery-besu-plugin-SNAPSHOT.jar:/opt/besu/plugins/linea-staterecovery-besu-plugin-SNAPSHOT.jar
|
|
|
|
shomei-sr:
|
|
image: consensys/linea-shomei:2.3.0
|
|
hostname: shomei-sr
|
|
container_name: shomei-sr
|
|
profiles: [ "external-to-monorepo", "staterecovery" ]
|
|
depends_on:
|
|
zkbesu-shomei-sr:
|
|
condition: service_started
|
|
privileged: true
|
|
user: root
|
|
ports:
|
|
- "8890:8888"
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "bash -c \"[ -f /data/shomei/LOCK ]\"" ]
|
|
interval: 1s
|
|
timeout: 1s
|
|
retries: 60
|
|
networks:
|
|
linea:
|
|
ipv4_address: 11.11.11.117
|
|
environment:
|
|
LOG4J_CONFIGURATION_FILE: /log4j.xml
|
|
command:
|
|
- --besu-rpc-http-host=11.11.11.116
|
|
- --besu-rpc-http-port=8545
|
|
- --rpc-http-host=11.11.11.117
|
|
- --rpc-http-host-allow-list=*
|
|
- --rpc-http-port=8888
|
|
- --min-confirmations-before-importing=0
|
|
- --trace-start-block-number=0
|
|
volumes:
|
|
- ./config/shomei/log4j.xml:/log4j.xml:ro
|