Skip to content

Latest commit

 

History

History
4467 lines (3021 loc) · 202 KB

node-config-doc.md

File metadata and controls

4467 lines (3021 loc) · 202 KB

Schema Docs

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

1. IsTrustedSequencer

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

2. ForkUpgradeBatchNumber

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

3. ForkUpgradeNewForkId

Type: : integer

Default: 0

Description: Which is the new forkId

Example setting the default value (0):

ForkUpgradeNewForkId=0

4. [Log]

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

4.1. Log.Environment

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"

4.2. Log.Level

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"

4.3. Log.Outputs

Type: : array of string

Default: ["stderr"]

Description: Outputs

Example setting the default value (["stderr"]):

[Log]
Outputs=["stderr"]

5. [Etherman]

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

5.1. Etherman.URL

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"

5.2. Etherman.ForkIDChunkSize

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

5.3. Etherman.MultiGasProvider

Type: : boolean

Default: false

Description: allow that L1 gas price calculation use multiples sources

Example setting the default value (false):

[Etherman]
MultiGasProvider=false

5.4. [Etherman.Etherscan]

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="

5.4.1. Etherman.Etherscan.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=""

5.4.2. Etherman.Etherscan.Url

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=""

6. [EthTxManager]

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

6.1. EthTxManager.FrequencyToMonitorTxs

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"

6.2. EthTxManager.WaitTxToBeMined

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"

6.3. EthTxManager.PrivateKeys

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

6.3.1. [EthTxManager.PrivateKeys.PrivateKeys items]

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
6.3.1.1. EthTxManager.PrivateKeys.PrivateKeys items.Path

Type: : string Description: Path is the file path for the key store file

6.3.1.2. EthTxManager.PrivateKeys.PrivateKeys items.Password

Type: : string Description: Password is the password to decrypt the key store file

6.4. EthTxManager.ForcedGas

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

6.5. EthTxManager.GasPriceMarginFactor

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

6.6. EthTxManager.MaxGasPriceLimit

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

7. [Pool]

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

7.1. Pool.IntervalToRefreshBlockedAddresses

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"

7.2. Pool.IntervalToRefreshGasPrices

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"

7.3. Pool.MaxTxBytesSize

Type: : integer

Default: 100132

Description: MaxTxBytesSize is the max size of a transaction in bytes

Example setting the default value (100132):

[Pool]
MaxTxBytesSize=100132

7.4. Pool.MaxTxDataBytesSize

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

7.5. [Pool.DB]

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.

7.5.1. Pool.DB.Name

Type: : string

Default: "pool_db"

Description: Database name

Example setting the default value ("pool_db"):

[Pool.DB]
Name="pool_db"

7.5.2. Pool.DB.User

Type: : string

Default: "pool_user"

Description: Database User name

Example setting the default value ("pool_user"):

[Pool.DB]
User="pool_user"

7.5.3. Pool.DB.Password

Type: : string

Default: "pool_password"

Description: Database Password of the user

Example setting the default value ("pool_password"):

[Pool.DB]
Password="pool_password"

7.5.4. Pool.DB.Host

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"

7.5.5. Pool.DB.Port

Type: : string

Default: "5432"

Description: Port Number of database

Example setting the default value ("5432"):

[Pool.DB]
Port="5432"

7.5.6. Pool.DB.EnableLog

Type: : boolean

Default: false

Description: EnableLog

Example setting the default value (false):

[Pool.DB]
EnableLog=false

7.5.7. Pool.DB.MaxConns

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

7.6. Pool.DefaultMinGasPriceAllowed

Type: : integer

Default: 1000000000

Description: DefaultMinGasPriceAllowed is the default min gas price to suggest

Example setting the default value (1000000000):

[Pool]
DefaultMinGasPriceAllowed=1000000000

7.7. Pool.MinAllowedGasPriceInterval

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"

7.8. Pool.PollMinAllowedGasPriceInterval

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"

7.9. Pool.AccountQueue

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

7.10. Pool.GlobalQueue

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

7.11. [Pool.EffectiveGasPrice]

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)

7.11.1. Pool.EffectiveGasPrice.Enabled

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

7.11.2. Pool.EffectiveGasPrice.L1GasPriceFactor

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

7.11.3. Pool.EffectiveGasPrice.ByteGasCost

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

7.11.4. Pool.EffectiveGasPrice.ZeroByteGasCost

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

7.11.5. Pool.EffectiveGasPrice.NetProfit

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

7.11.6. Pool.EffectiveGasPrice.BreakEvenFactor

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

7.11.7. Pool.EffectiveGasPrice.FinalDeviationPct

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

7.11.8. Pool.EffectiveGasPrice.EthTransferGasPrice

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

7.11.9. Pool.EffectiveGasPrice.EthTransferL1GasPriceFactor

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

7.11.10. Pool.EffectiveGasPrice.L2GasPriceSuggesterFactor

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

7.12. Pool.ForkID

Type: : integer

Default: 0

Description: ForkID is the current fork ID of the chain

Example setting the default value (0):

[Pool]
ForkID=0

8. [RPC]

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

8.1. RPC.Host

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"

8.2. RPC.Port

Type: : integer

Default: 8545

Description: Port defines the port to serve the endpoints via HTTP

Example setting the default value (8545):

[RPC]
Port=8545

8.3. RPC.ReadTimeout

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"

8.4. RPC.WriteTimeout

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"

8.5. RPC.MaxRequestsPerIPAndSecond

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

8.6. RPC.SequencerNodeURI

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=""

8.7. RPC.MaxCumulativeGasUsed

Type: : integer

Default: 0

Description: MaxCumulativeGasUsed is the max gas allowed per batch

Example setting the default value (0):

[RPC]
MaxCumulativeGasUsed=0

8.8. [RPC.WebSockets]

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)

8.8.1. RPC.WebSockets.Enabled

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

8.8.2. RPC.WebSockets.Host

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"

8.8.3. RPC.WebSockets.Port

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

8.8.4. RPC.WebSockets.ReadLimit

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

8.9. RPC.EnableL2SuggestedGasPricePolling

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

8.10. RPC.BatchRequestsEnabled

Type: : boolean

Default: false

Description: BatchRequestsEnabled defines if the Batch requests are enabled or disabled

Example setting the default value (false):

[RPC]
BatchRequestsEnabled=false

8.11. RPC.BatchRequestsLimit

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

8.12. RPC.L2Coinbase

Type: : array of integer Description: L2Coinbase defines which address is going to receive the fees

8.13. RPC.MaxLogsCount

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

8.14. RPC.MaxLogsBlockRange

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

8.15. RPC.MaxNativeBlockHashBlockRange

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

8.16. RPC.EnableHttpLog

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

8.17. [RPC.ZKCountersLimits]

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 - -

8.17.1. RPC.ZKCountersLimits.MaxKeccakHashes

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxKeccakHashes=0

8.17.2. RPC.ZKCountersLimits.MaxPoseidonHashes

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxPoseidonHashes=0

8.17.3. RPC.ZKCountersLimits.MaxPoseidonPaddings

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxPoseidonPaddings=0

8.17.4. RPC.ZKCountersLimits.MaxMemAligns

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxMemAligns=0

8.17.5. RPC.ZKCountersLimits.MaxArithmetics

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxArithmetics=0

8.17.6. RPC.ZKCountersLimits.MaxBinaries

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxBinaries=0

8.17.7. RPC.ZKCountersLimits.MaxSteps

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxSteps=0

8.17.8. RPC.ZKCountersLimits.MaxSHA256Hashes

Type: : integer

Default: 0

Example setting the default value (0):

[RPC.ZKCountersLimits]
MaxSHA256Hashes=0

9. [Synchronizer]

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

9.1. Synchronizer.SyncInterval

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"

9.2. Synchronizer.SyncChunkSize

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

9.3. Synchronizer.TrustedSequencerURL

Type: : string

Default: ""

Description: TrustedSequencerURL is the rpc url to connect and sync the trusted state

Example setting the default value (""):

[Synchronizer]
TrustedSequencerURL=""

9.4. Synchronizer.SyncBlockProtection

Type: : string

Default: "safe"

Description: SyncBlockProtection specify the state to sync (lastest, finalized or safe)

Example setting the default value ("safe"):

[Synchronizer]
SyncBlockProtection="safe"

9.5. Synchronizer.L1SyncCheckL2BlockHash

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

9.6. Synchronizer.L1SyncCheckL2BlockNumberhModulus

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

9.7. [Synchronizer.L1BlockCheck]

Type: : object

Property Pattern Type Deprecated Definition Title/Description
- Enable No boolean No - Enable if is true 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
- PreCheckEnable No boolean No - PreCheckEnable if is true 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

9.7.1. Synchronizer.L1BlockCheck.Enable

Type: : boolean

Default: true

Description: Enable if is true then the check l1 Block Hash is active

Example setting the default value (true):

[Synchronizer.L1BlockCheck]
Enable=true

9.7.2. Synchronizer.L1BlockCheck.L1SafeBlockPoint

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"

9.7.3. Synchronizer.L1BlockCheck.L1SafeBlockOffset

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

9.7.4. Synchronizer.L1BlockCheck.ForceCheckBeforeStart

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

9.7.5. Synchronizer.L1BlockCheck.PreCheckEnable

Type: : boolean

Default: true

Description: PreCheckEnable if is true then the pre-check is active, will check blocks between L1SafeBlock and L1PreSafeBlock

Example setting the default value (true):

[Synchronizer.L1BlockCheck]
PreCheckEnable=true

9.7.6. Synchronizer.L1BlockCheck.L1PreSafeBlockPoint

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"

9.7.7. Synchronizer.L1BlockCheck.L1PreSafeBlockOffset

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

9.8. Synchronizer.L1SynchronizationMode

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"

9.9. [Synchronizer.L1ParallelSynchronization]

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

9.9.1. Synchronizer.L1ParallelSynchronization.MaxClients

Type: : integer

Default: 10

Description: MaxClients Number of clients used to synchronize with L1

Example setting the default value (10):

[Synchronizer.L1ParallelSynchronization]
MaxClients=10

9.9.2. Synchronizer.L1ParallelSynchronization.MaxPendingNoProcessedBlocks

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

9.9.3. Synchronizer.L1ParallelSynchronization.RequestLastBlockPeriod

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"

9.9.4. [Synchronizer.L1ParallelSynchronization.PerformanceWarning]

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
9.9.4.1. Synchronizer.L1ParallelSynchronization.PerformanceWarning.AceptableInacctivityTime

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"
9.9.4.2. Synchronizer.L1ParallelSynchronization.PerformanceWarning.ApplyAfterNumRollupReceived

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

9.9.5. Synchronizer.L1ParallelSynchronization.RequestLastBlockTimeout

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"

9.9.6. Synchronizer.L1ParallelSynchronization.RequestLastBlockMaxRetries

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

9.9.7. Synchronizer.L1ParallelSynchronization.StatisticsPeriod

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"

9.9.8. Synchronizer.L1ParallelSynchronization.TimeOutMainLoop

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"

9.9.9. Synchronizer.L1ParallelSynchronization.RollupInfoRetriesSpacing

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"

9.9.10. Synchronizer.L1ParallelSynchronization.FallbackToSequentialModeOnSynchronized

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

9.10. [Synchronizer.L2Synchronization]

Type: : object Description: L2Synchronization Configuration for L2 synchronization

Property Pattern Type Deprecated Definition Title/Description
- 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

9.10.1. Synchronizer.L2Synchronization.AcceptEmptyClosedBatches

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

9.10.2. Synchronizer.L2Synchronization.ReprocessFullBatchOnClose

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

9.10.3. Synchronizer.L2Synchronization.CheckLastL2BlockHashOnCloseBatch

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

10. [Sequencer]

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
- Finalizer No object No - Finalizer's specific config properties
- StreamServer No object No - StreamServerCfg is the config for the stream server

10.1. Sequencer.DeletePoolTxsL1BlockConfirmations

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

10.2. Sequencer.DeletePoolTxsCheckInterval

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"

10.3. Sequencer.TxLifetimeCheckInterval

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"

10.4. Sequencer.TxLifetimeMax

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"

10.5. Sequencer.LoadPoolTxsCheckInterval

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"

10.6. Sequencer.StateConsistencyCheckInterval

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"

10.7. [Sequencer.Finalizer]

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
- 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

10.7.1. Sequencer.Finalizer.ForcedBatchesTimeout

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"

10.7.2. Sequencer.Finalizer.NewTxsWaitInterval

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"

10.7.3. Sequencer.Finalizer.ResourceExhaustedMarginPct

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

10.7.4. Sequencer.Finalizer.ForcedBatchesL1BlockConfirmations

Type: : integer

Default: 64

Description: ForcedBatchesL1BlockConfirmations is number of blocks to consider GER final

Example setting the default value (64):

[Sequencer.Finalizer]
ForcedBatchesL1BlockConfirmations=64

10.7.5. Sequencer.Finalizer.L1InfoTreeL1BlockConfirmations

Type: : integer

Default: 64

Description: L1InfoTreeL1BlockConfirmations is number of blocks to consider L1InfoRoot final

Example setting the default value (64):

[Sequencer.Finalizer]
L1InfoTreeL1BlockConfirmations=64

10.7.6. Sequencer.Finalizer.ForcedBatchesCheckInterval

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"

10.7.7. Sequencer.Finalizer.L1InfoTreeCheckInterval

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"

10.7.8. Sequencer.Finalizer.BatchMaxDeltaTimestamp

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"

10.7.9. Sequencer.Finalizer.L2BlockMaxDeltaTimestamp

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"

10.7.10. Sequencer.Finalizer.StateRootSyncInterval

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"

10.7.11. Sequencer.Finalizer.HaltOnBatchNumber

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

10.7.12. Sequencer.Finalizer.SequentialBatchSanityCheck

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

10.7.13. Sequencer.Finalizer.SequentialProcessL2Block

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

10.7.14. [Sequencer.Finalizer.Metrics]

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
10.7.14.1. Sequencer.Finalizer.Metrics.Interval

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"
10.7.14.2. Sequencer.Finalizer.Metrics.EnableLog

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

10.8. [Sequencer.StreamServer]

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

10.8.1. Sequencer.StreamServer.Port

Type: : integer

Default: 0

Description: Port to listen on

Example setting the default value (0):

[Sequencer.StreamServer]
Port=0

10.8.2. Sequencer.StreamServer.Filename

Type: : string

Default: ""

Description: Filename of the binary data file

Example setting the default value (""):

[Sequencer.StreamServer]
Filename=""

10.8.3. Sequencer.StreamServer.Version

Type: : integer

Default: 0

Description: Version of the binary data file

Example setting the default value (0):

[Sequencer.StreamServer]
Version=0

10.8.4. Sequencer.StreamServer.ChainID

Type: : integer

Default: 0

Description: ChainID is the chain ID

Example setting the default value (0):

[Sequencer.StreamServer]
ChainID=0

10.8.5. Sequencer.StreamServer.Enabled

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

10.8.6. [Sequencer.StreamServer.Log]

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 - -
10.8.6.1. Sequencer.StreamServer.Log.Environment

Type: : enum (of string)

Default: ""

Example setting the default value (""):

[Sequencer.StreamServer.Log]
Environment=""

Must be one of:

  • "production"
  • "development"
10.8.6.2. Sequencer.StreamServer.Log.Level

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"
10.8.6.3. Sequencer.StreamServer.Log.Outputs

Type: : array of string

10.8.7. Sequencer.StreamServer.UpgradeEtrogBatchNumber

Type: : integer

Default: 0

Description: UpgradeEtrogBatchNumber is the batch number of the upgrade etrog

Example setting the default value (0):

[Sequencer.StreamServer]
UpgradeEtrogBatchNumber=0

11. [SequenceSender]

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

11.1. SequenceSender.WaitPeriodSendSequence

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"

11.2. SequenceSender.LastBatchVirtualizationTimeMaxWaitPeriod

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"

11.3. SequenceSender.L1BlockTimestampMargin

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"

11.4. SequenceSender.MaxTxSizeForL1

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

11.5. SequenceSender.SenderAddress

Type: : array of integer Description: SenderAddress defines which private key the eth tx manager needs to use to sign the L1 txs

11.6. SequenceSender.L2Coinbase

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"

11.7. [SequenceSender.PrivateKey]

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

11.7.1. SequenceSender.PrivateKey.Path

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"

11.7.2. SequenceSender.PrivateKey.Password

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"

11.8. SequenceSender.ForkUpgradeBatchNumber

Type: : integer

Default: 0

Description: Batch number where there is a forkid change (fork upgrade)

Example setting the default value (0):

[SequenceSender]
ForkUpgradeBatchNumber=0

11.9. SequenceSender.GasOffset

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

11.10. SequenceSender.MaxBatchesForL1

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

12. [Aggregator]

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

12.1. Aggregator.Host

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"

12.2. Aggregator.Port

Type: : integer

Default: 50081

Description: Port for the grpc server

Example setting the default value (50081):

[Aggregator]
Port=50081

12.3. Aggregator.RetryTime

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"

12.4. Aggregator.VerifyProofInterval

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"

12.5. Aggregator.ProofStatePollingInterval

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"

12.6. Aggregator.TxProfitabilityCheckerType

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"

12.7. [Aggregator.TxProfitabilityMinReward]

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

12.8. Aggregator.IntervalAfterWhichBatchConsolidateAnyway

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"

12.9. Aggregator.ChainID

Type: : integer

Default: 0

Description: ChainID is the L2 ChainID provided by the Network Config

Example setting the default value (0):

[Aggregator]
ChainID=0

12.10. Aggregator.ForkId

Type: : integer

Default: 0

Description: ForkID is the L2 ForkID provided by the Network Config

Example setting the default value (0):

[Aggregator]
ForkId=0

12.11. Aggregator.SenderAddress

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=""

12.12. Aggregator.CleanupLockedProofsInterval

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"

12.13. Aggregator.GeneratingProofCleanupThreshold

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"

12.14. Aggregator.GasOffset

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

12.15. Aggregator.UpgradeEtrogBatchNumber

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

12.16. Aggregator.SettlementBackend

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"

12.17. Aggregator.AggLayerTxTimeout

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"

12.18. Aggregator.AggLayerURL

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"

12.19. [Aggregator.SequencerPrivateKey]

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

12.19.1. Aggregator.SequencerPrivateKey.Path

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"

12.19.2. Aggregator.SequencerPrivateKey.Password

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"

12.20. Aggregator.BatchProofL1BlockConfirmations

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

13. [NetworkConfig]

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

13.1. [NetworkConfig.l1Config]

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

13.1.1. NetworkConfig.l1Config.chainId

Type: : integer

Default: 0

Description: Chain ID of the L1 network

Example setting the default value (0):

[NetworkConfig.l1Config]
chainId=0

13.1.2. NetworkConfig.l1Config.polygonZkEVMAddress

Type: : array of integer Description: ZkEVMAddr Address of the L1 contract polygonZkEVMAddress

13.1.3. NetworkConfig.l1Config.polygonRollupManagerAddress

Type: : array of integer Description: RollupManagerAddr Address of the L1 contract

13.1.4. NetworkConfig.l1Config.polTokenAddress

Type: : array of integer Description: PolAddr Address of the L1 Pol token Contract

13.1.5. NetworkConfig.l1Config.polygonZkEVMGlobalExitRootAddress

Type: : array of integer Description: GlobalExitRootManagerAddr Address of the L1 GlobalExitRootManager contract

13.2. [NetworkConfig.Genesis]

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

13.2.1. NetworkConfig.Genesis.RollupBlockNumber

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

13.2.2. NetworkConfig.Genesis.RollupManagerBlockNumber

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

13.2.3. NetworkConfig.Genesis.Root

Type: : array of integer Description: Root hash of the genesis block

13.2.4. NetworkConfig.Genesis.Actions

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.
13.2.4.1. [NetworkConfig.Genesis.Actions.Actions items]

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 - -
13.2.4.1.1. NetworkConfig.Genesis.Actions.Actions items.address

Type: : string

13.2.4.1.2. NetworkConfig.Genesis.Actions.Actions items.type

Type: : integer

13.2.4.1.3. NetworkConfig.Genesis.Actions.Actions items.storagePosition

Type: : string

13.2.4.1.4. NetworkConfig.Genesis.Actions.Actions items.bytecode

Type: : string

13.2.4.1.5. NetworkConfig.Genesis.Actions.Actions items.key

Type: : string

13.2.4.1.6. NetworkConfig.Genesis.Actions.Actions items.value

Type: : string

13.2.4.1.7. NetworkConfig.Genesis.Actions.Actions items.root

Type: : string

14. [L2GasPriceSuggester]

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 - -

14.1. L2GasPriceSuggester.Type

Type: : string

Default: "follower"

Example setting the default value ("follower"):

[L2GasPriceSuggester]
Type="follower"

14.2. L2GasPriceSuggester.DefaultGasPriceWei

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

14.3. L2GasPriceSuggester.MaxGasPriceWei

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

14.4. [L2GasPriceSuggester.MaxPrice]

Type: : object

14.5. [L2GasPriceSuggester.IgnorePrice]

Type: : object

14.6. L2GasPriceSuggester.CheckBlocks

Type: : integer

Default: 0

Example setting the default value (0):

[L2GasPriceSuggester]
CheckBlocks=0

14.7. L2GasPriceSuggester.Percentile

Type: : integer

Default: 0

Example setting the default value (0):

[L2GasPriceSuggester]
Percentile=0

14.8. L2GasPriceSuggester.UpdatePeriod

Title: Duration

Type: : string

Default: "10s"

Examples:

"1m"
"300ms"

Example setting the default value ("10s"):

[L2GasPriceSuggester]
UpdatePeriod="10s"

14.9. L2GasPriceSuggester.CleanHistoryPeriod

Title: Duration

Type: : string

Default: "1h0m0s"

Examples:

"1m"
"300ms"

Example setting the default value ("1h0m0s"):

[L2GasPriceSuggester]
CleanHistoryPeriod="1h0m0s"

14.10. L2GasPriceSuggester.CleanHistoryTimeRetention

Title: Duration

Type: : string

Default: "5m0s"

Examples:

"1m"
"300ms"

Example setting the default value ("5m0s"):

[L2GasPriceSuggester]
CleanHistoryTimeRetention="5m0s"

14.11. L2GasPriceSuggester.Factor

Type: : number

Default: 0.15

Example setting the default value (0.15):

[L2GasPriceSuggester]
Factor=0.15

15. [Executor]

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 - -

15.1. Executor.URI

Type: : string

Default: "zkevm-prover:50071"

Example setting the default value ("zkevm-prover:50071"):

[Executor]
URI="zkevm-prover:50071"

15.2. Executor.MaxResourceExhaustedAttempts

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

15.3. Executor.WaitOnResourceExhaustion

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"

15.4. Executor.MaxGRPCMessageSize

Type: : integer

Default: 100000000

Example setting the default value (100000000):

[Executor]
MaxGRPCMessageSize=100000000

16. [MTClient]

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.

16.1. MTClient.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"

17. [Metrics]

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

17.1. Metrics.Host

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"

17.2. Metrics.Port

Type: : integer

Default: 9091

Description: Port is the port to bind the metrics server

Example setting the default value (9091):

[Metrics]
Port=9091

17.3. Metrics.Enabled

Type: : boolean

Default: false

Description: Enabled is the flag to enable/disable the metrics server

Example setting the default value (false):

[Metrics]
Enabled=false

17.4. Metrics.ProfilingHost

Type: : string

Default: ""

Description: ProfilingHost is the address to bind the profiling server

Example setting the default value (""):

[Metrics]
ProfilingHost=""

17.5. Metrics.ProfilingPort

Type: : integer

Default: 0

Description: ProfilingPort is the port to bind the profiling server

Example setting the default value (0):

[Metrics]
ProfilingPort=0

17.6. Metrics.ProfilingEnabled

Type: : boolean

Default: false

Description: ProfilingEnabled is the flag to enable/disable the profiling server

Example setting the default value (false):

[Metrics]
ProfilingEnabled=false

18. [EventLog]

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

18.1. [EventLog.DB]

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.

18.1.1. EventLog.DB.Name

Type: : string

Default: ""

Description: Database name

Example setting the default value (""):

[EventLog.DB]
Name=""

18.1.2. EventLog.DB.User

Type: : string

Default: ""

Description: Database User name

Example setting the default value (""):

[EventLog.DB]
User=""

18.1.3. EventLog.DB.Password

Type: : string

Default: ""

Description: Database Password of the user

Example setting the default value (""):

[EventLog.DB]
Password=""

18.1.4. EventLog.DB.Host

Type: : string

Default: ""

Description: Host address of database

Example setting the default value (""):

[EventLog.DB]
Host=""

18.1.5. EventLog.DB.Port

Type: : string

Default: ""

Description: Port Number of database

Example setting the default value (""):

[EventLog.DB]
Port=""

18.1.6. EventLog.DB.EnableLog

Type: : boolean

Default: false

Description: EnableLog

Example setting the default value (false):

[EventLog.DB]
EnableLog=false

18.1.7. EventLog.DB.MaxConns

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

19. [HashDB]

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.

19.1. HashDB.Name

Type: : string

Default: "prover_db"

Description: Database name

Example setting the default value ("prover_db"):

[HashDB]
Name="prover_db"

19.2. HashDB.User

Type: : string

Default: "prover_user"

Description: Database User name

Example setting the default value ("prover_user"):

[HashDB]
User="prover_user"

19.3. HashDB.Password

Type: : string

Default: "prover_pass"

Description: Database Password of the user

Example setting the default value ("prover_pass"):

[HashDB]
Password="prover_pass"

19.4. HashDB.Host

Type: : string

Default: "zkevm-state-db"

Description: Host address of database

Example setting the default value ("zkevm-state-db"):

[HashDB]
Host="zkevm-state-db"

19.5. HashDB.Port

Type: : string

Default: "5432"

Description: Port Number of database

Example setting the default value ("5432"):

[HashDB]
Port="5432"

19.6. HashDB.EnableLog

Type: : boolean

Default: false

Description: EnableLog

Example setting the default value (false):

[HashDB]
EnableLog=false

19.7. HashDB.MaxConns

Type: : integer

Default: 200

Description: MaxConns is the maximum number of connections in the pool.

Example setting the default value (200):

[HashDB]
MaxConns=200

20. [State]

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

20.1. State.MaxCumulativeGasUsed

Type: : integer

Default: 0

Description: MaxCumulativeGasUsed is the max gas allowed per batch

Example setting the default value (0):

[State]
MaxCumulativeGasUsed=0

20.2. State.ChainID

Type: : integer

Default: 0

Description: ChainID is the L2 ChainID provided by the Network Config

Example setting the default value (0):

[State]
ChainID=0

20.3. State.ForkIDIntervals

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

20.3.1. [State.ForkIDIntervals.ForkIDIntervals items]

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 - -
20.3.1.1. State.ForkIDIntervals.ForkIDIntervals items.FromBatchNumber

Type: : integer

20.3.1.2. State.ForkIDIntervals.ForkIDIntervals items.ToBatchNumber

Type: : integer

20.3.1.3. State.ForkIDIntervals.ForkIDIntervals items.ForkId

Type: : integer

20.3.1.4. State.ForkIDIntervals.ForkIDIntervals items.Version

Type: : string

20.3.1.5. State.ForkIDIntervals.ForkIDIntervals items.BlockNumber

Type: : integer

20.4. State.MaxResourceExhaustedAttempts

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

20.5. State.WaitOnResourceExhaustion

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"

20.6. State.ForkUpgradeBatchNumber

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

20.7. State.ForkUpgradeNewForkId

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

20.8. [State.DB]

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.

20.8.1. State.DB.Name

Type: : string

Default: "state_db"

Description: Database name

Example setting the default value ("state_db"):

[State.DB]
Name="state_db"

20.8.2. State.DB.User

Type: : string

Default: "state_user"

Description: Database User name

Example setting the default value ("state_user"):

[State.DB]
User="state_user"

20.8.3. State.DB.Password

Type: : string

Default: "state_password"

Description: Database Password of the user

Example setting the default value ("state_password"):

[State.DB]
Password="state_password"

20.8.4. State.DB.Host

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"

20.8.5. State.DB.Port

Type: : string

Default: "5432"

Description: Port Number of database

Example setting the default value ("5432"):

[State.DB]
Port="5432"

20.8.6. State.DB.EnableLog

Type: : boolean

Default: false

Description: EnableLog

Example setting the default value (false):

[State.DB]
EnableLog=false

20.8.7. State.DB.MaxConns

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

20.9. [State.Batch]

Type: : object Description: Configuration for the batch constraints

Property Pattern Type Deprecated Definition Title/Description
- Constraints No object No - -

20.9.1. [State.Batch.Constraints]

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 - -
20.9.1.1. State.Batch.Constraints.MaxTxsPerBatch

Type: : integer

Default: 300

Example setting the default value (300):

[State.Batch.Constraints]
MaxTxsPerBatch=300
20.9.1.2. State.Batch.Constraints.MaxBatchBytesSize

Type: : integer

Default: 120000

Example setting the default value (120000):

[State.Batch.Constraints]
MaxBatchBytesSize=120000
20.9.1.3. State.Batch.Constraints.MaxCumulativeGasUsed

Type: : integer

Default: 1125899906842624

Example setting the default value (1125899906842624):

[State.Batch.Constraints]
MaxCumulativeGasUsed=1125899906842624
20.9.1.4. State.Batch.Constraints.MaxKeccakHashes

Type: : integer

Default: 2145

Example setting the default value (2145):

[State.Batch.Constraints]
MaxKeccakHashes=2145
20.9.1.5. State.Batch.Constraints.MaxPoseidonHashes

Type: : integer

Default: 252357

Example setting the default value (252357):

[State.Batch.Constraints]
MaxPoseidonHashes=252357
20.9.1.6. State.Batch.Constraints.MaxPoseidonPaddings

Type: : integer

Default: 135191

Example setting the default value (135191):

[State.Batch.Constraints]
MaxPoseidonPaddings=135191
20.9.1.7. State.Batch.Constraints.MaxMemAligns

Type: : integer

Default: 236585

Example setting the default value (236585):

[State.Batch.Constraints]
MaxMemAligns=236585
20.9.1.8. State.Batch.Constraints.MaxArithmetics

Type: : integer

Default: 236585

Example setting the default value (236585):

[State.Batch.Constraints]
MaxArithmetics=236585
20.9.1.9. State.Batch.Constraints.MaxBinaries

Type: : integer

Default: 473170

Example setting the default value (473170):

[State.Batch.Constraints]
MaxBinaries=473170
20.9.1.10. State.Batch.Constraints.MaxSteps

Type: : integer

Default: 7570538

Example setting the default value (7570538):

[State.Batch.Constraints]
MaxSteps=7570538
20.9.1.11. State.Batch.Constraints.MaxSHA256Hashes

Type: : integer

Default: 1596

Example setting the default value (1596):

[State.Batch.Constraints]
MaxSHA256Hashes=1596

20.10. State.MaxLogsCount

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

20.11. State.MaxLogsBlockRange

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

20.12. State.MaxNativeBlockHashBlockRange

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

20.13. State.AvoidForkIDInMemory

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