82 lines
2.5 KiB
Bash
Executable File
82 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eu
|
|
|
|
VERBOSITY=${GETH_VERBOSITY:-3}
|
|
GETH_DATA_DIR=/data
|
|
GETH_CHAINDATA_DIR="$GETH_DATA_DIR/geth/chaindata"
|
|
OP_GETH_GENESIS_FILE_PATH="${OP_GETH_GENESIS_FILE_PATH:-/genesis.json}"
|
|
CHAIN_ID=$(jq -r .config.chainId < "$OP_GETH_GENESIS_FILE_PATH")
|
|
RPC_PORT="${RPC_PORT:-8545}"
|
|
WS_PORT="${WS_PORT:-8546}"
|
|
AUTHRPC_PORT="${AUTHRPC_PORT:-8551}"
|
|
METRICS_PORT="${METRICS_PORT:-6060}"
|
|
HOST_IP="0.0.0.0"
|
|
P2P_PORT="${P2P_PORT:-30303}"
|
|
ADDITIONAL_ARGS=""
|
|
|
|
#mkdir -p $GETH_DATA_DIR
|
|
|
|
#if [ ! -d "$GETH_CHAINDATA_DIR" ]; then
|
|
# echo "$GETH_CHAINDATA_DIR missing, running init"
|
|
# echo "Initializing genesis."
|
|
# ./geth --verbosity="$VERBOSITY" init \
|
|
# --datadir="$GETH_DATA_DIR" \
|
|
# "$OP_GETH_GENESIS_FILE_PATH"
|
|
#else
|
|
# echo "$GETH_CHAINDATA_DIR exists."
|
|
#fi
|
|
|
|
#wget https://base-mainnet-archive-snapshots.s3.us-east-1.amazonaws.com/$(curl https://base-mainnet-archive-snapshots.s3.us-east-1.amazonaws.com/latest)
|
|
|
|
#if [ ! -f "${GETH_DATA_DIR}/bootstrapped" ];
|
|
#then
|
|
# echo "downloading snapshot"
|
|
# rm -rf $GETH_DATA_DIR/geth
|
|
# wget --tries=0 -O - "https://base-mainnet-archive-snapshots.s3.us-east-1.amazonaws.com/$(curl https://base-mainnet-archive-snapshots.s3.us-east-1.amazonaws.com/latest)" | tar -xz --strip-components=1 -C ${GETH_DATA_DIR} && touch ${GETH_DATA_DIR}/bootstrapped
|
|
#fi
|
|
|
|
echo "$OP_NODE_L2_ENGINE_AUTH_RAW" > "$OP_NODE_L2_ENGINE_AUTH"
|
|
|
|
if [ "${OP_GETH_ETH_STATS+x}" = x ]; then
|
|
ADDITIONAL_ARGS="$ADDITIONAL_ARGS --ethstats=$OP_GETH_ETH_STATS"
|
|
fi
|
|
|
|
if [ "${OP_GETH_ALLOW_UNPROTECTED_TXS+x}" = x ]; then
|
|
ADDITIONAL_ARGS="$ADDITIONAL_ARGS --rpc.allow-unprotected-txs=$OP_GETH_ALLOW_UNPROTECTED_TXS"
|
|
fi
|
|
|
|
exec ./geth \
|
|
--datadir="$GETH_DATA_DIR" \
|
|
--verbosity="$VERBOSITY" \
|
|
--http \
|
|
--http.corsdomain="*" \
|
|
--http.vhosts="*" \
|
|
--http.addr=0.0.0.0 \
|
|
--http.port="$RPC_PORT" \
|
|
--http.api=web3,debug,eth,net,engine \
|
|
--authrpc.addr=0.0.0.0 \
|
|
--authrpc.port="$AUTHRPC_PORT" \
|
|
--authrpc.vhosts="*" \
|
|
--authrpc.jwtsecret="$OP_NODE_L2_ENGINE_AUTH" \
|
|
--ws \
|
|
--ws.addr=0.0.0.0 \
|
|
--ws.port="$WS_PORT" \
|
|
--ws.origins="*" \
|
|
--ws.api=debug,eth,net,engine \
|
|
--metrics \
|
|
--metrics.addr=0.0.0.0 \
|
|
--metrics.port="$METRICS_PORT" \
|
|
--syncmode=full \
|
|
--gcmode=${OP_GETH_GCMODE:-archive} \
|
|
--state.scheme=${OP_GETH_STATE_SCHEME:-hash} \
|
|
--db.engine=${GETH_DB_ENGINE:-leveldb} \
|
|
--discovery.port=${P2P_PORT:-30303} \
|
|
--maxpeers=100 \
|
|
--nat=extip:$HOST_IP \
|
|
--networkid="$CHAIN_ID" \
|
|
--op-network="base-mainnet" \
|
|
--rollup.halt=major \
|
|
--rollup.sequencerhttp="$OP_GETH_SEQUENCER_HTTP" \
|
|
--port=${P2P_PORT} \
|
|
$ADDITIONAL_ARGS # intentionally unquoted
|