Type: : object
Description: Config represents the configuration of the entire Hermez Node The file is TOML format You could find some examples:
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- IsTrustedSequencer | No | boolean | No | - | This define is a trusted node (`true`) or a permission less (`false`). If you don't known set to `false` |
- ForkUpgradeBatchNumber | No | integer | No | - | Last batch number before a forkid change (fork upgrade). That implies that greater batch numbers are going to be trusted but no virtualized neither verified. So after the batch number `ForkUpgradeBatchNumber` is virtualized and verified you could update the system (SC,...) to new forkId and remove this value to allow the system to keep Virtualizing and verifying the new batchs. Check issue #2236 to known more This value overwrite `SequenceSender.ForkUpgradeBatchNumber` |
- ForkUpgradeNewForkId | No | integer | No | - | Which is the new forkId |
- Log | No | object | No | - | Configure Log level for all the services, allow also to store the logs in a file |
- Etherman | No | object | No | - | Configuration of the etherman (client for access L1) |
- EthTxManager | No | object | No | - | Configuration for ethereum transaction manager |
- Pool | No | object | No | - | Pool service configuration |
- RPC | No | object | No | - | Configuration for RPC service. THis one offers a extended Ethereum JSON-RPC API interface to interact with the node |
- Synchronizer | No | object | No | - | Configuration of service `Syncrhonizer`. For this service is also really important the value of `IsTrustedSequencer` because depending of this values is going to ask to a trusted node for trusted transactions or not |
- Sequencer | No | object | No | - | Configuration of the sequencer service |
- SequenceSender | No | object | No | - | Configuration of the sequence sender service |
- Aggregator | No | object | No | - | Configuration of the aggregator service |
- NetworkConfig | No | object | No | - | Configuration of the genesis of the network. This is used to known the initial state of the network |
- L2GasPriceSuggester | No | object | No | - | Configuration of the gas price suggester service |
- Executor | No | object | No | - | Configuration of the executor service |
- MTClient | No | object | No | - | Configuration of the merkle tree client service. Not use in the node, only for testing |
- Metrics | No | object | No | - | Configuration of the metrics service, basically is where is going to publish the metrics |
- EventLog | No | object | No | - | Configuration of the event database connection |
- HashDB | No | object | No | - | Configuration of the hash database connection |
- State | No | object | No | - | State service configuration |
Type: : boolean
Default: false
Description: This define is a trusted node (true
) or a permission less (false
). If you don't known
set to false
Example setting the default value (false):
IsTrustedSequencer=false
Type: : integer
Default: 0
Description: Last batch number before a forkid change (fork upgrade). That implies that
greater batch numbers are going to be trusted but no virtualized neither verified.
So after the batch number ForkUpgradeBatchNumber
is virtualized and verified you could update
the system (SC,...) to new forkId and remove this value to allow the system to keep
Virtualizing and verifying the new batchs.
Check issue #2236 to known more
This value overwrite SequenceSender.ForkUpgradeBatchNumber
Example setting the default value (0):
ForkUpgradeBatchNumber=0
Type: : integer
Default: 0
Description: Which is the new forkId
Example setting the default value (0):
ForkUpgradeNewForkId=0
Type: : object
Description: Configure Log level for all the services, allow also to store the logs in a file
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Environment | No | enum (of string) | No | - | Environment defining the log format ("production" or "development"). In development mode enables development mode (which makes DPanicLevel logs panic), uses a console encoder, writes to standard error, and disables sampling. Stacktraces are automatically included on logs of WarnLevel and above. Check here |
- Level | No | enum (of string) | No | - | Level of log. As lower value more logs are going to be generated |
- Outputs | No | array of string | No | - | Outputs |
Type: : enum (of string)
Default: "development"
Description: Environment defining the log format ("production" or "development"). In development mode enables development mode (which makes DPanicLevel logs panic), uses a console encoder, writes to standard error, and disables sampling. Stacktraces are automatically included on logs of WarnLevel and above. Check here
Example setting the default value ("development"):
[Log]
Environment="development"
Must be one of:
- "production"
- "development"
Type: : enum (of string)
Default: "info"
Description: Level of log. As lower value more logs are going to be generated
Example setting the default value ("info"):
[Log]
Level="info"
Must be one of:
- "debug"
- "info"
- "warn"
- "error"
- "dpanic"
- "panic"
- "fatal"
Type: : array of string
Default: ["stderr"]
Description: Outputs
Example setting the default value (["stderr"]):
[Log]
Outputs=["stderr"]
Type: : object
Description: Configuration of the etherman (client for access L1)
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- URL | No | string | No | - | URL is the URL of the Ethereum node for L1 |
- ForkIDChunkSize | No | integer | No | - | ForkIDChunkSize is the max interval for each call to L1 provider to get the forkIDs |
- MultiGasProvider | No | boolean | No | - | allow that L1 gas price calculation use multiples sources |
- Etherscan | No | object | No | - | Configuration for use Etherscan as used as gas provider, basically it needs the API-KEY |
Type: : string
Default: "http://localhost:8545"
Description: URL is the URL of the Ethereum node for L1
Example setting the default value ("http://localhost:8545"):
[Etherman]
URL="http://localhost:8545"
Type: : integer
Default: 20000
Description: ForkIDChunkSize is the max interval for each call to L1 provider to get the forkIDs
Example setting the default value (20000):
[Etherman]
ForkIDChunkSize=20000
Type: : boolean
Default: false
Description: allow that L1 gas price calculation use multiples sources
Example setting the default value (false):
[Etherman]
MultiGasProvider=false
Type: : object
Description: Configuration for use Etherscan as used as gas provider, basically it needs the API-KEY
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- ApiKey | No | string | No | - | Need API key to use etherscan, if it's empty etherscan is not used |
- Url | No | string | No | - | URL of the etherscan API. Overwritten with a hardcoded URL: "https://api.etherscan.io/api?module=gastracker&action=gasoracle&apikey=" |
Type: : string
Default: ""
Description: Need API key to use etherscan, if it's empty etherscan is not used
Example setting the default value (""):
[Etherman.Etherscan]
ApiKey=""
Type: : string
Default: ""
Description: URL of the etherscan API. Overwritten with a hardcoded URL: "https://api.etherscan.io/api?module=gastracker&action=gasoracle&apikey="
Example setting the default value (""):
[Etherman.Etherscan]
Url=""
Type: : object
Description: Configuration for ethereum transaction manager
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- FrequencyToMonitorTxs | No | string | No | - | Duration |
- WaitTxToBeMined | No | string | No | - | Duration |
- PrivateKeys | No | array of object | No | - | 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 |
- ForcedGas | No | integer | No | - | ForcedGas is the amount of gas to be forced in case of gas estimation error |
- GasPriceMarginFactor | No | number | No | - | 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 | No | integer | No | - | 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 |
Title: Duration
Type: : string
Default: "1s"
Description: FrequencyToMonitorTxs frequency of the resending failed txs
Examples:
"1m"
"300ms"
Example setting the default value ("1s"):
[EthTxManager]
FrequencyToMonitorTxs="1s"
Title: Duration
Type: : string
Default: "2m0s"
Description: WaitTxToBeMined time to wait after transaction was sent to the ethereum
Examples:
"1m"
"300ms"
Example setting the default value ("2m0s"):
[EthTxManager]
WaitTxToBeMined="2m0s"
Type: : array of object
Description: 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
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
PrivateKeys items | KeystoreFileConfig has all the information needed to load a private key from a key store file |
Type: : object
Description: KeystoreFileConfig has all the information needed to load a private key from a key store file
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Path | No | string | No | - | Path is the file path for the key store file |
- Password | No | string | No | - | Password is the password to decrypt the key store file |
Type: : string
Description: Path is the file path for the key store file
Type: : string
Description: Password is the password to decrypt the key store file
Type: : integer
Default: 0
Description: ForcedGas is the amount of gas to be forced in case of gas estimation error
Example setting the default value (0):
[EthTxManager]
ForcedGas=0
Type: : number
Default: 1
Description: 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
Example setting the default value (1):
[EthTxManager]
GasPriceMarginFactor=1
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[EthTxManager]
MaxGasPriceLimit=0
Type: : object
Description: Pool service configuration
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- IntervalToRefreshBlockedAddresses | No | string | No | - | Duration |
- IntervalToRefreshGasPrices | No | string | No | - | Duration |
- MaxTxBytesSize | No | integer | No | - | MaxTxBytesSize is the max size of a transaction in bytes |
- MaxTxDataBytesSize | No | integer | No | - | MaxTxDataBytesSize is the max size of the data field of a transaction in bytes |
- DB | No | object | No | - | DB is the database configuration |
- DefaultMinGasPriceAllowed | No | integer | No | - | DefaultMinGasPriceAllowed is the default min gas price to suggest |
- MinAllowedGasPriceInterval | No | string | No | - | Duration |
- PollMinAllowedGasPriceInterval | No | string | No | - | Duration |
- AccountQueue | No | integer | No | - | AccountQueue represents the maximum number of non-executable transaction slots permitted per account |
- GlobalQueue | No | integer | No | - | GlobalQueue represents the maximum number of non-executable transaction slots for all accounts |
- EffectiveGasPrice | No | object | No | - | EffectiveGasPrice is the config for the effective gas price calculation |
- ForkID | No | integer | No | - | ForkID is the current fork ID of the chain |
- TxFeeCap | No | number | No | - | TxFeeCap is the global transaction fee(price * gaslimit) cap for send-transaction variants. The unit is ether. 0 means no cap. |
Title: Duration
Type: : string
Default: "5m0s"
Description: IntervalToRefreshBlockedAddresses is the time it takes to sync the blocked address list from db to memory
Examples:
"1m"
"300ms"
Example setting the default value ("5m0s"):
[Pool]
IntervalToRefreshBlockedAddresses="5m0s"
Title: Duration
Type: : string
Default: "5s"
Description: IntervalToRefreshGasPrices is the time to wait to refresh the gas prices
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Pool]
IntervalToRefreshGasPrices="5s"
Type: : integer
Default: 100132
Description: MaxTxBytesSize is the max size of a transaction in bytes
Example setting the default value (100132):
[Pool]
MaxTxBytesSize=100132
Type: : integer
Default: 100000
Description: MaxTxDataBytesSize is the max size of the data field of a transaction in bytes
Example setting the default value (100000):
[Pool]
MaxTxDataBytesSize=100000
Type: : object
Description: DB is the database configuration
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Name | No | string | No | - | Database name |
- User | No | string | No | - | Database User name |
- Password | No | string | No | - | Database Password of the user |
- Host | No | string | No | - | Host address of database |
- Port | No | string | No | - | Port Number of database |
- EnableLog | No | boolean | No | - | EnableLog |
- MaxConns | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
Type: : string
Default: "pool_db"
Description: Database name
Example setting the default value ("pool_db"):
[Pool.DB]
Name="pool_db"
Type: : string
Default: "pool_user"
Description: Database User name
Example setting the default value ("pool_user"):
[Pool.DB]
User="pool_user"
Type: : string
Default: "pool_password"
Description: Database Password of the user
Example setting the default value ("pool_password"):
[Pool.DB]
Password="pool_password"
Type: : string
Default: "zkevm-pool-db"
Description: Host address of database
Example setting the default value ("zkevm-pool-db"):
[Pool.DB]
Host="zkevm-pool-db"
Type: : string
Default: "5432"
Description: Port Number of database
Example setting the default value ("5432"):
[Pool.DB]
Port="5432"
Type: : boolean
Default: false
Description: EnableLog
Example setting the default value (false):
[Pool.DB]
EnableLog=false
Type: : integer
Default: 200
Description: MaxConns is the maximum number of connections in the pool.
Example setting the default value (200):
[Pool.DB]
MaxConns=200
Type: : integer
Default: 1000000000
Description: DefaultMinGasPriceAllowed is the default min gas price to suggest
Example setting the default value (1000000000):
[Pool]
DefaultMinGasPriceAllowed=1000000000
Title: Duration
Type: : string
Default: "5m0s"
Description: MinAllowedGasPriceInterval is the interval to look back of the suggested min gas price for a tx
Examples:
"1m"
"300ms"
Example setting the default value ("5m0s"):
[Pool]
MinAllowedGasPriceInterval="5m0s"
Title: Duration
Type: : string
Default: "15s"
Description: PollMinAllowedGasPriceInterval is the interval to poll the suggested min gas price for a tx
Examples:
"1m"
"300ms"
Example setting the default value ("15s"):
[Pool]
PollMinAllowedGasPriceInterval="15s"
Type: : integer
Default: 64
Description: AccountQueue represents the maximum number of non-executable transaction slots permitted per account
Example setting the default value (64):
[Pool]
AccountQueue=64
Type: : integer
Default: 1024
Description: GlobalQueue represents the maximum number of non-executable transaction slots for all accounts
Example setting the default value (1024):
[Pool]
GlobalQueue=1024
Type: : object
Description: EffectiveGasPrice is the config for the effective gas price calculation
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Enabled | No | boolean | No | - | Enabled is a flag to enable/disable the effective gas price |
- L1GasPriceFactor | No | number | No | - | L1GasPriceFactor is the percentage of the L1 gas price that will be used as the L2 min gas price |
- ByteGasCost | No | integer | No | - | ByteGasCost is the gas cost per byte that is not 0 |
- ZeroByteGasCost | No | integer | No | - | ZeroByteGasCost is the gas cost per byte that is 0 |
- NetProfit | No | number | No | - | NetProfit is the profit margin to apply to the calculated breakEvenGasPrice |
- BreakEvenFactor | No | number | No | - | BreakEvenFactor is the factor to apply to the calculated breakevenGasPrice when comparing it with the gasPriceSigned of a tx |
- FinalDeviationPct | No | integer | No | - | FinalDeviationPct is the max allowed deviation percentage BreakEvenGasPrice on re-calculation |
- EthTransferGasPrice | No | integer | No | - | 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 | No | number | No | - | 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 | No | number | No | - | 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) |
Type: : boolean
Default: false
Description: Enabled is a flag to enable/disable the effective gas price
Example setting the default value (false):
[Pool.EffectiveGasPrice]
Enabled=false
Type: : number
Default: 0.25
Description: L1GasPriceFactor is the percentage of the L1 gas price that will be used as the L2 min gas price
Example setting the default value (0.25):
[Pool.EffectiveGasPrice]
L1GasPriceFactor=0.25
Type: : integer
Default: 16
Description: ByteGasCost is the gas cost per byte that is not 0
Example setting the default value (16):
[Pool.EffectiveGasPrice]
ByteGasCost=16
Type: : integer
Default: 4
Description: ZeroByteGasCost is the gas cost per byte that is 0
Example setting the default value (4):
[Pool.EffectiveGasPrice]
ZeroByteGasCost=4
Type: : number
Default: 1
Description: NetProfit is the profit margin to apply to the calculated breakEvenGasPrice
Example setting the default value (1):
[Pool.EffectiveGasPrice]
NetProfit=1
Type: : number
Default: 1.1
Description: BreakEvenFactor is the factor to apply to the calculated breakevenGasPrice when comparing it with the gasPriceSigned of a tx
Example setting the default value (1.1):
[Pool.EffectiveGasPrice]
BreakEvenFactor=1.1
Type: : integer
Default: 10
Description: FinalDeviationPct is the max allowed deviation percentage BreakEvenGasPrice on re-calculation
Example setting the default value (10):
[Pool.EffectiveGasPrice]
FinalDeviationPct=10
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[Pool.EffectiveGasPrice]
EthTransferGasPrice=0
Type: : number
Default: 0
Description: 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
Example setting the default value (0):
[Pool.EffectiveGasPrice]
EthTransferL1GasPriceFactor=0
Type: : number
Default: 0.5
Description: 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)
Example setting the default value (0.5):
[Pool.EffectiveGasPrice]
L2GasPriceSuggesterFactor=0.5
Type: : integer
Default: 0
Description: ForkID is the current fork ID of the chain
Example setting the default value (0):
[Pool]
ForkID=0
Type: : number
Default: 1
Description: TxFeeCap is the global transaction fee(price * gaslimit) cap for send-transaction variants. The unit is ether. 0 means no cap.
Example setting the default value (1):
[Pool]
TxFeeCap=1
Type: : object
Description: Configuration for RPC service. THis one offers a extended Ethereum JSON-RPC API interface to interact with the node
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Host | No | string | No | - | Host defines the network adapter that will be used to serve the HTTP requests |
- Port | No | integer | No | - | Port defines the port to serve the endpoints via HTTP |
- ReadTimeout | No | string | No | - | Duration |
- WriteTimeout | No | string | No | - | Duration |
- MaxRequestsPerIPAndSecond | No | number | No | - | MaxRequestsPerIPAndSecond defines how much requests a single IP can send within a single second |
- SequencerNodeURI | No | string | No | - | SequencerNodeURI is used allow Non-Sequencer nodes to relay transactions to the Sequencer node |
- MaxCumulativeGasUsed | No | integer | No | - | MaxCumulativeGasUsed is the max gas allowed per batch |
- WebSockets | No | object | No | - | WebSockets configuration |
- EnableL2SuggestedGasPricePolling | No | boolean | No | - | EnableL2SuggestedGasPricePolling enables polling of the L2 gas price to block tx in the RPC with lower gas price. |
- BatchRequestsEnabled | No | boolean | No | - | BatchRequestsEnabled defines if the Batch requests are enabled or disabled |
- BatchRequestsLimit | No | integer | No | - | BatchRequestsLimit defines the limit of requests that can be incorporated into each batch request |
- L2Coinbase | No | array of integer | No | - | L2Coinbase defines which address is going to receive the fees |
- MaxLogsCount | No | integer | No | - | 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 | No | integer | No | - | 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 | No | integer | No | - | 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 | No | boolean | No | - | EnableHttpLog allows the user to enable or disable the logs related to the HTTP requests to be captured by the server. |
- ZKCountersLimits | No | object | No | - | ZKCountersLimits defines the ZK Counter limits |
Type: : string
Default: "0.0.0.0"
Description: Host defines the network adapter that will be used to serve the HTTP requests
Example setting the default value ("0.0.0.0"):
[RPC]
Host="0.0.0.0"
Type: : integer
Default: 8545
Description: Port defines the port to serve the endpoints via HTTP
Example setting the default value (8545):
[RPC]
Port=8545
Title: Duration
Type: : string
Default: "1m0s"
Description: ReadTimeout is the HTTP server read timeout check net/http.server.ReadTimeout and net/http.server.ReadHeaderTimeout
Examples:
"1m"
"300ms"
Example setting the default value ("1m0s"):
[RPC]
ReadTimeout="1m0s"
Title: Duration
Type: : string
Default: "1m0s"
Description: WriteTimeout is the HTTP server write timeout check net/http.server.WriteTimeout
Examples:
"1m"
"300ms"
Example setting the default value ("1m0s"):
[RPC]
WriteTimeout="1m0s"
Type: : number
Default: 500
Description: MaxRequestsPerIPAndSecond defines how much requests a single IP can send within a single second
Example setting the default value (500):
[RPC]
MaxRequestsPerIPAndSecond=500
Type: : string
Default: ""
Description: SequencerNodeURI is used allow Non-Sequencer nodes to relay transactions to the Sequencer node
Example setting the default value (""):
[RPC]
SequencerNodeURI=""
Type: : integer
Default: 0
Description: MaxCumulativeGasUsed is the max gas allowed per batch
Example setting the default value (0):
[RPC]
MaxCumulativeGasUsed=0
Type: : object
Description: WebSockets configuration
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Enabled | No | boolean | No | - | Enabled defines if the WebSocket requests are enabled or disabled |
- Host | No | string | No | - | Host defines the network adapter that will be used to serve the WS requests |
- Port | No | integer | No | - | Port defines the port to serve the endpoints via WS |
- ReadLimit | No | integer | No | - | ReadLimit defines the maximum size of a message read from the client (in bytes) |
Type: : boolean
Default: true
Description: Enabled defines if the WebSocket requests are enabled or disabled
Example setting the default value (true):
[RPC.WebSockets]
Enabled=true
Type: : string
Default: "0.0.0.0"
Description: Host defines the network adapter that will be used to serve the WS requests
Example setting the default value ("0.0.0.0"):
[RPC.WebSockets]
Host="0.0.0.0"
Type: : integer
Default: 8546
Description: Port defines the port to serve the endpoints via WS
Example setting the default value (8546):
[RPC.WebSockets]
Port=8546
Type: : integer
Default: 104857600
Description: ReadLimit defines the maximum size of a message read from the client (in bytes)
Example setting the default value (104857600):
[RPC.WebSockets]
ReadLimit=104857600
Type: : boolean
Default: true
Description: EnableL2SuggestedGasPricePolling enables polling of the L2 gas price to block tx in the RPC with lower gas price.
Example setting the default value (true):
[RPC]
EnableL2SuggestedGasPricePolling=true
Type: : boolean
Default: false
Description: BatchRequestsEnabled defines if the Batch requests are enabled or disabled
Example setting the default value (false):
[RPC]
BatchRequestsEnabled=false
Type: : integer
Default: 20
Description: BatchRequestsLimit defines the limit of requests that can be incorporated into each batch request
Example setting the default value (20):
[RPC]
BatchRequestsLimit=20
Type: : array of integer
Description: L2Coinbase defines which address is going to receive the fees
Type: : integer
Default: 10000
Description: 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
Example setting the default value (10000):
[RPC]
MaxLogsCount=10000
Type: : integer
Default: 10000
Description: 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
Example setting the default value (10000):
[RPC]
MaxLogsBlockRange=10000
Type: : integer
Default: 60000
Description: 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
Example setting the default value (60000):
[RPC]
MaxNativeBlockHashBlockRange=60000
Type: : boolean
Default: true
Description: EnableHttpLog allows the user to enable or disable the logs related to the HTTP requests to be captured by the server.
Example setting the default value (true):
[RPC]
EnableHttpLog=true
Type: : object
Description: ZKCountersLimits defines the ZK Counter limits
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- MaxKeccakHashes | No | integer | No | - | - |
- MaxPoseidonHashes | No | integer | No | - | - |
- MaxPoseidonPaddings | No | integer | No | - | - |
- MaxMemAligns | No | integer | No | - | - |
- MaxArithmetics | No | integer | No | - | - |
- MaxBinaries | No | integer | No | - | - |
- MaxSteps | No | integer | No | - | - |
- MaxSHA256Hashes | No | integer | No | - | - |
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxKeccakHashes=0
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxPoseidonHashes=0
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxPoseidonPaddings=0
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxMemAligns=0
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxArithmetics=0
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxBinaries=0
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxSteps=0
Type: : integer
Default: 0
Example setting the default value (0):
[RPC.ZKCountersLimits]
MaxSHA256Hashes=0
Type: : object
Description: Configuration of service Syncrhonizer
. For this service is also really important the value of IsTrustedSequencer
because depending of this values is going to ask to a trusted node for trusted transactions or not
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- SyncInterval | No | string | No | - | Duration |
- SyncChunkSize | No | integer | No | - | SyncChunkSize is the number of blocks to sync on each chunk |
- TrustedSequencerURL | No | string | No | - | TrustedSequencerURL is the rpc url to connect and sync the trusted state |
- SyncBlockProtection | No | string | No | - | SyncBlockProtection specify the state to sync (lastest, finalized or safe) |
- L1SyncCheckL2BlockHash | No | boolean | No | - | L1SyncCheckL2BlockHash if is true when a batch is closed is force to check L2Block hash against trustedNode (only apply for permissionless) |
- L1SyncCheckL2BlockNumberhModulus | No | integer | No | - | 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,...) |
- L1BlockCheck | No | object | No | - | - |
- L1SynchronizationMode | No | enum (of string) | No | - | 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 |
- L1ParallelSynchronization | No | object | No | - | L1ParallelSynchronization Configuration for parallel mode (if L1SynchronizationMode equal to 'parallel') |
- L2Synchronization | No | object | No | - | L2Synchronization Configuration for L2 synchronization |
Title: Duration
Type: : string
Default: "1s"
Description: SyncInterval is the delay interval between reading new rollup information
Examples:
"1m"
"300ms"
Example setting the default value ("1s"):
[Synchronizer]
SyncInterval="1s"
Type: : integer
Default: 100
Description: SyncChunkSize is the number of blocks to sync on each chunk
Example setting the default value (100):
[Synchronizer]
SyncChunkSize=100
Type: : string
Default: ""
Description: TrustedSequencerURL is the rpc url to connect and sync the trusted state
Example setting the default value (""):
[Synchronizer]
TrustedSequencerURL=""
Type: : string
Default: "safe"
Description: SyncBlockProtection specify the state to sync (lastest, finalized or safe)
Example setting the default value ("safe"):
[Synchronizer]
SyncBlockProtection="safe"
Type: : boolean
Default: true
Description: L1SyncCheckL2BlockHash if is true when a batch is closed is force to check L2Block hash against trustedNode (only apply for permissionless)
Example setting the default value (true):
[Synchronizer]
L1SyncCheckL2BlockHash=true
Type: : integer
Default: 600
Description: 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,...)
Example setting the default value (600):
[Synchronizer]
L1SyncCheckL2BlockNumberhModulus=600
Type: : object
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Enabled | No | boolean | No | - | If enabled then the check l1 Block Hash is active |
- L1SafeBlockPoint | No | enum (of string) | No | - | L1SafeBlockPoint is the point that a block is considered safe enough to be checked it can be: finalized, safe,pending or latest |
- L1SafeBlockOffset | No | integer | No | - | 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 | No | boolean | No | - | ForceCheckBeforeStart if is true then the first time the system is started it will force to check all pending blocks |
- PreCheckEnabled | No | boolean | No | - | If enabled then the pre-check is active, will check blocks between L1SafeBlock and L1PreSafeBlock |
- L1PreSafeBlockPoint | No | enum (of string) | No | - | L1PreSafeBlockPoint is the point that a block is considered safe enough to be checked it can be: finalized, safe,pending or latest |
- L1PreSafeBlockOffset | No | integer | No | - | 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 |
Type: : boolean
Default: true
Description: If enabled then the check l1 Block Hash is active
Example setting the default value (true):
[Synchronizer.L1BlockCheck]
Enabled=true
Type: : enum (of string)
Default: "finalized"
Description: L1SafeBlockPoint is the point that a block is considered safe enough to be checked it can be: finalized, safe,pending or latest
Example setting the default value ("finalized"):
[Synchronizer.L1BlockCheck]
L1SafeBlockPoint="finalized"
Must be one of:
- "finalized"
- "safe"
- "latest"
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[Synchronizer.L1BlockCheck]
L1SafeBlockOffset=0
Type: : boolean
Default: true
Description: ForceCheckBeforeStart if is true then the first time the system is started it will force to check all pending blocks
Example setting the default value (true):
[Synchronizer.L1BlockCheck]
ForceCheckBeforeStart=true
Type: : boolean
Default: true
Description: If enabled then the pre-check is active, will check blocks between L1SafeBlock and L1PreSafeBlock
Example setting the default value (true):
[Synchronizer.L1BlockCheck]
PreCheckEnabled=true
Type: : enum (of string)
Default: "safe"
Description: L1PreSafeBlockPoint is the point that a block is considered safe enough to be checked it can be: finalized, safe,pending or latest
Example setting the default value ("safe"):
[Synchronizer.L1BlockCheck]
L1PreSafeBlockPoint="safe"
Must be one of:
- "finalized"
- "safe"
- "latest"
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[Synchronizer.L1BlockCheck]
L1PreSafeBlockOffset=0
Type: : enum (of string)
Default: "sequential"
Description: 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
Example setting the default value ("sequential"):
[Synchronizer]
L1SynchronizationMode="sequential"
Must be one of:
- "sequential"
- "parallel"
Type: : object
Description: L1ParallelSynchronization Configuration for parallel mode (if L1SynchronizationMode equal to 'parallel')
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- MaxClients | No | integer | No | - | MaxClients Number of clients used to synchronize with L1 |
- MaxPendingNoProcessedBlocks | No | integer | No | - | MaxPendingNoProcessedBlocks Size of the buffer used to store rollup information from L1, must be >= to NumberOfEthereumClientsToSync sugested twice of NumberOfParallelOfEthereumClients |
- RequestLastBlockPeriod | No | string | No | - | Duration |
- PerformanceWarning | No | object | No | - | Consumer Configuration for the consumer of rollup information from L1 |
- RequestLastBlockTimeout | No | string | No | - | Duration |
- RequestLastBlockMaxRetries | No | integer | No | - | RequestLastBlockMaxRetries Max number of retries to request LastBlock On L1 |
- StatisticsPeriod | No | string | No | - | Duration |
- TimeOutMainLoop | No | string | No | - | Duration |
- RollupInfoRetriesSpacing | No | string | No | - | Duration |
- FallbackToSequentialModeOnSynchronized | No | boolean | No | - | FallbackToSequentialModeOnSynchronized if true switch to sequential mode if the system is synchronized |
Type: : integer
Default: 10
Description: MaxClients Number of clients used to synchronize with L1
Example setting the default value (10):
[Synchronizer.L1ParallelSynchronization]
MaxClients=10
Type: : integer
Default: 25
Description: MaxPendingNoProcessedBlocks Size of the buffer used to store rollup information from L1, must be >= to NumberOfEthereumClientsToSync sugested twice of NumberOfParallelOfEthereumClients
Example setting the default value (25):
[Synchronizer.L1ParallelSynchronization]
MaxPendingNoProcessedBlocks=25
Title: Duration
Type: : string
Default: "5s"
Description: 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
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Synchronizer.L1ParallelSynchronization]
RequestLastBlockPeriod="5s"
Type: : object
Description: Consumer Configuration for the consumer of rollup information from L1
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- AceptableInacctivityTime | No | string | No | - | Duration |
- ApplyAfterNumRollupReceived | No | integer | No | - | ApplyAfterNumRollupReceived is the number of iterations to start checking the time waiting for new rollup info data |
Title: Duration
Type: : string
Default: "5s"
Description: 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
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Synchronizer.L1ParallelSynchronization.PerformanceWarning]
AceptableInacctivityTime="5s"
Type: : integer
Default: 10
Description: ApplyAfterNumRollupReceived is the number of iterations to start checking the time waiting for new rollup info data
Example setting the default value (10):
[Synchronizer.L1ParallelSynchronization.PerformanceWarning]
ApplyAfterNumRollupReceived=10
Title: Duration
Type: : string
Default: "5s"
Description: RequestLastBlockTimeout Timeout for request LastBlock On L1
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Synchronizer.L1ParallelSynchronization]
RequestLastBlockTimeout="5s"
Type: : integer
Default: 3
Description: RequestLastBlockMaxRetries Max number of retries to request LastBlock On L1
Example setting the default value (3):
[Synchronizer.L1ParallelSynchronization]
RequestLastBlockMaxRetries=3
Title: Duration
Type: : string
Default: "5m0s"
Description: StatisticsPeriod how ofter show a log with statistics (0 is disabled)
Examples:
"1m"
"300ms"
Example setting the default value ("5m0s"):
[Synchronizer.L1ParallelSynchronization]
StatisticsPeriod="5m0s"
Title: Duration
Type: : string
Default: "5m0s"
Description: TimeOutMainLoop is the timeout for the main loop of the L1 synchronizer when is not updated
Examples:
"1m"
"300ms"
Example setting the default value ("5m0s"):
[Synchronizer.L1ParallelSynchronization]
TimeOutMainLoop="5m0s"
Title: Duration
Type: : string
Default: "5s"
Description: RollupInfoRetriesSpacing is the minimum time between retries to request rollup info (it will sleep for fulfill this time) to avoid spamming L1
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Synchronizer.L1ParallelSynchronization]
RollupInfoRetriesSpacing="5s"
Type: : boolean
Default: false
Description: FallbackToSequentialModeOnSynchronized if true switch to sequential mode if the system is synchronized
Example setting the default value (false):
[Synchronizer.L1ParallelSynchronization]
FallbackToSequentialModeOnSynchronized=false
Type: : object
Description: L2Synchronization Configuration for L2 synchronization
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Enabled | No | boolean | No | - | If enabled then the L2 sync process is permitted (only for permissionless) |
- AcceptEmptyClosedBatches | No | boolean | No | - | 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 | No | boolean | No | - | ReprocessFullBatchOnClose if is true when a batch is closed is force to reprocess again |
- CheckLastL2BlockHashOnCloseBatch | No | boolean | No | - | CheckLastL2BlockHashOnCloseBatch if is true when a batch is closed is force to check the last L2Block hash |
- DataSourcePriority | No | array of string | No | - | DataSourcePriority defines the order in which L2 batch should be retrieved: local, trusted, external |
Type: : boolean
Default: true
Description: If enabled then the L2 sync process is permitted (only for permissionless)
Example setting the default value (true):
[Synchronizer.L2Synchronization]
Enabled=true
Type: : boolean
Default: false
Description: AcceptEmptyClosedBatches is a flag to enable or disable the acceptance of empty batches. if true, the synchronizer will accept empty batches and process them.
Example setting the default value (false):
[Synchronizer.L2Synchronization]
AcceptEmptyClosedBatches=false
Type: : boolean
Default: false
Description: ReprocessFullBatchOnClose if is true when a batch is closed is force to reprocess again
Example setting the default value (false):
[Synchronizer.L2Synchronization]
ReprocessFullBatchOnClose=false
Type: : boolean
Default: true
Description: CheckLastL2BlockHashOnCloseBatch if is true when a batch is closed is force to check the last L2Block hash
Example setting the default value (true):
[Synchronizer.L2Synchronization]
CheckLastL2BlockHashOnCloseBatch=true
Type: : array of string
Default: ["local", "trusted", "external"]
Description: DataSourcePriority defines the order in which L2 batch should be retrieved: local, trusted, external
Example setting the default value (["local", "trusted", "external"]):
[Synchronizer.L2Synchronization]
DataSourcePriority=["local", "trusted", "external"]
Type: : object
Description: Configuration of the sequencer service
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- DeletePoolTxsL1BlockConfirmations | No | integer | No | - | DeletePoolTxsL1BlockConfirmations is blocks amount after which txs will be deleted from the pool |
- DeletePoolTxsCheckInterval | No | string | No | - | Duration |
- TxLifetimeCheckInterval | No | string | No | - | Duration |
- TxLifetimeMax | No | string | No | - | Duration |
- LoadPoolTxsCheckInterval | No | string | No | - | Duration |
- StateConsistencyCheckInterval | No | string | No | - | Duration |
- L2Coinbase | No | array of integer | No | - | L2Coinbase defines which address is going to receive the fees. It gets the config value from SequenceSender.L2Coinbase |
- Finalizer | No | object | No | - | Finalizer's specific config properties |
- StreamServer | No | object | No | - | StreamServerCfg is the config for the stream server |
Type: : integer
Default: 100
Description: DeletePoolTxsL1BlockConfirmations is blocks amount after which txs will be deleted from the pool
Example setting the default value (100):
[Sequencer]
DeletePoolTxsL1BlockConfirmations=100
Title: Duration
Type: : string
Default: "12h0m0s"
Description: DeletePoolTxsCheckInterval is frequency with which txs will be checked for deleting
Examples:
"1m"
"300ms"
Example setting the default value ("12h0m0s"):
[Sequencer]
DeletePoolTxsCheckInterval="12h0m0s"
Title: Duration
Type: : string
Default: "10m0s"
Description: TxLifetimeCheckInterval is the time the sequencer waits to check txs lifetime
Examples:
"1m"
"300ms"
Example setting the default value ("10m0s"):
[Sequencer]
TxLifetimeCheckInterval="10m0s"
Title: Duration
Type: : string
Default: "3h0m0s"
Description: TxLifetimeMax is the time a tx can be in the sequencer/worker memory
Examples:
"1m"
"300ms"
Example setting the default value ("3h0m0s"):
[Sequencer]
TxLifetimeMax="3h0m0s"
Title: Duration
Type: : string
Default: "500ms"
Description: LoadPoolTxsCheckInterval is the time the sequencer waits to check in there are new txs in the pool
Examples:
"1m"
"300ms"
Example setting the default value ("500ms"):
[Sequencer]
LoadPoolTxsCheckInterval="500ms"
Title: Duration
Type: : string
Default: "5s"
Description: StateConsistencyCheckInterval is the time the sequencer waits to check if a state inconsistency has happened
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Sequencer]
StateConsistencyCheckInterval="5s"
Type: : array of integer
Description: L2Coinbase defines which address is going to receive the fees. It gets the config value from SequenceSender.L2Coinbase
Type: : object
Description: Finalizer's specific config properties
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- ForcedBatchesTimeout | No | string | No | - | Duration |
- NewTxsWaitInterval | No | string | No | - | Duration |
- ResourceExhaustedMarginPct | No | integer | No | - | ResourceExhaustedMarginPct is the percentage window of the resource left out for the batch to be closed |
- ForcedBatchesL1BlockConfirmations | No | integer | No | - | ForcedBatchesL1BlockConfirmations is number of blocks to consider GER final |
- L1InfoTreeL1BlockConfirmations | No | integer | No | - | L1InfoTreeL1BlockConfirmations is number of blocks to consider L1InfoRoot final |
- ForcedBatchesCheckInterval | No | string | No | - | Duration |
- L1InfoTreeCheckInterval | No | string | No | - | Duration |
- BatchMaxDeltaTimestamp | No | string | No | - | Duration |
- L2BlockMaxDeltaTimestamp | No | string | No | - | Duration |
- StateRootSyncInterval | No | string | No | - | Duration |
- FlushIdCheckInterval | No | string | No | - | Duration |
- HaltOnBatchNumber | No | integer | No | - | 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 | No | boolean | No | - | SequentialBatchSanityCheck indicates if the reprocess of a closed batch (sanity check) must be done in a sequential way (instead than in parallel) |
- SequentialProcessL2Block | No | boolean | No | - | SequentialProcessL2Block indicates if the processing of a L2 Block must be done in the same finalizer go func instead in the processPendingL2Blocks go func |
- Metrics | No | object | No | - | Metrics is the config for the sequencer metrics |
Title: Duration
Type: : string
Default: "1m0s"
Description: ForcedBatchesTimeout is the time the finalizer waits after receiving closing signal to process Forced Batches
Examples:
"1m"
"300ms"
Example setting the default value ("1m0s"):
[Sequencer.Finalizer]
ForcedBatchesTimeout="1m0s"
Title: Duration
Type: : string
Default: "100ms"
Description: NewTxsWaitInterval is the time the finalizer sleeps between each iteration, if there are no transactions to be processed
Examples:
"1m"
"300ms"
Example setting the default value ("100ms"):
[Sequencer.Finalizer]
NewTxsWaitInterval="100ms"
Type: : integer
Default: 10
Description: ResourceExhaustedMarginPct is the percentage window of the resource left out for the batch to be closed
Example setting the default value (10):
[Sequencer.Finalizer]
ResourceExhaustedMarginPct=10
Type: : integer
Default: 64
Description: ForcedBatchesL1BlockConfirmations is number of blocks to consider GER final
Example setting the default value (64):
[Sequencer.Finalizer]
ForcedBatchesL1BlockConfirmations=64
Type: : integer
Default: 64
Description: L1InfoTreeL1BlockConfirmations is number of blocks to consider L1InfoRoot final
Example setting the default value (64):
[Sequencer.Finalizer]
L1InfoTreeL1BlockConfirmations=64
Title: Duration
Type: : string
Default: "10s"
Description: ForcedBatchesCheckInterval is used by the closing signals manager to wait for its operation
Examples:
"1m"
"300ms"
Example setting the default value ("10s"):
[Sequencer.Finalizer]
ForcedBatchesCheckInterval="10s"
Title: Duration
Type: : string
Default: "10s"
Description: L1InfoTreeCheckInterval is the time interval to check if the L1InfoRoot has been updated
Examples:
"1m"
"300ms"
Example setting the default value ("10s"):
[Sequencer.Finalizer]
L1InfoTreeCheckInterval="10s"
Title: Duration
Type: : string
Default: "30m0s"
Description: BatchMaxDeltaTimestamp is the resolution of the timestamp used to close a batch
Examples:
"1m"
"300ms"
Example setting the default value ("30m0s"):
[Sequencer.Finalizer]
BatchMaxDeltaTimestamp="30m0s"
Title: Duration
Type: : string
Default: "3s"
Description: L2BlockMaxDeltaTimestamp is the resolution of the timestamp used to close a L2 block
Examples:
"1m"
"300ms"
Example setting the default value ("3s"):
[Sequencer.Finalizer]
L2BlockMaxDeltaTimestamp="3s"
Title: Duration
Type: : string
Default: "1h0m0s"
Description: 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
Examples:
"1m"
"300ms"
Example setting the default value ("1h0m0s"):
[Sequencer.Finalizer]
StateRootSyncInterval="1h0m0s"
Title: Duration
Type: : string
Default: "50ms"
Description: FlushIdCheckInterval is the time interval to get storedFlushID value from the executor/hashdb
Examples:
"1m"
"300ms"
Example setting the default value ("50ms"):
[Sequencer.Finalizer]
FlushIdCheckInterval="50ms"
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[Sequencer.Finalizer]
HaltOnBatchNumber=0
Type: : boolean
Default: false
Description: SequentialBatchSanityCheck indicates if the reprocess of a closed batch (sanity check) must be done in a sequential way (instead than in parallel)
Example setting the default value (false):
[Sequencer.Finalizer]
SequentialBatchSanityCheck=false
Type: : boolean
Default: false
Description: SequentialProcessL2Block indicates if the processing of a L2 Block must be done in the same finalizer go func instead in the processPendingL2Blocks go func
Example setting the default value (false):
[Sequencer.Finalizer]
SequentialProcessL2Block=false
Type: : object
Description: Metrics is the config for the sequencer metrics
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Interval | No | string | No | - | Duration |
- EnableLog | No | boolean | No | - | EnableLog is a flag to enable/disable metrics logs |
Title: Duration
Type: : string
Default: "1h0m0s"
Description: Interval is the interval of time to calculate sequencer metrics
Examples:
"1m"
"300ms"
Example setting the default value ("1h0m0s"):
[Sequencer.Finalizer.Metrics]
Interval="1h0m0s"
Type: : boolean
Default: true
Description: EnableLog is a flag to enable/disable metrics logs
Example setting the default value (true):
[Sequencer.Finalizer.Metrics]
EnableLog=true
Type: : object
Description: StreamServerCfg is the config for the stream server
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Port | No | integer | No | - | Port to listen on |
- Filename | No | string | No | - | Filename of the binary data file |
- Version | No | integer | No | - | Version of the binary data file |
- ChainID | No | integer | No | - | ChainID is the chain ID |
- Enabled | No | boolean | No | - | Enabled is a flag to enable/disable the data streamer |
- Log | No | object | No | - | Log is the log configuration |
- UpgradeEtrogBatchNumber | No | integer | No | - | UpgradeEtrogBatchNumber is the batch number of the upgrade etrog |
- WriteTimeout | No | string | No | - | Duration |
Type: : integer
Default: 0
Description: Port to listen on
Example setting the default value (0):
[Sequencer.StreamServer]
Port=0
Type: : string
Default: ""
Description: Filename of the binary data file
Example setting the default value (""):
[Sequencer.StreamServer]
Filename=""
Type: : integer
Default: 0
Description: Version of the binary data file
Example setting the default value (0):
[Sequencer.StreamServer]
Version=0
Type: : integer
Default: 0
Description: ChainID is the chain ID
Example setting the default value (0):
[Sequencer.StreamServer]
ChainID=0
Type: : boolean
Default: false
Description: Enabled is a flag to enable/disable the data streamer
Example setting the default value (false):
[Sequencer.StreamServer]
Enabled=false
Type: : object
Description: Log is the log configuration
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Environment | No | enum (of string) | No | - | - |
- Level | No | enum (of string) | No | - | - |
- Outputs | No | array of string | No | - | - |
Type: : enum (of string)
Default: ""
Example setting the default value (""):
[Sequencer.StreamServer.Log]
Environment=""
Must be one of:
- "production"
- "development"
Type: : enum (of string)
Default: ""
Example setting the default value (""):
[Sequencer.StreamServer.Log]
Level=""
Must be one of:
- "debug"
- "info"
- "warn"
- "error"
- "dpanic"
- "panic"
- "fatal"
Type: : array of string
Type: : integer
Default: 0
Description: UpgradeEtrogBatchNumber is the batch number of the upgrade etrog
Example setting the default value (0):
[Sequencer.StreamServer]
UpgradeEtrogBatchNumber=0
Title: Duration
Type: : string
Default: "5s"
Description: WriteTimeout is the TCP write timeout when sending data to a datastream client
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Sequencer.StreamServer]
WriteTimeout="5s"
Type: : object
Description: Configuration of the sequence sender service
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- WaitPeriodSendSequence | No | string | No | - | Duration |
- LastBatchVirtualizationTimeMaxWaitPeriod | No | string | No | - | Duration |
- L1BlockTimestampMargin | No | string | No | - | Duration |
- MaxTxSizeForL1 | No | integer | No | - | 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 | No | array of integer | No | - | SenderAddress defines which private key the eth tx manager needs to use to sign the L1 txs |
- L2Coinbase | No | array of integer | No | - | L2Coinbase defines which address is going to receive the fees |
- PrivateKey | No | object | No | - | PrivateKey defines all the key store files that are going to be read in order to provide the private keys to sign the L1 txs |
- ForkUpgradeBatchNumber | No | integer | No | - | Batch number where there is a forkid change (fork upgrade) |
- GasOffset | No | integer | No | - | 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 |
- MaxBatchesForL1 | No | integer | No | - | MaxBatchesForL1 is the maximum amount of batches to be sequenced in a single L1 tx |
- SequenceL1BlockConfirmations | No | integer | No | - | SequenceL1BlockConfirmations is number of blocks to consider a sequence sent to L1 as final |
Title: Duration
Type: : string
Default: "5s"
Description: WaitPeriodSendSequence is the time the sequencer waits until trying to send a sequence to L1
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[SequenceSender]
WaitPeriodSendSequence="5s"
Title: Duration
Type: : string
Default: "5s"
Description: LastBatchVirtualizationTimeMaxWaitPeriod is time since sequences should be sent
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[SequenceSender]
LastBatchVirtualizationTimeMaxWaitPeriod="5s"
Title: Duration
Type: : string
Default: "30s"
Description: 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
Examples:
"1m"
"300ms"
Example setting the default value ("30s"):
[SequenceSender]
L1BlockTimestampMargin="30s"
Type: : integer
Default: 131072
Description: 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.
Example setting the default value (131072):
[SequenceSender]
MaxTxSizeForL1=131072
Type: : array of integer
Description: SenderAddress defines which private key the eth tx manager needs to use
to sign the L1 txs
Type: : array of integer
Default: "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"
Description: L2Coinbase defines which address is going to receive the fees
Example setting the default value ("0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"):
[SequenceSender]
L2Coinbase="0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"
Type: : object
Description: PrivateKey defines all the key store files that are going
to be read in order to provide the private keys to sign the L1 txs
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Path | No | string | No | - | Path is the file path for the key store file |
- Password | No | string | No | - | Password is the password to decrypt the key store file |
Type: : string
Default: "/pk/sequencer.keystore"
Description: Path is the file path for the key store file
Example setting the default value ("/pk/sequencer.keystore"):
[SequenceSender.PrivateKey]
Path="/pk/sequencer.keystore"
Type: : string
Default: "testonly"
Description: Password is the password to decrypt the key store file
Example setting the default value ("testonly"):
[SequenceSender.PrivateKey]
Password="testonly"
Type: : integer
Default: 0
Description: Batch number where there is a forkid change (fork upgrade)
Example setting the default value (0):
[SequenceSender]
ForkUpgradeBatchNumber=0
Type: : integer
Default: 80000
Description: 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
Example setting the default value (80000):
[SequenceSender]
GasOffset=80000
Type: : integer
Default: 300
Description: MaxBatchesForL1 is the maximum amount of batches to be sequenced in a single L1 tx
Example setting the default value (300):
[SequenceSender]
MaxBatchesForL1=300
Type: : integer
Default: 32
Description: SequenceL1BlockConfirmations is number of blocks to consider a sequence sent to L1 as final
Example setting the default value (32):
[SequenceSender]
SequenceL1BlockConfirmations=32
Type: : object
Description: Configuration of the aggregator service
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Host | No | string | No | - | Host for the grpc server |
- Port | No | integer | No | - | Port for the grpc server |
- RetryTime | No | string | No | - | Duration |
- VerifyProofInterval | No | string | No | - | Duration |
- ProofStatePollingInterval | No | string | No | - | Duration |
- TxProfitabilityCheckerType | No | string | No | - | TxProfitabilityCheckerType type for checking is it profitable for aggregator to validate batch possible values: base/acceptall |
- TxProfitabilityMinReward | No | object | No | - | TxProfitabilityMinReward min reward for base tx profitability checker when aggregator will validate batch this parameter is used for the base tx profitability checker |
- IntervalAfterWhichBatchConsolidateAnyway | No | string | No | - | Duration |
- ChainID | No | integer | No | - | ChainID is the L2 ChainID provided by the Network Config |
- ForkId | No | integer | No | - | ForkID is the L2 ForkID provided by the Network Config |
- SenderAddress | No | string | No | - | SenderAddress defines which private key the eth tx manager needs to use to sign the L1 txs |
- CleanupLockedProofsInterval | No | string | No | - | Duration |
- GeneratingProofCleanupThreshold | No | string | No | - | GeneratingProofCleanupThreshold represents the time interval after which a proof in generating state is considered to be stuck and allowed to be cleared. |
- GasOffset | No | integer | No | - | 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 | No | integer | No | - | UpgradeEtrogBatchNumber is the number of the first batch after upgrading to etrog |
- SettlementBackend | No | string | No | - | SettlementBackend configuration defines how a final ZKP should be settled. Directly to L1 or over the Beethoven service. |
- AggLayerTxTimeout | No | string | No | - | Duration |
- AggLayerURL | No | string | No | - | AggLayerURL url of the agglayer service |
- SequencerPrivateKey | No | object | No | - | SequencerPrivateKey Private key of the trusted sequencer |
- BatchProofL1BlockConfirmations | No | integer | No | - | BatchProofL1BlockConfirmations is number of L1 blocks to consider we can generate the proof for a virtual batch |
Type: : string
Default: "0.0.0.0"
Description: Host for the grpc server
Example setting the default value ("0.0.0.0"):
[Aggregator]
Host="0.0.0.0"
Type: : integer
Default: 50081
Description: Port for the grpc server
Example setting the default value (50081):
[Aggregator]
Port=50081
Title: Duration
Type: : string
Default: "5s"
Description: 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
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Aggregator]
RetryTime="5s"
Title: Duration
Type: : string
Default: "1m30s"
Description: VerifyProofInterval is the interval of time to verify/send an proof in L1
Examples:
"1m"
"300ms"
Example setting the default value ("1m30s"):
[Aggregator]
VerifyProofInterval="1m30s"
Title: Duration
Type: : string
Default: "5s"
Description: ProofStatePollingInterval is the interval time to polling the prover about the generation state of a proof
Examples:
"1m"
"300ms"
Example setting the default value ("5s"):
[Aggregator]
ProofStatePollingInterval="5s"
Type: : string
Default: "acceptall"
Description: TxProfitabilityCheckerType type for checking is it profitable for aggregator to validate batch possible values: base/acceptall
Example setting the default value ("acceptall"):
[Aggregator]
TxProfitabilityCheckerType="acceptall"
Type: : object
Description: TxProfitabilityMinReward min reward for base tx profitability checker when aggregator will validate batch
this parameter is used for the base tx profitability checker
Title: Duration
Type: : string
Default: "0s"
Description: IntervalAfterWhichBatchConsolidateAnyway this is interval for the main sequencer, that will check if there is no transactions
Examples:
"1m"
"300ms"
Example setting the default value ("0s"):
[Aggregator]
IntervalAfterWhichBatchConsolidateAnyway="0s"
Type: : integer
Default: 0
Description: ChainID is the L2 ChainID provided by the Network Config
Example setting the default value (0):
[Aggregator]
ChainID=0
Type: : integer
Default: 0
Description: ForkID is the L2 ForkID provided by the Network Config
Example setting the default value (0):
[Aggregator]
ForkId=0
Type: : string
Default: ""
Description: SenderAddress defines which private key the eth tx manager needs to use to sign the L1 txs
Example setting the default value (""):
[Aggregator]
SenderAddress=""
Title: Duration
Type: : string
Default: "2m0s"
Description: CleanupLockedProofsInterval is the interval of time to clean up locked proofs.
Examples:
"1m"
"300ms"
Example setting the default value ("2m0s"):
[Aggregator]
CleanupLockedProofsInterval="2m0s"
Type: : string
Default: "10m"
Description: GeneratingProofCleanupThreshold represents the time interval after which a proof in generating state is considered to be stuck and allowed to be cleared.
Example setting the default value ("10m"):
[Aggregator]
GeneratingProofCleanupThreshold="10m"
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[Aggregator]
GasOffset=0
Type: : integer
Default: 0
Description: UpgradeEtrogBatchNumber is the number of the first batch after upgrading to etrog
Example setting the default value (0):
[Aggregator]
UpgradeEtrogBatchNumber=0
Type: : string
Default: "agglayer"
Description: SettlementBackend configuration defines how a final ZKP should be settled. Directly to L1 or over the Beethoven service.
Example setting the default value ("agglayer"):
[Aggregator]
SettlementBackend="agglayer"
Title: Duration
Type: : string
Default: "5m0s"
Description: AggLayerTxTimeout is the interval time to wait for a tx to be mined from the agglayer
Examples:
"1m"
"300ms"
Example setting the default value ("5m0s"):
[Aggregator]
AggLayerTxTimeout="5m0s"
Type: : string
Default: "http://zkevm-agglayer"
Description: AggLayerURL url of the agglayer service
Example setting the default value ("http://zkevm-agglayer"):
[Aggregator]
AggLayerURL="http://zkevm-agglayer"
Type: : object
Description: SequencerPrivateKey Private key of the trusted sequencer
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Path | No | string | No | - | Path is the file path for the key store file |
- Password | No | string | No | - | Password is the password to decrypt the key store file |
Type: : string
Default: "/pk/sequencer.keystore"
Description: Path is the file path for the key store file
Example setting the default value ("/pk/sequencer.keystore"):
[Aggregator.SequencerPrivateKey]
Path="/pk/sequencer.keystore"
Type: : string
Default: "testonly"
Description: Password is the password to decrypt the key store file
Example setting the default value ("testonly"):
[Aggregator.SequencerPrivateKey]
Password="testonly"
Type: : integer
Default: 2
Description: BatchProofL1BlockConfirmations is number of L1 blocks to consider we can generate the proof for a virtual batch
Example setting the default value (2):
[Aggregator]
BatchProofL1BlockConfirmations=2
Type: : object
Description: Configuration of the genesis of the network. This is used to known the initial state of the network
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- l1Config | No | object | No | - | L1: Configuration related to L1 |
- Genesis | No | object | No | - | L1: Genesis of the rollup, first block number and root |
Type: : object
Description: L1: Configuration related to L1
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- chainId | No | integer | No | - | Chain ID of the L1 network |
- polygonZkEVMAddress | No | array of integer | No | - | ZkEVMAddr Address of the L1 contract polygonZkEVMAddress |
- polygonRollupManagerAddress | No | array of integer | No | - | RollupManagerAddr Address of the L1 contract |
- polTokenAddress | No | array of integer | No | - | PolAddr Address of the L1 Pol token Contract |
- polygonZkEVMGlobalExitRootAddress | No | array of integer | No | - | GlobalExitRootManagerAddr Address of the L1 GlobalExitRootManager contract |
Type: : integer
Default: 0
Description: Chain ID of the L1 network
Example setting the default value (0):
[NetworkConfig.l1Config]
chainId=0
Type: : array of integer
Description: ZkEVMAddr Address of the L1 contract polygonZkEVMAddress
Type: : array of integer
Description: RollupManagerAddr Address of the L1 contract
Type: : array of integer
Description: PolAddr Address of the L1 Pol token Contract
Type: : array of integer
Description: GlobalExitRootManagerAddr Address of the L1 GlobalExitRootManager contract
Type: : object
Description: L1: Genesis of the rollup, first block number and root
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- RollupBlockNumber | No | integer | No | - | RollupBlockNumber is the block number where the polygonZKEVM smc was deployed on L1 |
- RollupManagerBlockNumber | No | integer | No | - | RollupManagerBlockNumber is the block number where the RollupManager smc was deployed on L1 |
- Root | No | array of integer | No | - | Root hash of the genesis block |
- Actions | No | array of object | No | - | Actions is the data to populate into the state trie |
Type: : integer
Default: 0
Description: RollupBlockNumber is the block number where the polygonZKEVM smc was deployed on L1
Example setting the default value (0):
[NetworkConfig.Genesis]
RollupBlockNumber=0
Type: : integer
Default: 0
Description: RollupManagerBlockNumber is the block number where the RollupManager smc was deployed on L1
Example setting the default value (0):
[NetworkConfig.Genesis]
RollupManagerBlockNumber=0
Type: : array of integer
Description: Root hash of the genesis block
Type: : array of object
Description: Actions is the data to populate into the state trie
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
Actions items | GenesisAction represents one of the values set on the SMT during genesis. |
Type: : object
Description: GenesisAction represents one of the values set on the SMT during genesis.
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- address | No | string | No | - | - |
- type | No | integer | No | - | - |
- storagePosition | No | string | No | - | - |
- bytecode | No | string | No | - | - |
- key | No | string | No | - | - |
- value | No | string | No | - | - |
- root | No | string | No | - | - |
Type: : string
Type: : integer
Type: : string
Type: : string
Type: : string
Type: : string
Type: : string
Type: : object
Description: Configuration of the gas price suggester service
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Type | No | string | No | - | - |
- DefaultGasPriceWei | No | integer | No | - | 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 | No | integer | No | - | MaxGasPriceWei is used to limit the gas price returned by the follower gas pricer to a maximum value. It is ignored if 0. |
- MaxPrice | No | object | No | - | - |
- IgnorePrice | No | object | No | - | - |
- CheckBlocks | No | integer | No | - | - |
- Percentile | No | integer | No | - | - |
- UpdatePeriod | No | string | No | - | Duration |
- CleanHistoryPeriod | No | string | No | - | Duration |
- CleanHistoryTimeRetention | No | string | No | - | Duration |
- Factor | No | number | No | - | - |
Type: : string
Default: "follower"
Example setting the default value ("follower"):
[L2GasPriceSuggester]
Type="follower"
Type: : integer
Default: 2000000000
Description: 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.
Example setting the default value (2000000000):
[L2GasPriceSuggester]
DefaultGasPriceWei=2000000000
Type: : integer
Default: 0
Description: MaxGasPriceWei is used to limit the gas price returned by the follower gas pricer to a maximum value. It is ignored if 0.
Example setting the default value (0):
[L2GasPriceSuggester]
MaxGasPriceWei=0
Type: : object
Type: : object
Type: : integer
Default: 0
Example setting the default value (0):
[L2GasPriceSuggester]
CheckBlocks=0
Type: : integer
Default: 0
Example setting the default value (0):
[L2GasPriceSuggester]
Percentile=0
Title: Duration
Type: : string
Default: "10s"
Examples:
"1m"
"300ms"
Example setting the default value ("10s"):
[L2GasPriceSuggester]
UpdatePeriod="10s"
Title: Duration
Type: : string
Default: "1h0m0s"
Examples:
"1m"
"300ms"
Example setting the default value ("1h0m0s"):
[L2GasPriceSuggester]
CleanHistoryPeriod="1h0m0s"
Title: Duration
Type: : string
Default: "5m0s"
Examples:
"1m"
"300ms"
Example setting the default value ("5m0s"):
[L2GasPriceSuggester]
CleanHistoryTimeRetention="5m0s"
Type: : number
Default: 0.15
Example setting the default value (0.15):
[L2GasPriceSuggester]
Factor=0.15
Type: : object
Description: Configuration of the executor service
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- URI | No | string | No | - | - |
- MaxResourceExhaustedAttempts | No | integer | No | - | MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion |
- WaitOnResourceExhaustion | No | string | No | - | Duration |
- MaxGRPCMessageSize | No | integer | No | - | - |
Type: : string
Default: "zkevm-prover:50071"
Example setting the default value ("zkevm-prover:50071"):
[Executor]
URI="zkevm-prover:50071"
Type: : integer
Default: 3
Description: MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion
Example setting the default value (3):
[Executor]
MaxResourceExhaustedAttempts=3
Title: Duration
Type: : string
Default: "1s"
Description: WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion
Examples:
"1m"
"300ms"
Example setting the default value ("1s"):
[Executor]
WaitOnResourceExhaustion="1s"
Type: : integer
Default: 100000000
Example setting the default value (100000000):
[Executor]
MaxGRPCMessageSize=100000000
Type: : object
Description: Configuration of the merkle tree client service. Not use in the node, only for testing
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- URI | No | string | No | - | URI is the server URI. |
Type: : string
Default: "zkevm-prover:50061"
Description: URI is the server URI.
Example setting the default value ("zkevm-prover:50061"):
[MTClient]
URI="zkevm-prover:50061"
Type: : object
Description: Configuration of the metrics service, basically is where is going to publish the metrics
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Host | No | string | No | - | Host is the address to bind the metrics server |
- Port | No | integer | No | - | Port is the port to bind the metrics server |
- Enabled | No | boolean | No | - | Enabled is the flag to enable/disable the metrics server |
- ProfilingHost | No | string | No | - | ProfilingHost is the address to bind the profiling server |
- ProfilingPort | No | integer | No | - | ProfilingPort is the port to bind the profiling server |
- ProfilingEnabled | No | boolean | No | - | ProfilingEnabled is the flag to enable/disable the profiling server |
Type: : string
Default: "0.0.0.0"
Description: Host is the address to bind the metrics server
Example setting the default value ("0.0.0.0"):
[Metrics]
Host="0.0.0.0"
Type: : integer
Default: 9091
Description: Port is the port to bind the metrics server
Example setting the default value (9091):
[Metrics]
Port=9091
Type: : boolean
Default: false
Description: Enabled is the flag to enable/disable the metrics server
Example setting the default value (false):
[Metrics]
Enabled=false
Type: : string
Default: ""
Description: ProfilingHost is the address to bind the profiling server
Example setting the default value (""):
[Metrics]
ProfilingHost=""
Type: : integer
Default: 0
Description: ProfilingPort is the port to bind the profiling server
Example setting the default value (0):
[Metrics]
ProfilingPort=0
Type: : boolean
Default: false
Description: ProfilingEnabled is the flag to enable/disable the profiling server
Example setting the default value (false):
[Metrics]
ProfilingEnabled=false
Type: : object
Description: Configuration of the event database connection
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- DB | No | object | No | - | DB is the database configuration |
Type: : object
Description: DB is the database configuration
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Name | No | string | No | - | Database name |
- User | No | string | No | - | Database User name |
- Password | No | string | No | - | Database Password of the user |
- Host | No | string | No | - | Host address of database |
- Port | No | string | No | - | Port Number of database |
- EnableLog | No | boolean | No | - | EnableLog |
- MaxConns | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
Type: : string
Default: ""
Description: Database name
Example setting the default value (""):
[EventLog.DB]
Name=""
Type: : string
Default: ""
Description: Database User name
Example setting the default value (""):
[EventLog.DB]
User=""
Type: : string
Default: ""
Description: Database Password of the user
Example setting the default value (""):
[EventLog.DB]
Password=""
Type: : string
Default: ""
Description: Host address of database
Example setting the default value (""):
[EventLog.DB]
Host=""
Type: : string
Default: ""
Description: Port Number of database
Example setting the default value (""):
[EventLog.DB]
Port=""
Type: : boolean
Default: false
Description: EnableLog
Example setting the default value (false):
[EventLog.DB]
EnableLog=false
Type: : integer
Default: 0
Description: MaxConns is the maximum number of connections in the pool.
Example setting the default value (0):
[EventLog.DB]
MaxConns=0
Type: : object
Description: Configuration of the hash database connection
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Name | No | string | No | - | Database name |
- User | No | string | No | - | Database User name |
- Password | No | string | No | - | Database Password of the user |
- Host | No | string | No | - | Host address of database |
- Port | No | string | No | - | Port Number of database |
- EnableLog | No | boolean | No | - | EnableLog |
- MaxConns | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
Type: : string
Default: "prover_db"
Description: Database name
Example setting the default value ("prover_db"):
[HashDB]
Name="prover_db"
Type: : string
Default: "prover_user"
Description: Database User name
Example setting the default value ("prover_user"):
[HashDB]
User="prover_user"
Type: : string
Default: "prover_pass"
Description: Database Password of the user
Example setting the default value ("prover_pass"):
[HashDB]
Password="prover_pass"
Type: : string
Default: "zkevm-state-db"
Description: Host address of database
Example setting the default value ("zkevm-state-db"):
[HashDB]
Host="zkevm-state-db"
Type: : string
Default: "5432"
Description: Port Number of database
Example setting the default value ("5432"):
[HashDB]
Port="5432"
Type: : boolean
Default: false
Description: EnableLog
Example setting the default value (false):
[HashDB]
EnableLog=false
Type: : integer
Default: 200
Description: MaxConns is the maximum number of connections in the pool.
Example setting the default value (200):
[HashDB]
MaxConns=200
Type: : object
Description: State service configuration
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- MaxCumulativeGasUsed | No | integer | No | - | MaxCumulativeGasUsed is the max gas allowed per batch |
- ChainID | No | integer | No | - | ChainID is the L2 ChainID provided by the Network Config |
- ForkIDIntervals | No | array of object | No | - | ForkIdIntervals is the list of fork id intervals |
- MaxResourceExhaustedAttempts | No | integer | No | - | MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion |
- WaitOnResourceExhaustion | No | string | No | - | Duration |
- ForkUpgradeBatchNumber | No | integer | No | - | Batch number from which there is a forkid change (fork upgrade) |
- ForkUpgradeNewForkId | No | integer | No | - | New fork id to be used for batches greaters than ForkUpgradeBatchNumber (fork upgrade) |
- DB | No | object | No | - | DB is the database configuration |
- Batch | No | object | No | - | Configuration for the batch constraints |
- MaxLogsCount | No | integer | No | - | 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 | No | integer | No | - | 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 | No | integer | No | - | 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 | No | boolean | No | - | AvoidForkIDInMemory is a configuration that forces the ForkID information to be loaded from the DB every time it's needed |
Type: : integer
Default: 0
Description: MaxCumulativeGasUsed is the max gas allowed per batch
Example setting the default value (0):
[State]
MaxCumulativeGasUsed=0
Type: : integer
Default: 0
Description: ChainID is the L2 ChainID provided by the Network Config
Example setting the default value (0):
[State]
ChainID=0
Type: : array of object
Description: ForkIdIntervals is the list of fork id intervals
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
ForkIDIntervals items | ForkIDInterval is a fork id interval |
Type: : object
Description: ForkIDInterval is a fork id interval
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- FromBatchNumber | No | integer | No | - | - |
- ToBatchNumber | No | integer | No | - | - |
- ForkId | No | integer | No | - | - |
- Version | No | string | No | - | - |
- BlockNumber | No | integer | No | - | - |
Type: : integer
Type: : integer
Type: : integer
Type: : string
Type: : integer
Type: : integer
Default: 0
Description: MaxResourceExhaustedAttempts is the max number of attempts to make a transaction succeed because of resource exhaustion
Example setting the default value (0):
[State]
MaxResourceExhaustedAttempts=0
Title: Duration
Type: : string
Default: "0s"
Description: WaitOnResourceExhaustion is the time to wait before retrying a transaction because of resource exhaustion
Examples:
"1m"
"300ms"
Example setting the default value ("0s"):
[State]
WaitOnResourceExhaustion="0s"
Type: : integer
Default: 0
Description: Batch number from which there is a forkid change (fork upgrade)
Example setting the default value (0):
[State]
ForkUpgradeBatchNumber=0
Type: : integer
Default: 0
Description: New fork id to be used for batches greaters than ForkUpgradeBatchNumber (fork upgrade)
Example setting the default value (0):
[State]
ForkUpgradeNewForkId=0
Type: : object
Description: DB is the database configuration
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Name | No | string | No | - | Database name |
- User | No | string | No | - | Database User name |
- Password | No | string | No | - | Database Password of the user |
- Host | No | string | No | - | Host address of database |
- Port | No | string | No | - | Port Number of database |
- EnableLog | No | boolean | No | - | EnableLog |
- MaxConns | No | integer | No | - | MaxConns is the maximum number of connections in the pool. |
Type: : string
Default: "state_db"
Description: Database name
Example setting the default value ("state_db"):
[State.DB]
Name="state_db"
Type: : string
Default: "state_user"
Description: Database User name
Example setting the default value ("state_user"):
[State.DB]
User="state_user"
Type: : string
Default: "state_password"
Description: Database Password of the user
Example setting the default value ("state_password"):
[State.DB]
Password="state_password"
Type: : string
Default: "zkevm-state-db"
Description: Host address of database
Example setting the default value ("zkevm-state-db"):
[State.DB]
Host="zkevm-state-db"
Type: : string
Default: "5432"
Description: Port Number of database
Example setting the default value ("5432"):
[State.DB]
Port="5432"
Type: : boolean
Default: false
Description: EnableLog
Example setting the default value (false):
[State.DB]
EnableLog=false
Type: : integer
Default: 200
Description: MaxConns is the maximum number of connections in the pool.
Example setting the default value (200):
[State.DB]
MaxConns=200
Type: : object
Description: Configuration for the batch constraints
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- Constraints | No | object | No | - | - |
Type: : object
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- MaxTxsPerBatch | No | integer | No | - | - |
- MaxBatchBytesSize | No | integer | No | - | - |
- MaxCumulativeGasUsed | No | integer | No | - | - |
- MaxKeccakHashes | No | integer | No | - | - |
- MaxPoseidonHashes | No | integer | No | - | - |
- MaxPoseidonPaddings | No | integer | No | - | - |
- MaxMemAligns | No | integer | No | - | - |
- MaxArithmetics | No | integer | No | - | - |
- MaxBinaries | No | integer | No | - | - |
- MaxSteps | No | integer | No | - | - |
- MaxSHA256Hashes | No | integer | No | - | - |
Type: : integer
Default: 300
Example setting the default value (300):
[State.Batch.Constraints]
MaxTxsPerBatch=300
Type: : integer
Default: 120000
Example setting the default value (120000):
[State.Batch.Constraints]
MaxBatchBytesSize=120000
Type: : integer
Default: 1125899906842624
Example setting the default value (1125899906842624):
[State.Batch.Constraints]
MaxCumulativeGasUsed=1125899906842624
Type: : integer
Default: 2145
Example setting the default value (2145):
[State.Batch.Constraints]
MaxKeccakHashes=2145
Type: : integer
Default: 252357
Example setting the default value (252357):
[State.Batch.Constraints]
MaxPoseidonHashes=252357
Type: : integer
Default: 135191
Example setting the default value (135191):
[State.Batch.Constraints]
MaxPoseidonPaddings=135191
Type: : integer
Default: 236585
Example setting the default value (236585):
[State.Batch.Constraints]
MaxMemAligns=236585
Type: : integer
Default: 236585
Example setting the default value (236585):
[State.Batch.Constraints]
MaxArithmetics=236585
Type: : integer
Default: 473170
Example setting the default value (473170):
[State.Batch.Constraints]
MaxBinaries=473170
Type: : integer
Default: 7570538
Example setting the default value (7570538):
[State.Batch.Constraints]
MaxSteps=7570538
Type: : integer
Default: 1596
Example setting the default value (1596):
[State.Batch.Constraints]
MaxSHA256Hashes=1596
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[State]
MaxLogsCount=0
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[State]
MaxLogsBlockRange=0
Type: : integer
Default: 0
Description: 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
Example setting the default value (0):
[State]
MaxNativeBlockHashBlockRange=0
Type: : boolean
Default: false
Description: AvoidForkIDInMemory is a configuration that forces the ForkID information to be loaded from the DB every time it's needed
Example setting the default value (false):
[State]
AvoidForkIDInMemory=false
Generated using json-schema-for-humans