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