Skip to content

Releases: 0xPolygonHermez/zkevm-node

v0.2.4

21 Aug 15:21
5228ebf
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.2.4 is a patch-release, fixing some issues found in v0.2.1 and adding some minor enhancements

Synchronizer

  • Fix to store batchl2data when a batch is opened to keep db consistent (#2358)
  • Fix "batch already closed" error in permissionless nodes (#2348)

Eth-Tx-Manager

  • Added GasPriceMarginFactor and MaxGasPrice configuration parameters to eth-tx-manager (#2360). 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 make it
    easier to have the txs prioritized in the pool. MaxGasPriceLimit helps to avoid transactions to be sent over a specified
    gas price amount. If the value of this parameter is set to 0 means that there is no limit

[EthTxManager]
GasPriceMarginFactor = 1
MaxGasPriceLimit = 0

Other

  • Rename node/prover config files used in docker compose and release files, so they have the same name in all the environments (#2349)

v0.2.1

27 Jul 19:25
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.2.1 is a patch-release, fixing some issues found in v0.2.0

RPC

  • Do not add tx into the pool if a fatal error in the executor happens during the tx pre-execution (44356c8)

v0.2.0

21 Jul 15:16
6fd4c75
Compare
Choose a tag to compare

Compatible versions:

Changelog:

Version v0.2.0 is a major release that supports the next upcoming zkEVM UPGRADE ForkID5 (also known as Dragon Fruit). Additionally, it includes new features, performance improvements and fixes.

Main features

Sequencer Performance

A flush ID mechanism has been added to improve performance of the sequencer, as it allows the processing of new transactions while previous ones are still being added to the persistence layer.

EffectiveGasPrice implementation ForkID5

The node is able to better adjust the gas price needed for the execution of a transaction so it may try to optimize it. The effective gas price will be depicted in the receipt of the transaction. This functionality will be available when fork 5 is enabled.

Synchronizer Archive Snapshots

Add the ability to generate and restore snapshots of the network so that synchronization for new instances is done faster. See Instructions.

Synchronizer Performance Improvements

Optimizations have been completed to make the synchronization of the network perform faster.

Retry on Exhausted Executor GRPC Resources

In some situations where the executor is under heavy load it may return a resources exhausted error. If this situation happens with this version, the node will retry the execution instead of only returning an error.

MaxGasPrice L2

The gas prices can now be limited to a maximum value to minimize fluctuations and peaks from L1; and in cases where the ‘follower_gas_pricer’ is used.

Stop Sequencer on Batch

This feature makes network upgrades easier and faster by freezing changes on the Virtual State while allowing changes to happen on the Trusted State. This new feature minimizes the time the network is required to be fully stopped.

Components

All hotfixes done on v0.1.4 are included into v0.2.0 (#2255)

RPC

Only return a tx from the pool if tx is in pending status to avoid etherscan to thread invalid or failed transactions as pending (#2273)
Return effective gas price in the receipt of an L2 tx (#2258)
Fix EffectiveGasprice unsigned transactions with ForkID lower than 5 (#2278) ForkID 5

Synchronizer

  • FlushID was added to the Synchronizer (#2287)
  • Fixed the ‘CheckIfSynced’, this was impacting the permissionless synchronization as the synchronizer couldn’t close the batch (#2289)

Sequencer

  • Fixed division by 0 when gasPrice is 0 and [fea2scalar error handling] (#2264)
  • Logs order checked. BlockHash and BlockNumber in the log conversion are fixed (#2280)
  • L2Block timestamp for the first batch is Fixed (#2260)
  • Added missing metric count in the sequencer for expired transactions (#2155)
  • Retry on resource exhausted (#2176). This requires new config parameters:

[Executor]
MaxResourceExhaustedAttempts = 3
WaitOnResourceExhaustion = "1s"

  • Added pool block reason (#2177)
  • Renamed Public to Testnet (#2193)
  • Enabled ForkID to choose correct encoding/decoding txs (#2219)
  • Added effective_gas_price to receipt (#2222)
  • Effective Gas Price Comparison (#2234)
  • New gas price estimation using effectivePercentage, integration of HashDB and ForkID5 Smart Contracts (#2196). This requires new config parameters:

[Pool]
IntervalToRefreshGasPrices = "5s"

[Sequencer]
[Sequencer.EffectiveGasPrice]
MaxBreakEvenGasPriceDeviationPercentage = 10
L1GasPriceFactor = 0.25
ByteGasCost = 16
MarginFactor = 1
Enabled = false

  • Fixed the storing of Closing Reason when receiving a Forced Batch deadline signal (#2256)
  • Fixed L2Blocks timestamp for the first (genesis) batch (#2260)
  • Effective GasPrice refactor and other fixes (#2247)
  • Added a check to skip appending effectivePercentage if current ForkID is lower than 5 ForkID5 (#2275)
  • Added maxL2GasPrice (#2294). This requires new config parameters:

[L2GasPriceSuggester]
MaxGasPriceWei = 0 //Setting it to 0 disables it.

Aggregator

No changes to the Aggregator in this release.

v0.1.4

04 Jul 16:33
a88ddda
Compare
Choose a tag to compare

Compatible versions:

Changelog:

Version v0.1.4 is a patch-release, fixing some issues found in v0.1.3 and adding some minor enhancements

RPC

  • Fixed global pool limit check (GlobalQueue) as it was including “failed” transactions (#2233)
  • Added support to debug_traceBatchByNumber endpoint (#2235)

v0.1.3

26 Jun 14:23
bf00719
Compare
Choose a tag to compare

Compatible versions:

Changelog:

Version v0.1.3 is a patch-release, fixing some issues found in v0.1.2

RPC

  • Max RPC message size is now configurable via the toml config file (#2179). You can define the RPC message size using the following new config parameter (value is in bytes):

[Executor]
MaxGRPCMessageSize = 100000000

  • Added new pool limits, one for the limit of transactions for all accounts in the pool (GlobalQueue) and other for the limit of transactions per account (AccountQueue) (#2189):

[Pool]
GlobalQueue = 1024
AccountQueue = 64

  • Transactions with gas limit over the batch gas limit are now blocked (#2189)
  • Fixed websockets concurrency writes error when calling the endpoints in parallel (#2173)
  • Fixed eth_syncing to return false when node is already synced (#2173)
  • Fixed custom tracer for edge cases containing internal calls that doesn’t increase the step depth for any reason (#2173)
  • Added batch L2 data to the custom endpoint zkevm_getBatchByNumber (#2223)

Synchronizer

  • Fixed synchronization problem that happens when a forced batch is synced via trusted state in permissionless nodes. To fix this the parameter forcedBatchNumber has been added to the custom endpoint zkevm_getBatchByNumber (#2216)

Sequencer

  • Fixed load of the zkCounters values in the function GetNonWIPTxsByStatus (#2210)
  • Fixed decode transaction error in GetWIPBatch function when previous last batch is a forced batch (#2214)

v0.1.2

06 Jun 14:31
c3d0bd4
Compare
Choose a tag to compare

Compatible versions:

Changelog:

Version v0.1.2 is a patch-release, fixing some issues found in v0.1.1:

  • Fixes in call tracers (#2140)
    • Gas used in is not display properly
    • Inside the delegateCall the ether value transfer is not showed properly, also the from is incorrect
    • Some of the calls are returned in a different depth that they should be
  • Increase max GRPC message size (#2159)

v0.1.1

01 Jun 12:44
d1b0d47
Compare
Choose a tag to compare

Compatible versions:

Changelog:

Version v0.1.1 is a patch-release, fixing some issues found in v0.1.0:

  • Bug fixing in forced batches processing (#2149):

    • Fixed saving L2 Blocks for Forced Batches. NewStateRoot was used as previousL2BlockStateRoot parameter of finalizer.storeProcessedTx function instead of the oldStateRoot for the first transaction
    • Fixed check of empty stateRoot. It was checking for empty string instead of zero hash
    • Fixed an error when forced batch numbers received from the channel were not in order
  • Protect DecodeTXs function from a variable overflow that could panic it (#2148)

  • Fixed custom tracers memory reading when memory is smaller than stack values (#2152)

  • Fixed custom tracers internal transaction reverts (#2152)

v0.1.0

26 May 13:26
ac3664d
Compare
Choose a tag to compare

Compatible versions:

Changelog:

  • Completed implementation and testing for forced batch processing (#2093)
  • Fixed bugs in decode txs functions that may fail with forced batches (#2091)
  • Timestamp resolution is now configurable via the toml config file (#2007, #2112). You can define the time in the following config parameter:

[Sequencer.Finalizer]
TimestampResolution = "10s"

  • Storing of closing reason and resources used when closing a batch (#2006)
  • Storing of failed reason for invalid transactions (#1992)
  • Sequence sender is now executed as a separated component (#2051). Config parameters in the toml config file for the sequence sender are moved from the Sequencer section to new SequenceSender section:

[SequenceSender]
WaitPeriodSendSequence = "5s"
LastBatchVirtualizationTimeMaxWaitPeriod = "5s"
MaxTxSizeForL1 = 131072
SenderAddress = "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266"
PrivateKeys = [{Path = "/pk/sequencer.keystore", Password = "testonly"}]

  • New sequence-sender option, for the command line flag --components, that allows to execute the sequence-sender component when running the node (#2051)

  • Sync Info table is now being populated (#2055)

  • Fixed deployment tool/instructions (db permissions) (#2076)

  • Refactor getting forkIDs and verify genesis block number (#2076)

  • The following config parameters has been renamed in the toml config file (#2068):

[Sequencer.Finalizer]
GERDeadlineTimeoutInSec -> GERDeadlineTimeout
ForcedBatchDeadlineTimeoutInSec -> ForcedBatchDeadlineTimeout
SleepDurationInMs -> SleepDuration

[RPC]
ReadTimeoutInSec -> ReadTimeout
WriteTimeoutInSec -> WriteTimeout

  • The following config parameters has been removed from the toml config file (as are not used)(#2083, #2007, #2051):

[RPC]
ChainID
DefaultSenderAddress

[Sequencer]
WaitPeriodSendSequence
LastBatchVirtualizationTimeMaxWaitPeriod
MaxTxSizeForL1

[Sequencer.Finalizer]
SendingToL1DeadlineTimeoutInSec
SenderAddress
PrivateKeys

  • The default value for some config parameters (default.go and toml config files) has been changed (#2083, #2090):

[Pool]
MaxTxBytesSize=100132
MaxTxDataBytesSize=100000

[RPC]
MaxRequestsPerIPAndSecond = 500

[RPC.WebSockets]
Enabled = true
Host = "0.0.0.0"
Port = 8546

[Synchronizer]
SyncInterval = "1s"

  • The command line flag --genesis has been removed and replaced with --network (#1999). The values for this new flag can be testnet, mainnet or custom. If custom is used then you need to specify the genesis file in the flag --custom-network-file
  • Change the way the methods eth_estimateGas and eth_call return the response when the response contains an error related to the transaction, this will avoid generating error logs. (#2096)
  • Fixed how the custom tracer handles sub calls (DELEGATECALL). (#2115)

v0.0.8

04 May 13:34
Compare
Choose a tag to compare

Changelog

  • 173d0d6 split debug race e2e tests into different ci groups
  • 57daa12 fix trace block response for custom tracers

v0.0.7

28 Apr 08:01
1ffaef7
Compare
Choose a tag to compare

Changelog