diff --git a/config/config_test.go b/config/config_test.go index 48a0fdd286..079fa91fce 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -153,6 +153,10 @@ func Test_Defaults(t *testing.T) { path: "Sequencer.StreamServer.Version", expectedValue: uint8(0), }, + { + path: "Sequencer.StreamServer.WriteTimeout", + expectedValue: types.NewDuration(5 * time.Second), + }, { path: "Sequencer.StreamServer.Enabled", expectedValue: false, diff --git a/config/default.go b/config/default.go index 9a06ad3fef..8e99b35e69 100644 --- a/config/default.go +++ b/config/default.go @@ -206,6 +206,7 @@ StateConsistencyCheckInterval = "5s" Port = 0 Filename = "" Version = 0 + WriteTimeout = "5s" Enabled = false [SequenceSender] diff --git a/config/environments/local/local.node.config.toml b/config/environments/local/local.node.config.toml index 237ab37129..2f50f96311 100644 --- a/config/environments/local/local.node.config.toml +++ b/config/environments/local/local.node.config.toml @@ -113,6 +113,7 @@ StateConsistencyCheckInterval = "5s" [Sequencer.StreamServer] Port = 0 Filename = "" + WriteTimeout = "5s" Enabled = false [SequenceSender] diff --git a/docs/config-file/node-config-doc.html b/docs/config-file/node-config-doc.html index 858b9034fd..14800feab3 100644 --- a/docs/config-file/node-config-doc.html +++ b/docs/config-file/node-config-doc.html @@ -2,27 +2,21 @@
"300ms"
WaitTxToBeMined time to wait after transaction was sent to the ethereum
"1m"
"300ms"
-
PrivateKeys defines all the key store files that are going
to be read in order to provide the private keys to sign the L1 txs
Path is the file path for the key store file
Password is the password to decrypt the key store file
ForcedGas is the amount of gas to be forced in case of gas estimation error
GasPriceMarginFactor is used to multiply the suggested gas price provided by the network
in order to allow a different gas price to be set for all the transactions and making it
easier to have the txs prioritized in the pool, default value is 1.
ex:
suggested gas price: 100
GasPriceMarginFactor: 1
gas price = 100
suggested gas price: 100
GasPriceMarginFactor: 1.1
gas price = 110
MaxGasPriceLimit helps avoiding transactions to be sent over an specified
gas price amount, default value is 0, which means no limit.
If the gas price provided by the network and adjusted by the GasPriceMarginFactor
is greater than this configuration, transaction will have its gas price set to
the value configured in this config as the limit.
ex:
suggested gas price: 100
gas price margin factor: 20%
max gas price limit: 150
tx gas price = 120
suggested gas price: 100
gas price margin factor: 20%
max gas price limit: 110
tx gas price = 110
Enable is the flag to enable the custodial assets
URL is the url to sign the custodial assets
Symbol is the symbol of the network, 2 prd, 2882 devnet
SequencerAddr is the address of the sequencer
Must contain a minimum of 20
items
Must contain a maximum of 20
items
AggregatorAddr is the address of the aggregator
Must contain a minimum of 20
items
Must contain a maximum of 20
items
WaitResultTimeout is the timeout to wait for the result of the custodial assets
"1m"
-
"300ms"
-
OperateTypeSeq is the operate type of the custodial assets for the sequencer
OperateTypeAgg is the operate type of the custodial assets for the aggregator
ProjectSymbol is the project symbol of the custodial assets
OperateSymbol is the operate symbol of the custodial assets
SysFrom is the sys from of the custodial assets
UserID is the user id of the custodial assets
OperateAmount is the operate amount of the custodial assets
RequestSignURI is the request sign uri of the custodial assets
QuerySignURI is the query sign uri of the custodial assets
AccessKey is the access key of the custodial assets
SecretKey is the secret key of the custodial assets
IntervalToRefreshBlockedAddresses is the time it takes to sync the
blocked address list from db to memory
"1m"
+
PrivateKeys defines all the key store files that are going
to be read in order to provide the private keys to sign the L1 txs
Path is the file path for the key store file
Password is the password to decrypt the key store file
ForcedGas is the amount of gas to be forced in case of gas estimation error
GasPriceMarginFactor is used to multiply the suggested gas price provided by the network
in order to allow a different gas price to be set for all the transactions and making it
easier to have the txs prioritized in the pool, default value is 1.
ex:
suggested gas price: 100
GasPriceMarginFactor: 1
gas price = 100
suggested gas price: 100
GasPriceMarginFactor: 1.1
gas price = 110
MaxGasPriceLimit helps avoiding transactions to be sent over an specified
gas price amount, default value is 0, which means no limit.
If the gas price provided by the network and adjusted by the GasPriceMarginFactor
is greater than this configuration, transaction will have its gas price set to
the value configured in this config as the limit.
ex:
suggested gas price: 100
gas price margin factor: 20%
max gas price limit: 150
tx gas price = 120
suggested gas price: 100
gas price margin factor: 20%
max gas price limit: 110
tx gas price = 110
IntervalToRefreshBlockedAddresses is the time it takes to sync the
blocked address list from db to memory
"1m"
"300ms"
-
IntervalToRefreshWhiteAddresses is the time it takes to sync the
white address list from db to memory
"1m"
-
"300ms"
-
EnableWhitelist is a flag to enable/disable the whitelist
IntervalToRefreshGasPrices is the time to wait to refresh the gas prices
"1m"
+
IntervalToRefreshGasPrices is the time to wait to refresh the gas prices
"1m"
"300ms"
-
MaxTxBytesSize is the max size of a transaction in bytes
MaxTxDataBytesSize is the max size of the data field of a transaction in bytes
Database name
Database User name
Database Password of the user
Host address of database
Port Number of database
EnableLog
MaxConns is the maximum number of connections in the pool.
DefaultMinGasPriceAllowed is the default min gas price to suggest
MinAllowedGasPriceInterval is the interval to look back of the suggested min gas price for a tx
"1m"
+
MaxTxBytesSize is the max size of a transaction in bytes
MaxTxDataBytesSize is the max size of the data field of a transaction in bytes
Database name
Database User name
Database Password of the user
Host address of database
Port Number of database
EnableLog
MaxConns is the maximum number of connections in the pool.
DefaultMinGasPriceAllowed is the default min gas price to suggest
MinAllowedGasPriceInterval is the interval to look back of the suggested min gas price for a tx
"1m"
"300ms"
PollMinAllowedGasPriceInterval is the interval to poll the suggested min gas price for a tx
"1m"
"300ms"
-
AccountQueue represents the maximum number of non-executable transaction slots permitted per account
GlobalQueue represents the maximum number of non-executable transaction slots for all accounts
Enabled is a flag to enable/disable the effective gas price
L1GasPriceFactor is the percentage of the L1 gas price that will be used as the L2 min gas price
ByteGasCost is the gas cost per byte that is not 0
ZeroByteGasCost is the gas cost per byte that is 0
NetProfit is the profit margin to apply to the calculated breakEvenGasPrice
BreakEvenFactor is the factor to apply to the calculated breakevenGasPrice when comparing it with the gasPriceSigned of a tx
FinalDeviationPct is the max allowed deviation percentage BreakEvenGasPrice on re-calculation
EthTransferGasPrice is the fixed gas price returned as effective gas price for txs tha are ETH transfers (0 means disabled)
Only one of EthTransferGasPrice or EthTransferL1GasPriceFactor params can be different than 0. If both params are set to 0, the sequencer will halt and log an error
EthTransferL1GasPriceFactor is the percentage of L1 gas price returned as effective gas price for txs tha are ETH transfers (0 means disabled)
Only one of EthTransferGasPrice or EthTransferL1GasPriceFactor params can be different than 0. If both params are set to 0, the sequencer will halt and log an error
L2GasPriceSuggesterFactor is the factor to apply to L1 gas price to get the suggested L2 gas price used in the
calculations when the effective gas price is disabled (testing/metrics purposes)
ForkID is the current fork ID of the chain
XLayer config
BlockedList is the blocked address list
FreeGasAddress is the default free gas address
FreeClaimGasLimit is the max gas allowed use to do a free claim
BridgeClaimMethodSignature for tracking BridgeClaimMethodSignature method
EnableFreeGasByNonce enable free gas
FreeGasExAddress is the ex address which can be free gas for the transfer receiver
FreeGasCountPerAddr is the count limit of free gas tx per address
FreeGasLimit is the max gas allowed use to do a free gas tx
Host defines the network adapter that will be used to serve the HTTP requests
Port defines the port to serve the endpoints via HTTP
ReadTimeout is the HTTP server read timeout
check net/http.server.ReadTimeout and net/http.server.ReadHeaderTimeout
"1m"
+
AccountQueue represents the maximum number of non-executable transaction slots permitted per account
GlobalQueue represents the maximum number of non-executable transaction slots for all accounts
Enabled is a flag to enable/disable the effective gas price
L1GasPriceFactor is the percentage of the L1 gas price that will be used as the L2 min gas price
ByteGasCost is the gas cost per byte that is not 0
ZeroByteGasCost is the gas cost per byte that is 0
NetProfit is the profit margin to apply to the calculated breakEvenGasPrice
BreakEvenFactor is the factor to apply to the calculated breakevenGasPrice when comparing it with the gasPriceSigned of a tx
FinalDeviationPct is the max allowed deviation percentage BreakEvenGasPrice on re-calculation
EthTransferGasPrice is the fixed gas price returned as effective gas price for txs tha are ETH transfers (0 means disabled)
Only one of EthTransferGasPrice or EthTransferL1GasPriceFactor params can be different than 0. If both params are set to 0, the sequencer will halt and log an error
EthTransferL1GasPriceFactor is the percentage of L1 gas price returned as effective gas price for txs tha are ETH transfers (0 means disabled)
Only one of EthTransferGasPrice or EthTransferL1GasPriceFactor params can be different than 0. If both params are set to 0, the sequencer will halt and log an error
L2GasPriceSuggesterFactor is the factor to apply to L1 gas price to get the suggested L2 gas price used in the
calculations when the effective gas price is disabled (testing/metrics purposes)
ForkID is the current fork ID of the chain
TxFeeCap is the global transaction fee(price * gaslimit) cap for
send-transaction variants. The unit is ether. 0 means no cap.
Host defines the network adapter that will be used to serve the HTTP requests
Port defines the port to serve the endpoints via HTTP
ReadTimeout is the HTTP server read timeout
check net/http.server.ReadTimeout and net/http.server.ReadHeaderTimeout
"1m"
"300ms"
WriteTimeout is the HTTP server write timeout
check net/http.server.WriteTimeout
"1m"
"300ms"
-
MaxRequestsPerIPAndSecond defines how much requests a single IP can
send within a single second
SequencerNodeURI is used allow Non-Sequencer nodes
to relay transactions to the Sequencer node
MaxCumulativeGasUsed is the max gas allowed per batch
Enabled defines if the WebSocket requests are enabled or disabled
Host defines the network adapter that will be used to serve the WS requests
Port defines the port to serve the endpoints via WS
ReadLimit defines the maximum size of a message read from the client (in bytes)
EnableL2SuggestedGasPricePolling enables polling of the L2 gas price to block tx in the RPC with lower gas price.
BatchRequestsEnabled defines if the Batch requests are enabled or disabled
BatchRequestsLimit defines the limit of requests that can be incorporated into each batch request
L2Coinbase defines which address is going to receive the fees
Must contain a minimum of 20
items
Must contain a maximum of 20
items
MaxLogsCount is a configuration to set the max number of logs that can be returned
in a single call to the state, if zero it means no limit
MaxLogsBlockRange is a configuration to set the max range for block number when querying TXs
logs in a single call to the state, if zero it means no limit
MaxNativeBlockHashBlockRange is a configuration to set the max range for block number when querying
native block hashes in a single call to the state, if zero it means no limit
EnableHttpLog allows the user to enable or disable the logs related to the HTTP
requests to be captured by the server.
XLayer config
EnablePendingTransactionFilter enables pending transaction filter that can support query L2 pending transaction
URLs nacos server urls for discovery service of rest api, url is separated by ","
NamespaceId nacos namepace id for discovery service of rest api
ApplicationName rest application name in nacos
ExternalListenAddr Set the rest-server external ip and port, when it is launched by Docker
URLs nacos server urls for discovery service of rest api, url is separated by ","
NamespaceId nacos namepace id for discovery service of rest api
ApplicationName rest application name in nacos
ExternalListenAddr Set the rest-server external ip and port, when it is launched by Docker
GasLimitFactor is used to multiply the suggested gas provided by the network
in order to allow a enough gas to be set for all the transactions default value is 1.
ex:
suggested gas limit: 100
GasLimitFactor: 1
gas limit = 100
suggested gas limit: 100
GasLimitFactor: 1.1
gas limit = 110
DisableAPIs disable some API
Enabled defines if the rate limit is enabled or disabled
RateLimitApis defines the apis that need to be rate limited
RateLimitBurst defines the maximum burst size of requests
RateLimitDuration defines the time window for the rate limit
SpecialApis defines the apis that need to be rate limited with special rate limit
Api defines the api that need to be rate limited
Count defines the maximum burst size of requests
Duration defines the time window for the rate limit
Enabled defines if the dynamic gas price is enabled or disabled
CongestionTxThreshold defines the tx threshold to measure whether there is congestion
CheckBatches defines the number of recent Batches used to sample gas price
SampleTxNumer defines the number of sampled gas prices in each batch
Percentile defines the sampling weight of all sampled gas prices
MaxPrice defines the dynamic gas price upper limit
MinPrice defines the dynamic gas price lower limit
UpdatePeriod defines the time interval for updating dynamic gas price
"1m"
-
"300ms"
-
EnableInnerTxCacheDB enables the inner tx cache db
BridgeAddress is the address of the bridge contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
Enabled defines if the api authentication is enabled
ApiKeys defines the api keys
Name defines the name of the key
Key defines the key
Timeout defines the timeout
SyncInterval is the delay interval between reading new rollup information
"1m"
+
MaxRequestsPerIPAndSecond defines how much requests a single IP can
send within a single second
SequencerNodeURI is used allow Non-Sequencer nodes
to relay transactions to the Sequencer node
MaxCumulativeGasUsed is the max gas allowed per batch
Enabled defines if the WebSocket requests are enabled or disabled
Host defines the network adapter that will be used to serve the WS requests
Port defines the port to serve the endpoints via WS
ReadLimit defines the maximum size of a message read from the client (in bytes)
EnableL2SuggestedGasPricePolling enables polling of the L2 gas price to block tx in the RPC with lower gas price.
BatchRequestsEnabled defines if the Batch requests are enabled or disabled
BatchRequestsLimit defines the limit of requests that can be incorporated into each batch request
L2Coinbase defines which address is going to receive the fees
Must contain a minimum of 20
items
Must contain a maximum of 20
items
MaxLogsCount is a configuration to set the max number of logs that can be returned
in a single call to the state, if zero it means no limit
MaxLogsBlockRange is a configuration to set the max range for block number when querying TXs
logs in a single call to the state, if zero it means no limit
MaxNativeBlockHashBlockRange is a configuration to set the max range for block number when querying
native block hashes in a single call to the state, if zero it means no limit
EnableHttpLog allows the user to enable or disable the logs related to the HTTP
requests to be captured by the server.
SyncInterval is the delay interval between reading new rollup information
"1m"
"300ms"
-
SyncChunkSize is the number of blocks to sync on each chunk
TrustedSequencerURL is the rpc url to connect and sync the trusted state
SyncBlockProtection specify the state to sync (lastest, finalized or safe)
L1SyncCheckL2BlockHash if is true when a batch is closed is force to check L2Block hash against trustedNode (only apply for permissionless)
L1SyncCheckL2BlockNumberhModulus is the modulus used to choose the l2block to check
a modules 5, for instance, means check all l2block multiples of 5 (10,15,20,...)
Enable if is true then the check l1 Block Hash is active
L1SafeBlockPoint is the point that a block is considered safe enough to be checked
it can be: finalized, safe,pending or latest
L1SafeBlockOffset is the offset to add to L1SafeBlockPoint as a safe point
it can be positive or negative
Example: L1SafeBlockPoint= finalized, L1SafeBlockOffset= -10, then the safe block ten blocks before the finalized block
ForceCheckBeforeStart if is true then the first time the system is started it will force to check all pending blocks
PreCheckEnable if is true then the pre-check is active, will check blocks between L1SafeBlock and L1PreSafeBlock
L1PreSafeBlockPoint is the point that a block is considered safe enough to be checked
it can be: finalized, safe,pending or latest
L1PreSafeBlockOffset is the offset to add to L1PreSafeBlockPoint as a safe point
it can be positive or negative
Example: L1PreSafeBlockPoint= finalized, L1PreSafeBlockOffset= -10, then the safe block ten blocks before the finalized block
L1SynchronizationMode define how to synchronize with L1:
- parallel: Request data to L1 in parallel, and process sequentially. The advantage is that executor is not blocked waiting for L1 data
- sequential: Request data to L1 and execute
MaxClients Number of clients used to synchronize with L1
MaxPendingNoProcessedBlocks Size of the buffer used to store rollup information from L1, must be >= to NumberOfEthereumClientsToSync
sugested twice of NumberOfParallelOfEthereumClients
RequestLastBlockPeriod is the time to wait to request the
last block to L1 to known if we need to retrieve more data.
This value only apply when the system is synchronized
"1m"
+
SyncChunkSize is the number of blocks to sync on each chunk
TrustedSequencerURL is the rpc url to connect and sync the trusted state
SyncBlockProtection specify the state to sync (lastest, finalized or safe)
L1SyncCheckL2BlockHash if is true when a batch is closed is force to check L2Block hash against trustedNode (only apply for permissionless)
L1SyncCheckL2BlockNumberhModulus is the modulus used to choose the l2block to check
a modules 5, for instance, means check all l2block multiples of 5 (10,15,20,...)
If enabled then the check l1 Block Hash is active
L1SafeBlockPoint is the point that a block is considered safe enough to be checked
it can be: finalized, safe,pending or latest
L1SafeBlockOffset is the offset to add to L1SafeBlockPoint as a safe point
it can be positive or negative
Example: L1SafeBlockPoint= finalized, L1SafeBlockOffset= -10, then the safe block ten blocks before the finalized block
ForceCheckBeforeStart if is true then the first time the system is started it will force to check all pending blocks
If enabled then the pre-check is active, will check blocks between L1SafeBlock and L1PreSafeBlock
L1PreSafeBlockPoint is the point that a block is considered safe enough to be checked
it can be: finalized, safe,pending or latest
L1PreSafeBlockOffset is the offset to add to L1PreSafeBlockPoint as a safe point
it can be positive or negative
Example: L1PreSafeBlockPoint= finalized, L1PreSafeBlockOffset= -10, then the safe block ten blocks before the finalized block
L1SynchronizationMode define how to synchronize with L1:
- parallel: Request data to L1 in parallel, and process sequentially. The advantage is that executor is not blocked waiting for L1 data
- sequential: Request data to L1 and execute
MaxClients Number of clients used to synchronize with L1
MaxPendingNoProcessedBlocks Size of the buffer used to store rollup information from L1, must be >= to NumberOfEthereumClientsToSync
sugested twice of NumberOfParallelOfEthereumClients
RequestLastBlockPeriod is the time to wait to request the
last block to L1 to known if we need to retrieve more data.
This value only apply when the system is synchronized
"1m"
"300ms"
AceptableInacctivityTime is the expected maximum time that the consumer
could wait until new data is produced. If the time is greater it emmit a log to warn about
that. The idea is keep working the consumer as much as possible, so if the producer is not
fast enought then you could increse the number of parallel clients to sync with L1
"1m"
"300ms"
@@ -34,7 +28,7 @@
"300ms"
RollupInfoRetriesSpacing is the minimum time between retries to request rollup info (it will sleep for fulfill this time) to avoid spamming L1
"1m"
"300ms"
-
FallbackToSequentialModeOnSynchronized if true switch to sequential mode if the system is synchronized
AcceptEmptyClosedBatches is a flag to enable or disable the acceptance of empty batches.
if true, the synchronizer will accept empty batches and process them.
ReprocessFullBatchOnClose if is true when a batch is closed is force to reprocess again
CheckLastL2BlockHashOnCloseBatch if is true when a batch is closed is force to check the last L2Block hash
DeletePoolTxsL1BlockConfirmations is blocks amount after which txs will be deleted from the pool
DeletePoolTxsCheckInterval is frequency with which txs will be checked for deleting
"1m"
+
FallbackToSequentialModeOnSynchronized if true switch to sequential mode if the system is synchronized
If enabled then the L2 sync process is permitted (only for permissionless)
AcceptEmptyClosedBatches is a flag to enable or disable the acceptance of empty batches.
if true, the synchronizer will accept empty batches and process them.
ReprocessFullBatchOnClose if is true when a batch is closed is force to reprocess again
CheckLastL2BlockHashOnCloseBatch if is true when a batch is closed is force to check the last L2Block hash
DeletePoolTxsL1BlockConfirmations is blocks amount after which txs will be deleted from the pool
DeletePoolTxsCheckInterval is frequency with which txs will be checked for deleting
"1m"
"300ms"
TxLifetimeCheckInterval is the time the sequencer waits to check txs lifetime
"1m"
"300ms"
@@ -44,7 +38,7 @@
"300ms"
StateConsistencyCheckInterval is the time the sequencer waits to check if a state inconsistency has happened
"1m"
"300ms"
-
ForcedBatchesTimeout is the time the finalizer waits after receiving closing signal to process Forced Batches
"1m"
+
L2Coinbase defines which address is going to receive the fees. It gets the config value from SequenceSender.L2Coinbase
Must contain a minimum of 20
items
Must contain a maximum of 20
items
ForcedBatchesTimeout is the time the finalizer waits after receiving closing signal to process Forced Batches
"1m"
"300ms"
NewTxsWaitInterval is the time the finalizer sleeps between each iteration, if there are no transactions to be processed
"1m"
"300ms"
@@ -58,17 +52,19 @@
"300ms"
StateRootSyncInterval indicates how often the stateroot generated by the L2 block process will be synchronized with
the stateroot used in the tx-by-tx execution
"1m"
"300ms"
-
HaltOnBatchNumber specifies the batch number where the Sequencer will stop to process more transactions and generate new batches.
The Sequencer will halt after it closes the batch equal to this number
SequentialBatchSanityCheck indicates if the reprocess of a closed batch (sanity check) must be done in a
sequential way (instead than in parallel)
SequentialProcessL2Block indicates if the processing of a L2 Block must be done in the same finalizer go func instead
in the processPendingL2Blocks go func
XLayer config
FullBatchSleepDuration is the time the finalizer sleeps between each full batch iteration
"1m"
-
"300ms"
-
Interval is the interval of time to calculate sequencer metrics
"1m"
+
FlushIdCheckInterval is the time interval to get storedFlushID value from the executor/hashdb
"1m"
+
"300ms"
+
HaltOnBatchNumber specifies the batch number where the Sequencer will stop to process more transactions and generate new batches.
The Sequencer will halt after it closes the batch equal to this number
SequentialBatchSanityCheck indicates if the reprocess of a closed batch (sanity check) must be done in a
sequential way (instead than in parallel)
SequentialProcessL2Block indicates if the processing of a L2 Block must be done in the same finalizer go func instead
in the processPendingL2Blocks go func
Interval is the interval of time to calculate sequencer metrics
"1m"
"300ms"
-
EnableLog is a flag to enable/disable metrics logs
Port to listen on
Filename of the binary data file
Version of the binary data file
ChainID is the chain ID
Enabled is a flag to enable/disable the data streamer
UpgradeEtrogBatchNumber is the batch number of the upgrade etrog
XLayer config
PackBatchSpacialList is the list of addresses that will have a special gas price
GasPriceMultiple is the multiple of the gas price
InitGasPriceMultiple is the multiple of the gas price for init free gas tx
QueryPendingTxsLimit is used to limit amount txs from the db
WaitPeriodSendSequence is the time the sequencer waits until
trying to send a sequence to L1
"1m"
+
EnableLog is a flag to enable/disable metrics logs
Port to listen on
Filename of the binary data file
Version of the binary data file
ChainID is the chain ID
Enabled is a flag to enable/disable the data streamer
UpgradeEtrogBatchNumber is the batch number of the upgrade etrog
WriteTimeout is the TCP write timeout when sending data to a datastream client
"1m"
+
"300ms"
+
WaitPeriodSendSequence is the time the sequencer waits until
trying to send a sequence to L1
"1m"
"300ms"
LastBatchVirtualizationTimeMaxWaitPeriod is time since sequences should be sent
"1m"
"300ms"
L1BlockTimestampMargin is the time difference (margin) that must exists between last L1 block and last L2 block in the sequence before
to send the sequence to L1. If the difference is lower than this value then sequencesender will wait until the difference is equal or greater
"1m"
"300ms"
-
MaxTxSizeForL1 is the maximum size a single transaction can have. This field has
non-trivial consequences: larger transactions than 128KB are significantly harder and
more expensive to propagate; larger transactions also take more resources
to validate whether they fit into the pool or not.
SenderAddress defines which private key the eth tx manager needs to use
to sign the L1 txs
Must contain a minimum of 20
items
Must contain a maximum of 20
items
L2Coinbase defines which address is going to receive the fees
Must contain a minimum of 20
items
Must contain a maximum of 20
items
Path is the file path for the key store file
Password is the password to decrypt the key store file
Batch number where there is a forkid change (fork upgrade)
GasOffset is the amount of gas to be added to the gas estimation in order
to provide an amount that is higher than the estimated one. This is used
to avoid the TX getting reverted in case something has changed in the network
state after the estimation which can cause the TX to require more gas to be
executed.
ex:
gas estimation: 1000
gas offset: 100
final gas: 1100
XLayer config
MaxBatchesForL1 is the maximum amount of batches to be sequenced in a single L1 tx
Path is the file path for the key store file
Password is the password to decrypt the key store file
Host for the grpc server
Port for the grpc server
RetryTime is the time the aggregator main loop sleeps if there are no proofs to aggregate
or batches to generate proofs. It is also used in the isSynced loop
"1m"
+
MaxTxSizeForL1 is the maximum size a single transaction can have. This field has
non-trivial consequences: larger transactions than 128KB are significantly harder and
more expensive to propagate; larger transactions also take more resources
to validate whether they fit into the pool or not.
SenderAddress defines which private key the eth tx manager needs to use
to sign the L1 txs
Must contain a minimum of 20
items
Must contain a maximum of 20
items
L2Coinbase defines which address is going to receive the fees
Must contain a minimum of 20
items
Must contain a maximum of 20
items
Path is the file path for the key store file
Password is the password to decrypt the key store file
Batch number where there is a forkid change (fork upgrade)
GasOffset is the amount of gas to be added to the gas estimation in order
to provide an amount that is higher than the estimated one. This is used
to avoid the TX getting reverted in case something has changed in the network
state after the estimation which can cause the TX to require more gas to be
executed.
ex:
gas estimation: 1000
gas offset: 100
final gas: 1100
SequenceL1BlockConfirmations is number of blocks to consider a sequence sent to L1 as final
Host for the grpc server
Port for the grpc server
RetryTime is the time the aggregator main loop sleeps if there are no proofs to aggregate
or batches to generate proofs. It is also used in the isSynced loop
"1m"
"300ms"
VerifyProofInterval is the interval of time to verify/send an proof in L1
"1m"
"300ms"
@@ -78,16 +74,14 @@
"300ms"
ChainID is the L2 ChainID provided by the Network Config
ForkID is the L2 ForkID provided by the Network Config
SenderAddress defines which private key the eth tx manager needs to use
to sign the L1 txs
CleanupLockedProofsInterval is the interval of time to clean up locked proofs.
"1m"
"300ms"
-
GeneratingProofCleanupThreshold represents the time interval after
which a proof in generating state is considered to be stuck and
allowed to be cleared.
GasOffset is the amount of gas to be added to the gas estimation in order
to provide an amount that is higher than the estimated one. This is used
to avoid the TX getting reverted in case something has changed in the network
state after the estimation which can cause the TX to require more gas to be
executed.
ex:
gas estimation: 1000
gas offset: 100
final gas: 1100
UpgradeEtrogBatchNumber is the number of the first batch after upgrading to etrog
BatchProofL1BlockConfirmations is number of L1 blocks to consider we can generate the proof for a virtual batch
SettlementBackend configuration defines how a final ZKP should be settled. Directly to L1 or over the Beethoven service.
AggLayerTxTimeout is the interval time to wait for a tx to be mined from the agglayer
"1m"
-
"300ms"
-
AggLayerURL url of the agglayer service
Path is the file path for the key store file
Password is the password to decrypt the key store file
Chain ID of the L1 network
ZkEVMAddr Address of the L1 contract polygonZkEVMAddress
Must contain a minimum of 20
items
Must contain a maximum of 20
items
RollupManagerAddr Address of the L1 contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
PolAddr Address of the L1 Pol token Contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
GlobalExitRootManagerAddr Address of the L1 GlobalExitRootManager contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
L2: address of the PolygonZkEVMBridge proxy
smart contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
RollupBlockNumber is the block number where the polygonZKEVM smc was deployed on L1
RollupManagerBlockNumber is the block number where the RollupManager smc was deployed on L1
Root hash of the genesis block
Must contain a minimum of 32
items
Must contain a maximum of 32
items
Actions is the data to populate into the state trie
DefaultGasPriceWei is used to set the gas price to be used by the default gas pricer or as minimim gas price by the follower gas pricer.
MaxGasPriceWei is used to limit the gas price returned by the follower gas pricer to a maximum value. It is ignored if 0.
"1m"
+
GeneratingProofCleanupThreshold represents the time interval after
which a proof in generating state is considered to be stuck and
allowed to be cleared.
GasOffset is the amount of gas to be added to the gas estimation in order
to provide an amount that is higher than the estimated one. This is used
to avoid the TX getting reverted in case something has changed in the network
state after the estimation which can cause the TX to require more gas to be
executed.
ex:
gas estimation: 1000
gas offset: 100
final gas: 1100
UpgradeEtrogBatchNumber is the number of the first batch after upgrading to etrog
BatchProofL1BlockConfirmations is number of L1 blocks to consider we can generate the proof for a virtual batch
Chain ID of the L1 network
ZkEVMAddr Address of the L1 contract polygonZkEVMAddress
Must contain a minimum of 20
items
Must contain a maximum of 20
items
RollupManagerAddr Address of the L1 contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
PolAddr Address of the L1 Pol token Contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
GlobalExitRootManagerAddr Address of the L1 GlobalExitRootManager contract
Must contain a minimum of 20
items
Must contain a maximum of 20
items
BlockNumber is the block number where the polygonZKEVM smc was deployed on L1
Root hash of the genesis block
Must contain a minimum of 32
items
Must contain a maximum of 32
items
Actions is the data to populate into the state trie
DefaultGasPriceWei is used to set the gas price to be used by the default gas pricer or as minimim gas price by the follower gas pricer.
MaxGasPriceWei is used to limit the gas price returned by the follower gas pricer to a maximum value. It is ignored if 0.
"1m"
"300ms"
"1m"
"300ms"
"1m"
"300ms"
-
XLayer config
DefaultL1CoinPrice is the L1 token's coin price
DefaultL2CoinPrice is the native token's coin price
EnableFollowerAdjustByL2L1Price is dynamic adjust the factor through the L1 and L2 coins price in follower strategy
MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion
WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion
"1m"
+
MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion
WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion
"1m"
"300ms"
-
URI is the server URI.
Host is the address to bind the metrics server
Port is the port to bind the metrics server
Enabled is the flag to enable/disable the metrics server
ProfilingHost is the address to bind the profiling server
ProfilingPort is the port to bind the profiling server
ProfilingEnabled is the flag to enable/disable the profiling server
Database name
Database User name
Database Password of the user
Host address of database
Port Number of database
EnableLog
MaxConns is the maximum number of connections in the pool.
Database name
Database User name
Database Password of the user
Host address of database
Port Number of database
EnableLog
MaxConns is the maximum number of connections in the pool.
MaxCumulativeGasUsed is the max gas allowed per batch
ChainID is the L2 ChainID provided by the Network Config
ForkIdIntervals is the list of fork id intervals
MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion
WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion
"1m"
+
URI is the server URI.
Host is the address to bind the metrics server
Port is the port to bind the metrics server
Enabled is the flag to enable/disable the metrics server
ProfilingHost is the address to bind the profiling server
ProfilingPort is the port to bind the profiling server
ProfilingEnabled is the flag to enable/disable the profiling server
Database name
Database User name
Database Password of the user
Host address of database
Port Number of database
EnableLog
MaxConns is the maximum number of connections in the pool.
Database name
Database User name
Database Password of the user
Host address of database
Port Number of database
EnableLog
MaxConns is the maximum number of connections in the pool.
MaxCumulativeGasUsed is the max gas allowed per batch
ChainID is the L2 ChainID provided by the Network Config
ForkIdIntervals is the list of fork id intervals
MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion
WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion
"1m"
"300ms"
-
Batch number from which there is a forkid change (fork upgrade)
New fork id to be used for batches greaters than ForkUpgradeBatchNumber (fork upgrade)
Database name
Database User name
Database Password of the user
Host address of database
Port Number of database
EnableLog
MaxConns is the maximum number of connections in the pool.
MaxLogsCount is a configuration to set the max number of logs that can be returned
in a single call to the state, if zero it means no limit
MaxLogsBlockRange is a configuration to set the max range for block number when querying TXs
logs in a single call to the state, if zero it means no limit
MaxNativeBlockHashBlockRange is a configuration to set the max range for block number when querying
native block hashes in a single call to the state, if zero it means no limit
AvoidForkIDInMemory is a configuration that forces the ForkID information to be loaded
from the DB every time it's needed
ForceBatchAddress Address of the L1 ForceBatch contract