add optimism

This commit is contained in:
Sebastian
2023-01-05 16:45:31 +01:00
parent c8552100f8
commit 6d8324ded8
6 changed files with 177 additions and 0 deletions

16
optimism/env/dtl.env vendored Normal file
View 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
View 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

View 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 \
$@

View 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

View 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 \
$@