github.com/ethereum-optimism/optimism/l2geth@v0.0.0-20230612200230-50b04ade19e3/scripts/start.sh (about)

     1  #!/bin/bash
     2  
     3  DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
     4  REPO=$DIR/..
     5  
     6  IS_VERIFIER=
     7  ROLLUP_SYNC_SERVICE_ENABLE=true
     8  DATADIR=$HOME/.ethereum
     9  TARGET_GAS_LIMIT=15000000
    10  ETH1_CTC_DEPLOYMENT_HEIGHT=12686738
    11  ROLLUP_CLIENT_HTTP=http://localhost:7878
    12  ROLLUP_POLL_INTERVAL=15s
    13  ROLLUP_TIMESTAMP_REFRESH=15s
    14  CACHE=1024
    15  RPC_PORT=8545
    16  WS_PORT=8546
    17  VERBOSITY=3
    18  ROLLUP_BACKEND=l2
    19  CHAIN_ID=69
    20  BLOCK_SIGNER_ADDRESS=0x00000398232E2064F896018496b4b44b3D62751F
    21  
    22  USAGE="
    23  Start the Sequencer or Verifier with most configuration pre-set.
    24  
    25  CLI Arguments:
    26    -h|--help                              - help message
    27    -v|--verifier                          - start in verifier mode
    28    --datadir                              - data directory to use
    29    --chainid                              - layer two chain id to use, must match contracts on L1
    30    --rollup.clienthttp                    - rollup client http
    31    --rollup.pollinterval                  - polling interval for the rollup client
    32    --rollup.timestamprefresh              - timestamp refresh interval
    33    --cache                                - geth cache size
    34    --targetgaslimit                       - gas per block
    35  "
    36  
    37  while (( "$#" )); do
    38      case "$1" in
    39          -h|--help)
    40              echo "$USAGE"
    41              exit 0
    42              ;;
    43          -v|--verifier)
    44              IS_VERIFIER=true
    45              shift 1
    46              ;;
    47          --rollup.disablesyncservice)
    48              ROLLUP_SYNC_SERVICE_ENABLE=
    49              shift 1
    50              ;;
    51          --verbosity)
    52              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
    53                  VERBOSITY="$2"
    54                  shift 2
    55              else
    56                  echo "Error: Argument for $1 is missing" >&2
    57                  exit 1
    58              fi
    59              ;;
    60          --datadir)
    61              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
    62                  DATADIR="$2"
    63                  shift 2
    64              else
    65                  echo "Error: Argument for $1 is missing" >&2
    66                  exit 1
    67              fi
    68              ;;
    69          --rpcport)
    70              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
    71                  RPC_PORT="$2"
    72                  shift 2
    73              else
    74                  echo "Error: Argument for $1 is missing" >&2
    75                  exit 1
    76              fi
    77              ;;
    78          --wsport)
    79              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
    80                  WS_PORT="$2"
    81                  shift 2
    82              else
    83                  echo "Error: Argument for $1 is missing" >&2
    84                  exit 1
    85              fi
    86              ;;
    87          --eth1.ctcdeploymentheight)
    88              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
    89                  ETH1_CTC_DEPLOYMENT_HEIGHT="$2"
    90                  shift 2
    91              else
    92                  echo "Error: Argument for $1 is missing" >&2
    93                  exit 1
    94              fi
    95              ;;
    96          --rollup.clienthttp)
    97              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
    98                  ROLLUP_CLIENT_HTTP="$2"
    99                  shift 2
   100              else
   101                  echo "Error: Argument for $1 is missing" >&2
   102                  exit 1
   103              fi
   104              ;;
   105          --rollup.pollinterval)
   106              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
   107                  ROLLUP_POLL_INTERVAL="$2"
   108                  shift 2
   109              else
   110                  echo "Error: Argument for $1 is missing" >&2
   111                  exit 1
   112              fi
   113              ;;
   114          --rollup.timestamprefresh)
   115              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
   116                  ROLLUP_TIMESTAMP_REFRESH="$2"
   117                  shift 2
   118              else
   119                  echo "Error: Argument for $1 is missing" >&2
   120                  exit 1
   121              fi
   122              ;;
   123          --rollup.backend)
   124              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
   125                  ROLLUP_BACKEND="$2"
   126                  shift 2
   127              else
   128                  echo "Error: Argument for $1 is missing" >&2
   129                  exit 1
   130              fi
   131              ;;
   132          --cache)
   133              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
   134                  CACHE="$2"
   135                  shift 2
   136              else
   137                  echo "Error: Argument for $1 is missing" >&2
   138                  exit 1
   139              fi
   140              ;;
   141          --targetgaslimit)
   142              if [ -n "$2" ] && [ ${2:0:1} != "-" ]; then
   143                  TARGET_GASLIMIT="$2"
   144                  shift 2
   145              else
   146                  echo "Error: Argument for $1 is missing" >&2
   147                  exit 1
   148              fi
   149              ;;
   150          *)
   151              echo "Unknown argument $1" >&2
   152              shift
   153              ;;
   154      esac
   155  done
   156  
   157  cmd="$REPO/build/bin/geth"
   158  if [[ ! -z "$ROLLUP_SYNC_SERVICE_ENABLE" ]]; then
   159      cmd="$cmd --eth1.syncservice"
   160  fi
   161  cmd="$cmd --datadir $DATADIR"
   162  cmd="$cmd --eth1.ctcdeploymentheight $ETH1_CTC_DEPLOYMENT_HEIGHT"
   163  cmd="$cmd --rollup.clienthttp $ROLLUP_CLIENT_HTTP"
   164  cmd="$cmd --rollup.pollinterval $ROLLUP_POLL_INTERVAL"
   165  cmd="$cmd --rollup.timestamprefresh $ROLLUP_TIMESTAMP_REFRESH"
   166  cmd="$cmd --rollup.backend $ROLLUP_BACKEND"
   167  cmd="$cmd --cache $CACHE"
   168  cmd="$cmd --rpc"
   169  cmd="$cmd --networkid $CHAIN_ID"
   170  cmd="$cmd --rpcaddr 0.0.0.0"
   171  cmd="$cmd --rpcport $RPC_PORT"
   172  cmd="$cmd --rpcvhosts '*'"
   173  cmd="$cmd --rpccorsdomain '*'"
   174  cmd="$cmd --rpcvhosts '*'"
   175  cmd="$cmd --ws"
   176  cmd="$cmd --wsaddr 0.0.0.0"
   177  cmd="$cmd --wsport $WS_PORT"
   178  cmd="$cmd --wsorigins '*'"
   179  cmd="$cmd --rpcapi eth,net,rollup,web3,debug,personal"
   180  cmd="$cmd --gasprice 0"
   181  cmd="$cmd --nousb"
   182  cmd="$cmd --gcmode=archive"
   183  cmd="$cmd --nodiscover"
   184  cmd="$cmd --mine"
   185  cmd="$cmd --password=$DATADIR/password"
   186  cmd="$cmd --allow-insecure-unlock"
   187  cmd="$cmd --unlock=$BLOCK_SIGNER_ADDRESS"
   188  cmd="$cmd --miner.etherbase=$BLOCK_SIGNER_ADDRESS"
   189  cmd="$cmd --txpool.pricelimit 0"
   190  
   191  if [[ ! -z "$IS_VERIFIER" ]]; then
   192      cmd="$cmd --rollup.verifier"
   193  fi
   194  cmd="$cmd --verbosity=$VERBOSITY"
   195  
   196  echo -e "Running:\nTARGET_GAS_LIMIT=$TARGET_GAS_LIMIT USING_OVM=true $cmd"
   197  TARGET_GAS_LIMIT=$TARGET_GAS_LIMIT USING_OVM=true $cmd