diff --git a/.env.sample.hoodi b/.env.sample.hoodi index 9611787a..194fe489 100644 --- a/.env.sample.hoodi +++ b/.env.sample.hoodi @@ -9,7 +9,7 @@ TAIKO_INTERNAL_SHASTA_TIME=1770296400 PORT_L2_EXECUTION_ENGINE_HTTP=8547 PORT_L2_EXECUTION_ENGINE_WS=8548 PORT_L2_EXECUTION_ENGINE_METRICS=6060 -PORT_L2_EXECUTION_ENGINE_P2P=30306 +PORT_L2_EXECUTION_ENGINE_DISCOVERY=9200 PORT_PROMETHEUS=9091 PORT_GRAFANA=3001 # Comma-separated profiles to be used by default (l2_execution_engine) @@ -19,11 +19,14 @@ COMPOSE_PROFILES=l2_execution_engine # Comma separated L2 execution engine bootnode URLs for P2P discovery bootstrap BOOT_NODES=enode://eb5079aae185d5d8afa01bfd2d349da5b476609aced2b57c90142556cf0ee4a152bcdd724627a7de97adfc2a68af5742a8f58781366e6a857d4bde98de6fe986@34.44.53.195:30303,enode://b054002f068f30568aad39271462c053463edb4a3d3c19b71b475fa044805d7e2fda39c482eba183f9d1f76fb579a8e47c0c054bb819c2bbcb331c0aac7464c2@34.27.167.246:30303 +# Optional alethia-reth data directory. +# Keep the default Docker volume, or set to an extracted snapshot directory. +L2_RETH_DATA_DIR=l2_execution_engine_data + # Taiko protocol contract addresses -TAIKO_INBOX_ADDRESS=0xf6eA848c7d7aC83de84db45Ae28EAbf377fe0eF9 +TAIKO_INBOX_ADDRESS=0xeF4bB7A442Bd68150A3aa61A6a097B86b91700BF SHASTA_INBOX_ADDRESS=0xeF4bB7A442Bd68150A3aa61A6a097B86b91700BF TAIKO_TOKEN_L1_ADDRESS=0xf3b83e226202ECf7E7bb2419a4C6e3eC99e963DA -PRECONFIRMATION_WHITELIST=0x8B969Fcf37122bC5eCB4E0e5Ad65CEEC3f1393ba TAIKO_ANCHOR_ADDRESS=0x1670130000000000000000000000000000010001 # Node Verbosity diff --git a/docker-compose-hoodi.yml b/docker-compose-hoodi.yml index 57eb44c7..abe1036d 100644 --- a/docker-compose-hoodi.yml +++ b/docker-compose-hoodi.yml @@ -6,50 +6,54 @@ x-logging: &logging services: l2_execution_engine: - image: us-docker.pkg.dev/evmchain/images/taiko-geth:v2.4.0 + image: us-docker.pkg.dev/evmchain/images/alethia-reth:sha-9afd71f restart: unless-stopped pull_policy: always stop_grace_period: 3m + environment: + - RUST_LOG_STYLE=never volumes: - - l2_execution_engine_data:/data/taiko-geth + - ${L2_RETH_DATA_DIR:-l2_execution_engine_data}:/data/alethia-reth ports: - "${PORT_L2_EXECUTION_ENGINE_METRICS}:6060" - "${PORT_L2_EXECUTION_ENGINE_HTTP}:8545" - "${PORT_L2_EXECUTION_ENGINE_WS}:8546" - - "${PORT_L2_EXECUTION_ENGINE_P2P}:${PORT_L2_EXECUTION_ENGINE_P2P}" - - "${PORT_L2_EXECUTION_ENGINE_P2P}:${PORT_L2_EXECUTION_ENGINE_P2P}/udp" - command: | - --taiko - --networkid "${CHAIN_ID}" - --gcmode archive - --syncmode full - --datadir /data/taiko-geth - --metrics - --metrics.expensive - --metrics.addr "0.0.0.0" - --bootnodes ${BOOT_NODES} - --authrpc.addr "0.0.0.0" - --authrpc.vhosts "*" - --http - --http.api debug,eth,net,web3,txpool,taiko - --http.addr "0.0.0.0" - --http.vhosts "*" - --ws - --ws.api debug,eth,net,web3,txpool,taiko - --ws.addr "0.0.0.0" - --ws.origins "*" - --gpo.ignoreprice "25000000" - --port ${PORT_L2_EXECUTION_ENGINE_P2P} - --discovery.port ${PORT_L2_EXECUTION_ENGINE_P2P} - --maxpeers ${MAXPEERS:-50} - --maxpendpeers ${MAXPENDPEERS:-0} - ${GETH_ADDITIONAL_ARGS:-} + - "${PORT_L2_EXECUTION_ENGINE_DISCOVERY}:${PORT_L2_EXECUTION_ENGINE_DISCOVERY}" + - "${PORT_L2_EXECUTION_ENGINE_DISCOVERY}:${PORT_L2_EXECUTION_ENGINE_DISCOVERY}/udp" + entrypoint: + - /bin/sh + - -c + - | + set -eu + if [ ! -f /data/alethia-reth/jwtsecret ]; then + mkdir -p /data/alethia-reth + tr -dc 'a-f0-9' < /dev/urandom | head -c 64 > /data/alethia-reth/jwtsecret + fi + exec ./alethia-reth node \ + --http \ + --http.addr 0.0.0.0 \ + --http.api eth,net,debug,trace,rpc \ + --ws \ + --ws.addr 0.0.0.0 \ + --chain taiko-hoodi \ + --datadir /data/alethia-reth \ + --log.file.directory /data/alethia-reth/logs \ + --metrics 0.0.0.0:6060 \ + --color never \ + --enable-discv5-discovery \ + --engine.persistence-threshold 128 \ + --engine.memory-block-buffer-target 128 \ + --rpc.eth-proof-window 1209600 \ + --authrpc.addr 0.0.0.0 \ + --authrpc.jwtsecret /data/alethia-reth/jwtsecret \ + --ipcpath /data/alethia-reth/reth.ipc \ + --bootnodes "${BOOT_NODES}" <<: *logging profiles: - l2_execution_engine taiko_client_driver: - image: us-docker.pkg.dev/evmchain/images/taiko-client:taiko-alethia-client-v2.3.0 + image: us-docker.pkg.dev/evmchain/images/taiko-client:sha-6b2d202 restart: unless-stopped pull_policy: always ports: @@ -58,7 +62,7 @@ services: env_file: - .env volumes: - - l2_execution_engine_data:/data/taiko-geth + - ${L2_RETH_DATA_DIR:-l2_execution_engine_data}:/data/alethia-reth - private_key_data:/data/private-key - ./script:/script entrypoint: diff --git a/script/start-driver-hoodi.sh b/script/start-driver-hoodi.sh index 60eca36a..fd6611b9 100755 --- a/script/start-driver-hoodi.sh +++ b/script/start-driver-hoodi.sh @@ -8,13 +8,10 @@ ARGS="--l1.ws ${L1_ENDPOINT_WS} \ --l2.ws ws://l2_execution_engine:8546 \ --l1.beacon ${L1_BEACON_HTTP} \ --l2.auth http://l2_execution_engine:8551 \ - --pacayaInbox ${TAIKO_INBOX_ADDRESS} \ - --shastaInbox ${SHASTA_INBOX_ADDRESS} \ - --shasta.time ${TAIKO_INTERNAL_SHASTA_TIME} \ + --inbox ${TAIKO_INBOX_ADDRESS} \ --taikoAnchor ${TAIKO_ANCHOR_ADDRESS} \ --verbosity ${VERBOSITY} \ - --preconfirmation.whitelist ${PRECONFIRMATION_WHITELIST} \ - --jwtSecret /data/taiko-geth/geth/jwtsecret" + --jwtSecret /data/alethia-reth/jwtsecret" if [ -n "$BLOB_SERVER_URL" ]; then ARGS="${ARGS} --blob.server ${BLOB_SERVER_URL}" @@ -29,6 +26,7 @@ if [ "$ENABLE_PRECONFS_P2P" = "true" ]; then ARGS="${ARGS} --p2p.peerstore.path /node-keys/peerstore \ --p2p.discovery.path /node-keys/discv5 \ --preconfirmation.serverPort 9871 \ + --preconfirmation.jwtSecret /data/alethia-reth/jwtsecret \ --p2p.listen.ip 0.0.0.0 \ --p2p.useragent taiko \ --p2p.bootnodes ${P2P_BOOTNODES}"