diff --git a/.env.sample b/.env.sample index 815b2e0..efe694a 100644 --- a/.env.sample +++ b/.env.sample @@ -50,3 +50,5 @@ PROPOSE_BLOCK_TX_GAS_LIMIT=800000 # Comma-delimited local tx pool addresses you want to prioritize, useful to set your proposer to only propose blocks with your prover's transactions TXPOOL_LOCALS= +# Timeout when waiting for a propose or prove block transaction receipt to be seen, in seconds +WAIT_RECEIPT_TIMEOUT=360 diff --git a/.env.sample.l3 b/.env.sample.l3 index bc0fef3..46c4085 100644 --- a/.env.sample.l3 +++ b/.env.sample.l3 @@ -52,3 +52,5 @@ PROPOSE_BLOCK_TX_GAS_LIMIT=800000 # Comma-delimited local tx pool addresses you want to prioritize, useful to set your proposer to only propose blocks with your prover's transactions TXPOOL_LOCALS= +# Timeout when waiting for a propose or prove block transaction receipt to be seen, in seconds +WAIT_RECEIPT_TIMEOUT=360 \ No newline at end of file diff --git a/script/l2/start-prover-relayer.sh b/script/l2/start-prover-relayer.sh index adc2c74..83414a4 100755 --- a/script/l2/start-prover-relayer.sh +++ b/script/l2/start-prover-relayer.sh @@ -10,17 +10,18 @@ if [ "$ENABLE_PROVER" == "true" ]; then WAIT_HOSTS=zkevm_chain_prover_rpcd:9000 WAIT_TIMEOUT=360 ./wait - taiko-client prover \ - --l1.ws ${L1_ENDPOINT_WS} \ - --l2.ws ws://l2_execution_engine:8546 \ - --l1.http ${L1_ENDPOINT_HTTP} \ - --l2.http http://l2_execution_engine:8545 \ - --taikoL1 ${TAIKO_L1_ADDRESS} \ - --taikoL2 ${TAIKO_L2_ADDRESS} \ - --zkevmRpcdEndpoint http://zkevm_chain_prover_rpcd:9000 \ - --zkevmRpcdParamsPath /data \ - --l1.proverPrivKey ${L1_PROVER_PRIVATE_KEY} \ - --maxConcurrentProvingJobs ${ZKEVM_CHAIN_INSTANCES_NUM} + ARGS="--l1.ws ${L1_ENDPOINT_WS} + --l2.ws ws://l2_execution_engine:8546 + --l1.http ${L1_ENDPOINT_HTTP} + --l2.http http://l2_execution_engine:8545 + --taikoL1 ${TAIKO_L1_ADDRESS} + --taikoL2 ${TAIKO_L2_ADDRESS} + --zkevmRpcdEndpoint http://zkevm_chain_prover_rpcd:9000 + --zkevmRpcdParamsPath /data + --l1.proverPrivKey ${L1_PROVER_PRIVATE_KEY} + --maxConcurrentProvingJobs ${ZKEVM_CHAIN_INSTANCES_NUM}" + + taiko-client prover {$ARGS} else sleep infinity fi diff --git a/script/l3/start-proposer.sh b/script/l3/start-proposer.sh index 42f2246..7e23086 100755 --- a/script/l3/start-proposer.sh +++ b/script/l3/start-proposer.sh @@ -18,6 +18,11 @@ fi if [[ ! -z "$PROPOSE_BLOCK_TX_GAS_LIMIT" ]]; then ARGS="${ARGS} --proposeBlockTxGasLimit ${PROPOSE_BLOCK_TX_GAS_LIMIT}" fi + +if [[ ! -z "$WAIT_RECEIPT_TIMEOUT" ]]; then + ARGS="${ARGS} --rpc.waitReceiptTimeout ${WAIT_RECEIPT_TIMEOUT}" +fi + if [ "$ENABLE_PROPOSER" == "true" ]; then taiko-client proposer ${ARGS} else diff --git a/script/l3/start-prover-relayer.sh b/script/l3/start-prover-relayer.sh index 8f84e70..17daffd 100755 --- a/script/l3/start-prover-relayer.sh +++ b/script/l3/start-prover-relayer.sh @@ -10,35 +10,31 @@ if [ "$ENABLE_PROVER" == "true" ]; then WAIT_HOSTS=l3_zkevm_chain_prover_rpcd:9000 WAIT_TIMEOUT=3600 ./wait - if [ "$PROVE_UNASSIGNED_BLOCKS" == "true" ]; then - taiko-client prover \ - --l1.ws ${L2_ENDPOINT_WS} \ - --l2.ws ws://l3_execution_engine:8546 \ - --l1.http ${L2_ENDPOINT_HTTP} \ - --l2.http http://l3_execution_engine:8545 \ - --taikoL1 ${TAIKO_L1_ADDRESS} \ - --taikoL2 ${TAIKO_L2_ADDRESS} \ - --taikoProverPoolL1 ${PROVER_POOL_ADDRESS} \ - --zkevmRpcdEndpoint http://l3_zkevm_chain_prover_rpcd:9000 \ + + ARGS="--l1.ws ${L2_ENDPOINT_WS} + --l2.ws ws://l3_execution_engine:8546 + --l1.http ${L2_ENDPOINT_HTTP} + --l2.http http://l3_execution_engine:8545 + --taikoL1 ${TAIKO_L1_ADDRESS} + --taikoL2 ${TAIKO_L2_ADDRESS} + --taikoProverPoolL1 ${PROVER_POOL_ADDRESS} + --zkevmRpcdEndpoint http://l3_zkevm_chain_prover_rpcd:9000 --zkevmRpcdParamsPath /data \ - --l1.proverPrivKey ${L2_PROVER_PRIVATE_KEY} \ - --maxConcurrentProvingJobs ${ZKEVM_CHAIN_INSTANCES_NUM} \ - --prover.proveUnassignedBlocks + --l1.proverPrivKey ${L2_PROVER_PRIVATE_KEY} + --maxConcurrentProvingJobs ${ZKEVM_CHAIN_INSTANCES_NUM}" + + if [[ ! -z "$WAIT_RECEIPT_TIMEOUT" ]]; then + ARGS="${ARGS} --rpc.waitReceiptTimeout ${WAIT_RECEIPT_TIMEOUT}" + fi + + if [[ ! -z "$PROVE_UNASSIGNED_BLOCKS" ]]; then + ARGS="${ARGS} --prover.proveUnassignedBlocks" else - taiko-client prover \ - --l1.ws ${L2_ENDPOINT_WS} \ - --l2.ws ws://l3_execution_engine:8546 \ - --l1.http ${L2_ENDPOINT_HTTP} \ - --l2.http http://l3_execution_engine:8545 \ - --taikoL1 ${TAIKO_L1_ADDRESS} \ - --taikoL2 ${TAIKO_L2_ADDRESS} \ - --taikoProverPoolL1 ${PROVER_POOL_ADDRESS} \ - --zkevmRpcdEndpoint http://l3_zkevm_chain_prover_rpcd:9000 \ - --zkevmRpcdParamsPath /data \ - --l1.proverPrivKey ${L2_PROVER_PRIVATE_KEY} \ - --maxConcurrentProvingJobs ${ZKEVM_CHAIN_INSTANCES_NUM} \ - --prover.proveUnassignedBlocks=false + ARGS="${ARGS} --prover.proveUnassignedBlocks false" fi + + + taiko-client prover ${ARGS} else sleep infinity fi