Skip to content

Releases: 0xPolygonHermez/zkevm-node

v0.6.2

12 Mar 09:02
b184e2b
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.6.2 is a patch-release fixing some issues found in v0.6.1

RPC

  • Set SequencerNodeURI config parameter to empty value in network config files to get node URI from the SC (#3430)

Synchronizer

  • Use gas limit returned by the executor for Elderberry transaction receipts (#3428, #3424)
  • Fix CumulativeGasUsed in Elderberry transaction receipts (#3425, #3424)
  • Remove intermediate state root from Elderbery transaction receipts (#3424, #3449)
  • Use transaction status returned form the Executor for Elderberry transaction receipts (#3424)

Sequencer

  • Use gas limit returned by the executor for Elderberry transaction receipts (#3428, #3424)
  • Fix CumulativeGasUsed in Elderberry transaction receipts (#3425, #3424)
  • Remove intermediate state root from Elderbery transaction receipts (#3424, #3449)
  • Use transaction status returned form the Executor for Elderberry transaction receipts (#3424)

v0.6.1

01 Mar 10:40
fe9b257
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.6.1 is a patch-release fixing some issues found in v0.6.0

RPC

  • Fix timestamp for batch number 0 (#3364)
  • Fix checking executor no error (EXECUTOR_ERROR_NO_ERROR) when processing unsigned transactions (#3365)

Synchronizer

  • Fix ignore ForkID L1 events from another rollup (#3383)
  • New config parameter to check when closing a batch that last L2 block hash matches with the reported from the trusted node (#3406)

[Synchronizer.L2Synchronization]
CheckLastL2BlockHashOnCloseBatch = true

  • Check GlobalExitRoot when synchronizing WIP bach on trusted node (delta changes on WIP batch) (#3384)
  • New config parameter to enable/disable synchronization of empty batches (#3384)

[Synchronizer.L2Synchronization]
AcceptEmptyClosedBatches = false

  • New config parameter to reprocess of full WIP batch after it's closed in the trusted node (#3384)

[Synchronizer.L2Synchronization]
ReprocessFullBatchOnClose = true

  • Store batch closing reason when syncing a batch (#3366)

Sequencer

  • Add metrics and performance estimation (#3380, #3385, #3396, #3398, #3401)
  • Get intermediate state root from receipts in datastreamer (#3400)
  • Fix checking if poseidon hashes counter has been exhausted for the WIP batch (#3393)

v0.6.0

23 Feb 16:03
54b7fcd
Compare
Choose a tag to compare

Compatible versions:

Changelog

RPC

Synchronizer

  • Elderberry fork support (#3301)
  • Remove compatibility with Incaberry fork for permissionless nodes (#3218)
  • Store batch closing reason (#3245)
  • Add selector for trusted sync to prevent from executing from an old trusted node (#3336)
  • Fix initial sequenced batch event (#3347)
  • Decode Etrog processBatches using Etrog contract (#3360)

Sequencer

Sequence sender

v0.5.13

21 Feb 15:11
6c864ad
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.5.13 is a patch-release fixing some issues found in v0.5.12

RPC

  • Add new zkevm_estimateGasPrice endpoint that returns the estimate gas price for a given transaction (#3327)
  • Add new zkevm_estimateCounters endpoint that returns the estimate use of ZK counters for a given transaction (#3260)
  • Fix return null value for hash, miner, nonce and totalDifficulty fields only for pending blocks (#3274
  • Fix transaction index field provided in the transaction log responses (#3303)
  • Fix set SkipVerifyL1InfoRoot as true when debug trace needs to provide the L1 InfoTree data (#3321)

Aggregator

  • Wait BatchProofL1BlockConfirmations L1 block confirmations before to generate proof of a virtual batch (#3302). New config parameter has been added:

[Aggregator]
BatchProofL1BlockConfirmations = 2

v0.5.12

18 Feb 00:09
8cb1842
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.5.12 is a patch-release fixing some issues found in v0.5.11

RPC

  • Fix L2 block deltaTimestamp and L1InfoTreeIndex when getting traces (debug) of a given transaction (#3291)

Sequencer

  • Fix checkStateInconsistency function when starting sequencer (#3294)
  • Fix delete empty addrQueue from worker (#3295)

v0.5.11

16 Feb 18:42
5a1782f
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.5.11 is a patch-release fixing some issues found in v0.5.10

RPC

  • Fix OOG in internal gas estimation (#3280, #3277)
  • Check unsupported precompiles (#3264)

Synchronizer

  • Close WIP batch when requested by executor (#3276)

Sequencer

  • Close WIP batch when requested by executor (#3271, #3272)
  • Check unsupported precompiles (#3264)
  • Fix log when error on batch sanity check (#3287)

v0.5.10

13 Feb 15:50
2f1ecc4
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.5.10 is a patch-release fixing some issues found in v0.5.9

Sequencer

  • Fix executor error handling when processing a single transaction (#3266)

v0.5.9

13 Feb 14:45
9828977
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.5.9 is a patch-release fixing some issues found in v0.5.8

Sequencer

  • Fix "out-of-counters" at node level. After executing a transaction it will check if any of the zk-counters used by the transaction are above the limit of the zk-counter in a batch (#3263)

v0.5.8

08 Feb 19:27
0e47e24
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.5.8 is a patch-release adding minor enhancements and fixing some issues found in v0.5.7

Sequencer

  • Optimize transaction pool purge process (#3240)
  • Send global exit root at L2 block level in data streamer (#3238)
  • Do fatal for some finalizer halt events instead to keep sequencer halting (#3240)

Sequence sender

  • Sequence batch only when sequencer sanity check is done (#3240)

v0.5.7

08 Feb 12:54
3d53b55
Compare
Choose a tag to compare

Compatible versions:

Etrog changelog

Precompiled

  • add support for the following precompiled smart contracts
    • sha256
    • modexp
    • ecadd
    • ecmul
    • ecpairing

L1InfoTree

  • merkle tree that contains historical data
  • saved in the smart contracts
  • each leaf contains the following parameters:
    • ger: global exit root
    • blockHashL1: blockHash of the L1 network
    • minTimestamp: minimum timestamp

changeL2Block transaction

  • add a marker in the batch data which allows to change L2Block inside a batch
  • format:
fields: [type | deltaTimestamp | indexL1InfoTree ]
bytes:  [  1  |       4        |         4       ]
  • where
    • type: transaction type to allow differentiate between preEIP155 and legacy transactions
    • deltaTimestamp: time to add to previous block in order to compute the current block timestamp
    • indexL1InfoTree: leaf index in the l1InfoTree. The index will determine the paraneters to insert into L2

BlockInfoTree

  • SMT to include all the block data while the L2 Block is being processed
  • Allow to verify data returned by the RPC
  • Data included in the BlockInfoTree:
    • header
      • previousBlockHash
      • coinbaseL2
      • blockNumber
      • gasLimit
      • timestamp
      • ger
      • blockHashL1
      • gasUSed
    • each transaction processed
      • l2TxHash
      • status
      • cumulativeGasUsed
      • logsData

Changelog from v0.5.0 to v0.5.7

RPC

  • Fix L2 block gas limit using the value returned by the executor (#3190)
  • Fix eth_syncing endpoint as it was not returning the expected values (#3165)
  • Get forkid information from state DB each time is needed instead to use the forkid information stored in memory when starting (#3196, #3197)
  • Fix GetL2TxHashByTxHash function for transactions prior to Etrog fork (#3209)

Synchronizer

  • Fix handling ROM errors (#3177)
  • Fix getting URL from contract in compatibility mode (#3191)
  • Set syncing mode (L1SynchronizationMode config parameter) as sequential by default (#3191)
  • Fix syncing trusted state for batches previous to Etrog fork (#3175)
  • Fix some warnings when syncing a closed trusted batch (#3169)
  • Discard L1InfoTree cache when a L1 reorg happens. Build L1InfoTree cache only when needed (#3201)
  • Fix panic error when a batch must be closed and the process batch request fails (#3206)
  • Fix store GER in batch table when receiving UpdateEtrogSequence event (#3234)

Sequencer

  • Fix parentHash when storing a new L2 block (#3171)
  • Fix intermediate state root in data streamer for L2 blocks sent from the sequencer (#3192, #3224)

Sequence sender

  • Add sanity check: timestamp of the last L2 block in the sequence is also L1BlockTimestampMargin seconds behind the current time "now" (#3181)
  • Fix synced process to check first if the last virtual batch number was equal to the last sequenced batch number in the L1 smart contract (#3188)
  • Add retries in isSynced function when last virtual batch is greater than last SC sequenced batch to confirm this scenario. If after the retries the last virtual batch continues been greater than the last SC sequenced batch the Sequence sender will halt (#3225)

Other

  • Update Geth version to v1.13.11 (#3180)
  • Fix L2 block gas limit to 2**50 (1125899906842624) (#3219) (#3220)
  • Config section [state.batch] has been removed from node config files (environments) used when deploying a permissionless node (#3230)