diff --git a/.env.sample b/.env.sample index e8c0442..525ffd6 100644 --- a/.env.sample +++ b/.env.sample @@ -30,7 +30,6 @@ P2P_SYNC_URL=https://rpc.mainnet.taiko.xyz # If you are using a local Mainnet L1 node, you can refer to it as "http://host.docker.internal:8545" and "ws://host.docker.internal:8546", which refer to the default ports in the .env for an eth-docker L1 node. # However, you may need to add this host to docker-compose.yml. If that does not work, you can try the private local ip address (e.g. http://192.168.1.15:8545). You can find that with `ip addr show` or a similar command. # In addition, you can use your public ip address followed by the specific ports for http and ws (e.g. http://82.168.1.15:8545). You can find that with `hostname -I | awk '{print $1}'`. -L1_ENDPOINT_HTTP= L1_ENDPOINT_WS= # HTTP RPC endpoint of a L1 beacon node. Everything behind the top-level domain is ignored. Make sure you don't need to work with subdirectories. The path will always be /eth/v1... # If you are using a local Mainnet L1 node, you can refer to it as "http://host.docker.internal:5052", which refer to the default REST port in the .env for an eth-docker L1 node. diff --git a/.env.sample.hekla b/.env.sample.hekla index 479cbca..2c49a00 100644 --- a/.env.sample.hekla +++ b/.env.sample.hekla @@ -30,7 +30,6 @@ P2P_SYNC_URL=https://rpc.hekla.taiko.xyz # If you are using a local Holesky L1 node, you can refer to it as "http://host.docker.internal:8545" and "ws://host.docker.internal:8546", which refer to the default ports in the .env for an eth-docker L1 node. # However, you may need to add this host to docker-compose.yml. If that does not work, you can try the private local ip address (e.g. http://192.168.1.15:8545). You can find that with `ip addr show` or a similar command. # In addition, you can use your public ip address followed by the specific ports for http and ws (e.g. http://82.168.1.15:8545). You can find that with `hostname -I | awk '{print $1}'`. -L1_ENDPOINT_HTTP= L1_ENDPOINT_WS= # HTTP RPC endpoint of a L1 beacon node. Everything behind the top-level domain is ignored. Make sure you don't need to work with subdirectories. The path will always be /eth/v1... # If you are using a local Holesky L1 node, you can refer to it as "http://host.docker.internal:5052", which refer to the default REST port in the .env for an eth-docker L1 node. @@ -55,6 +54,11 @@ MIN_TAIKO_BALANCE= # Whether to prove unassigned blocks or not (blocks that have expired their proof window # without the original prover submitting a proof.). PROVE_UNASSIGNED_BLOCKS=false +# The default size of batch sgx proofs, when it arrives, submit a batch of proof immediately, when the value is larger than 1, it means enabling the proof aggregation. +SGX_BATCH_SIZE= +# Time interval to prove blocks, even if the number of pending proofs does not exceed the batchSize, this flag only works when the proof aggregation is enabled. +# Recommended that this value is no greater than 45min, default is 30min. +FORCE_BATCH_PROVING_INTERVAL= # If you want to be a proposer who proposes L2 execution engine's transactions in mempool to Taiko L1 protocol # contract (be a "mining L2 node"), you need to change `ENABLE_PROPOSER` to true, then fill `L1_PROPOSER_PRIVATE_KEY`. @@ -74,6 +78,10 @@ PROVER_SET= # 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= +# If set to true, the proposer will use calldata as DA when the blob fee is more expensive than using calldata. +FALLBACK_TO_CALLDATA= +# Enable revert protection. When you are not the first taiko proposer in current L1 block, you would revert. +REVERT_PROTECTION= # Transaction Manager Flags (Leave blank if using default values.) These only affect Prover and Proposer. diff --git a/script/start-proposer.sh b/script/start-proposer.sh index fc5f1fd..d76c589 100755 --- a/script/start-proposer.sh +++ b/script/start-proposer.sh @@ -40,6 +40,14 @@ if [ "$ENABLE_PROPOSER" = "true" ]; then ARGS="${ARGS} --l1.blobAllowed" fi + if [ "$FALLBACK_TO_CALLDATA" == "true" ]; then + ARGS="${ARGS} --l1.fallbackToCalldata" + fi + + if [ "$REVERT_PROTECTION" == "true" ]; then + ARGS="${ARGS} --l1.revertProtection" + fi + # TXMGR Settings if [ -n "$TX_FEE_LIMIT_MULTIPLIER" ]; then ARGS="${ARGS} --tx.feeLimitMultiplier ${TX_FEE_LIMIT_MULTIPLIER}" diff --git a/script/start-prover-relayer.sh b/script/start-prover-relayer.sh index 6a441c9..a8e465a 100755 --- a/script/start-prover-relayer.sh +++ b/script/start-prover-relayer.sh @@ -22,11 +22,6 @@ if [ "$ENABLE_PROVER" = "true" ]; then exit 1 fi - if [ -z "$L1_ENDPOINT_HTTP" ]; then - echo "Error: L1_ENDPOINT_HTTP must be non-empty" - exit 1 - fi - if [ -z "$L1_PROVER_PRIVATE_KEY" ]; then echo "Error: L1_PROVER_PRIVATE_KEY must be non-empty" exit 1 @@ -52,6 +47,14 @@ if [ "$ENABLE_PROVER" = "true" ]; then ARGS="${ARGS} --prover.proveUnassignedBlocks" fi + if [ -n "$SGX_BATCH_SIZE" ]; then + ARGS="${ARGS} --prover.sgx.batchSize ${SGX_BATCH_SIZE}" + fi + + if [ -n "$FORCE_BATCH_PROVING_INTERVAL" ]; then + ARGS="${ARGS} --prover.forceBatchProvingInterval ${FORCE_BATCH_PROVING_INTERVAL}" + fi + # TXMGR Settings if [ -n "$TX_FEE_LIMIT_MULTIPLIER" ]; then ARGS="${ARGS} --tx.feeLimitMultiplier ${TX_FEE_LIMIT_MULTIPLIER}"