add optimism
This commit is contained in:
48
optimism-archive.yml
Normal file
48
optimism-archive.yml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
version: '3.1'
|
||||||
|
|
||||||
|
services:
|
||||||
|
optimism-dtl:
|
||||||
|
image: ethereumoptimism/data-transport-layer:${IMAGE_TAG__DTL:-latest}
|
||||||
|
restart: unless-stopped
|
||||||
|
entrypoint:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- "/scripts/dtl-start.sh"
|
||||||
|
env_file:
|
||||||
|
- ./optimism/env/dtl.env
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- optimism-dtl:/db
|
||||||
|
- ./optimism/scripts/:/scripts/
|
||||||
|
environment:
|
||||||
|
- "SYNC_SOURCE=l1"
|
||||||
|
- "DATA_TRANSPORT_LAYER__RPC_ENDPOINT=${OPTIMISM_L1_URL}"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
optimism-l2geth:
|
||||||
|
image: ethereumoptimism/l2geth:${IMAGE_TAG__L2GETH:-latest}
|
||||||
|
restart: unless-stopped
|
||||||
|
stop_grace_period: 3m
|
||||||
|
entrypoint:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
- "/scripts/l2geth-init.sh && /scripts/l2geth-start.sh"
|
||||||
|
env_file:
|
||||||
|
- ./omptimism/env/l2geth.env
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- optimism-geth:/geth
|
||||||
|
- ./optimism/scripts/:/scripts/
|
||||||
|
expose:
|
||||||
|
- 9991 # http
|
||||||
|
- 9992 # ws
|
||||||
|
environment:
|
||||||
|
- "NODE_TYPE=archive"
|
||||||
|
- "SYNC_SOURCE=l1"
|
||||||
|
networks:
|
||||||
|
- chains
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
optimism-dtl:
|
||||||
|
optimism-geth:
|
||||||
16
optimism/env/dtl.env
vendored
Normal file
16
optimism/env/dtl.env
vendored
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
|
||||||
|
DATA_TRANSPORT_LAYER__ADDRESS_MANAGER=0xdE1FCfB0851916CA5101820A69b13a4E276bd81F
|
||||||
|
DATA_TRANSPORT_LAYER__L1_START_HEIGHT=13596466
|
||||||
|
DATA_TRANSPORT_LAYER__CONFIRMATIONS=12
|
||||||
|
DATA_TRANSPORT_LAYER__DANGEROUSLY_CATCH_ALL_ERRORS=true
|
||||||
|
DATA_TRANSPORT_LAYER__DB_PATH=/db
|
||||||
|
DATA_TRANSPORT_LAYER__ENABLE_METRICS=true
|
||||||
|
DATA_TRANSPORT_LAYER__ETH_NETWORK_NAME=mainnet
|
||||||
|
DATA_TRANSPORT_LAYER__L2_CHAIN_ID=10
|
||||||
|
DATA_TRANSPORT_LAYER__LOGS_PER_POLLING_INTERVAL=2000
|
||||||
|
DATA_TRANSPORT_LAYER__NODE_ENV=production
|
||||||
|
DATA_TRANSPORT_LAYER__POLLING_INTERVAL=500
|
||||||
|
DATA_TRANSPORT_LAYER__SENTRY_TRACE_RATE=0.05
|
||||||
|
DATA_TRANSPORT_LAYER__SERVER_HOSTNAME=0.0.0.0
|
||||||
|
DATA_TRANSPORT_LAYER__SERVER_PORT=7878
|
||||||
|
DATA_TRANSPORT_LAYER__TRANSACTIONS_PER_POLLING_INTERVAL=1000
|
||||||
39
optimism/env/l2geth.env
vendored
Normal file
39
optimism/env/l2geth.env
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
###############################################################################
|
||||||
|
# ↓ OPTIMISM OPTIONS ↓ #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
USING_OVM=true
|
||||||
|
SEQUENCER_CLIENT_HTTP=https://mainnet.optimism.io
|
||||||
|
BLOCK_SIGNER_ADDRESS=0x00000398232E2064F896018496b4b44b3D62751F
|
||||||
|
BLOCK_SIGNER_PRIVATE_KEY=6587ae678cf4fc9a33000cdbf9f35226b71dcc6a4684a31203241f9bcfd55d27
|
||||||
|
BLOCK_SIGNER_PRIVATE_KEY_PASSWORD=pwd
|
||||||
|
ETH1_CTC_DEPLOYMENT_HEIGHT=13596466
|
||||||
|
ETH1_SYNC_SERVICE_ENABLE=true
|
||||||
|
L2GETH_GENESIS_URL=https://storage.googleapis.com/optimism/mainnet/genesis-berlin.json
|
||||||
|
L2GETH_GENESIS_HASH=0x106b0a3247ca54714381b1109e82cc6b7e32fd79ae56fbcc2e7b1541122f84ea
|
||||||
|
ROLLUP_CLIENT_HTTP=http://optimism-dtl:7878
|
||||||
|
ROLLUP_MAX_CALLDATA_SIZE=40000
|
||||||
|
ROLLUP_POLL_INTERVAL_FLAG=1s
|
||||||
|
ROLLUP_VERIFIER_ENABLE=true
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# ↓ STANDARD OPTIONS ↓ #
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
DATADIR=/geth
|
||||||
|
CHAIN_ID=10
|
||||||
|
NETWORK_ID=10
|
||||||
|
NO_DISCOVER=true
|
||||||
|
NO_USB=true
|
||||||
|
GASPRICE=0
|
||||||
|
TARGET_GAS_LIMIT=15000000
|
||||||
|
RPC_ADDR=0.0.0.0
|
||||||
|
RPC_API=eth,rollup,net,web3,debug
|
||||||
|
RPC_CORS_DOMAIN=*
|
||||||
|
RPC_ENABLE=true
|
||||||
|
RPC_PORT=8545
|
||||||
|
RPC_VHOSTS=*
|
||||||
|
WS_ADDR=0.0.0.0
|
||||||
|
WS_API=eth,rollup,net,web3,debug
|
||||||
|
WS_ORIGINS=*
|
||||||
|
WS=true
|
||||||
24
optimism/scripts/dlt-start.sh
Normal file
24
optimism/scripts/dlt-start.sh
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eou
|
||||||
|
|
||||||
|
# Setting both endpoints doesn't hurt
|
||||||
|
export DATA_TRANSPORT_LAYER__L1_RPC_ENDPOINT=$DATA_TRANSPORT_LAYER__RPC_ENDPOINT
|
||||||
|
export DATA_TRANSPORT_LAYER__L2_RPC_ENDPOINT=$DATA_TRANSPORT_LAYER__RPC_ENDPOINT
|
||||||
|
|
||||||
|
# Set the backend depending on given sync source
|
||||||
|
export DATA_TRANSPORT_LAYER__DEFAULT_BACKEND=$SYNC_SOURCE
|
||||||
|
export DATA_TRANSPORT_LAYER__L1_GAS_PRICE_BACKEND=$SYNC_SOURCE
|
||||||
|
|
||||||
|
# Also tell the DTL to sync from the right place
|
||||||
|
if [ $SYNC_SOURCE == "l1" ]; then
|
||||||
|
export DATA_TRANSPORT_LAYER__SYNC_FROM_L1=true
|
||||||
|
export DATA_TRANSPORT_LAYER__SYNC_FROM_L2=false
|
||||||
|
else
|
||||||
|
export DATA_TRANSPORT_LAYER__SYNC_FROM_L1=false
|
||||||
|
export DATA_TRANSPORT_LAYER__SYNC_FROM_L2=true
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run the DTL
|
||||||
|
exec node \
|
||||||
|
dist/src/services/run.js \
|
||||||
|
$@
|
||||||
29
optimism/scripts/l2geth-init.sh
Normal file
29
optimism/scripts/l2geth-init.sh
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -exu
|
||||||
|
|
||||||
|
echo running "${0}"
|
||||||
|
|
||||||
|
GETH_DATA_DIR=/geth
|
||||||
|
GETH_CHAINDATA_DIR=$GETH_DATA_DIR/geth/chaindata
|
||||||
|
GETH_KEYSTORE_DIR=$GETH_DATA_DIR/keystore
|
||||||
|
|
||||||
|
if [ ! -d "$GETH_KEYSTORE_DIR" ]; then
|
||||||
|
echo "$GETH_KEYSTORE_DIR missing, running account import"
|
||||||
|
echo -n "$BLOCK_SIGNER_PRIVATE_KEY_PASSWORD" > "$GETH_DATA_DIR"/password
|
||||||
|
echo -n "$BLOCK_SIGNER_PRIVATE_KEY" > "$GETH_DATA_DIR"/block-signer-key
|
||||||
|
geth account import \
|
||||||
|
--datadir="$GETH_DATA_DIR" \
|
||||||
|
--password="$GETH_DATA_DIR"/password \
|
||||||
|
"$GETH_DATA_DIR"/block-signer-key
|
||||||
|
echo "get account import complete"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "$GETH_CHAINDATA_DIR" ]; then
|
||||||
|
echo "$GETH_CHAINDATA_DIR missing, running init"
|
||||||
|
geth init --datadir="$GETH_DATA_DIR" "$L2GETH_GENESIS_URL" "$L2GETH_GENESIS_HASH"
|
||||||
|
echo "geth init complete"
|
||||||
|
else
|
||||||
|
echo "$GETH_CHAINDATA_DIR exists, checking for hardfork."
|
||||||
|
echo "Chain config:"
|
||||||
|
geth dump-chain-cfg --datadir="$GETH_DATA_DIR"
|
||||||
|
fi
|
||||||
21
optimism/scripts/l2geth-start.sh
Normal file
21
optimism/scripts/l2geth-start.sh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eou
|
||||||
|
|
||||||
|
# Set rollup backend to match sync source
|
||||||
|
export ROLLUP_BACKEND=$SYNC_SOURCE
|
||||||
|
|
||||||
|
# Run geth
|
||||||
|
exec geth \
|
||||||
|
--vmodule=eth/*=5,miner=4,rpc=5,rollup=4,consensus/clique=1 \
|
||||||
|
--datadir=$DATADIR \
|
||||||
|
--password=$DATADIR/password \
|
||||||
|
--allow-insecure-unlock \
|
||||||
|
--unlock=$BLOCK_SIGNER_ADDRESS \
|
||||||
|
--mine \
|
||||||
|
--miner.etherbase=$BLOCK_SIGNER_ADDRESS \
|
||||||
|
--gcmode=$NODE_TYPE \
|
||||||
|
# --metrics \
|
||||||
|
# --metrics.influxdb \
|
||||||
|
# --metrics.influxdb.endpoint=http://influxdb:8086 \
|
||||||
|
# --metrics.influxdb.database=l2geth \
|
||||||
|
$@
|
||||||
Reference in New Issue
Block a user