Skip to content

Releases: 0xPolygonHermez/zkevm-node

v0.7.0

14 Jun 17:25
bdeddb3
Compare
Choose a tag to compare

Compatible versions:

Changelog

RPC

  • Remove synchronizer dependency from eth-tx-manager when confirming a monitored transaction (#3677)
  • Remove creation of DB transaction for endpoints that only executes readonly DB queries (#3628)
  • Add optimistic gas computation while estimating gas (#3653)
  • Add new TxFeeCap configuration parameter which represents the global transaction fee (price * gaslimit) cap for send-transaction variants. The unit is ether and the default value is 1 (0 means no cap). This configuration parameter only affects to the trusted node (#3611)

[Pool]
TxFeeCap = 1.0

Synchronizer

  • Add new configuration parameter to specify if the synchronization from L2 is enabled (#3641)

[Synchronizer.L2Synchronization]
Enabled = true

Sequencer

  • New datastream format (#3597, #3608, #3612, #3615, #3617, #3620)
  • Add write timemout for datastream client connections (#3690). This timeout can be configured in the following configuration parameter:

[Sequencer.StreamServer]
WriteTimeout = "5s"

  • Fix use of L2Coinbase address configured in SequenceSender.L2Coinbase parameter instead of use the sequencer address, since these 2 addresses can be different (#3642)
  • Use geth block hash calculation for L2 blocks in datastream (#3661)
  • Add delay when getting storedFlushId from the executor/hashdb (#3625). This delay can be defined in the following configuration parameter:

[Sequencer.Finalizer]
FlushIdCheckInterval = "50ms"

Sequence sender

  • Remove synchronization with virtual state (#3666)
  • Add L1 block confirmations to consider a sequence as confirmed (#3666). The number of L1 block confirmations can be defined in the following configuration parameter:

[SequenceSender]
SequenceL1BlockConfirmations = 32

v0.6.8

29 May 12:56
eb155ae
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.6.8 is a patch-release fixing some issues found in v0.6.7

Sequencer

  • Do fatal when datastream channel is full (workaround to fix datastream blocking issue) (#3650)
  • Add delay when getting storedFlushId from the executor/hashdb (#3651)

v0.6.7

07 May 09:59
f34d60a
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.6.7 is a patch-release fixing some issues found in v0.6.6

Synchronizer

  • Fix timestamp error when syncing a batch from L1 and the previous one was synced from L2 (#3614)
  • Fix updating GER when syncing a batch from L2 when GER changes again before closing the batch (#3599)
  • Fix log (#3595)

Sequencer

  • New reprocess mechanism when processing L2 blocks in parallel in case an unexpected executor error happens when processing the L2 block (e.g. OOC) (#3604)
  • Removes waiting to close wip batch to open a new one, that allows to increase sequencer performance (#3604)
  • Added new config parameter that allows specifiy an interval time to synchronize stateroot of the "tx-by-tx" and "L2 block" processes (#3604)

[Sequencer.Finalizer]
StateRootSyncInterval = "3600s"

  • Fix batch number field when sending L2 block entry in datastreamer (#3616)

v0.6.6

24 Apr 12:48
05a4826
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.6.6 is a patch-release fixing some issues found in v0.6.5

RPC

  • Add statedb database migration to fix wrong tx index values (#3556)

Synchronizer

  • Improve detection of L1 reorgs and possible inconsistent responses from L1 nodes (#3553)
  • Check L1 blocks perodiocally in background to detect, as soon as possible, L1 reorgs (#3546). The following configuration parameters has been added to configure this feature:

[Synchronizer.L1BlockCheck]
Enable = true
L1SafeBlockPoint = "finalized"
L1SafeBlockOffset = 0
ForceCheckBeforeStart = true
PreCheckEnable = true
L1PreSafeBlockPoint = "safe"
L1PreSafeBlockOffset = 0

  • Stop syncing from L2 after first batch not closed (#3584)
  • Fix panic error when synchronizing from L2 (#3582)

Sequencer

  • Fix adding tx to the worker pool when it matches with tx that is being processed (#3559)
  • Check that GER and index of synced L1InfoRoot matches with values reported from the smartcontract (#3551)

v0.6.5

08 Apr 15:56
64dcff0
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.6.5 is a patch-release fixing some issues found in v0.6.4

RPC

  • Fix deltaTimeStamp and TimestampLimit for eth_call (#3529)
  • Fix sort logs by transaction hash and then by log index (#3476)
  • Fix debug trace to compute effective gas price percentage based on tx execution values (#3503)

Synchronizer

  • Use generic ethereum client for L2 (#3519)
  • Fix reset the L1InfoRoot memory variables when a L1 reorg is detected (#3515)
  • Fix transaction index calculation on receipt (#3500)
  • Syncing block protection to allow syncing only safe, finalized or latest L1 blocks (#3545)
[Synchronizer]
SyncBlockProtection = "safe" # latest, finalized, safe

Sequencer

  • Stop syncing L1inforoot when invalid L1inforoot is detected (L1 block hash mismatch) (#3542)
  • Fix transaction index calculation on receipt (#3500)

v0.6.4

25 Mar 00:39
df539db
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.6.4 supports forkid 9 (Elderberry 2) and fixes some issues found in v0.6.3

RPC

  • Fix debug trace for injected transaction (#3469)
  • Fix debug trace receipt index (#3490)

Synchronizer

  • Permisionless node now checks blockhash of the L2 blocks synced from L1 against trusted node. If the blockhash doesn't match it logs an error and halts the synchornization process (#3442)
  • Fix detecting when a batch is already closed when syncing from L1 ( #3441)
  • Allow to reprocess L1 forkid events when the forkid information already exists in the database (#3451)

Sequencer

  • Add sanity check on checkL1InfoTreeUpdate function to check state L1 blockhash matches ethereum blockhash (#3480)
  • Fix out-of-conters error check (#3484)

Aggregator

  • Fix aggregator l1InfoTree merkle proof calculation (#3491)

v0.6.3

19 Mar 15:53
b65af69
Compare
Choose a tag to compare

Compatible versions:

Changelog

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

RPC

  • Remove unnecessary error log (EXECUTOR_ERROR_NO_ERROR) when estimating gas for a transaction (#3456)

Synchronizer

  • Permisionless node now checks blockhash of the L2 blocks synced from L1 against trusted node. If the blockhash doesn't match it logs an error and halts the synchornization process (#3442)
  • Fix detecting when a batch is already closed when syncing from L1 ( #3441)
  • Allow to reprocess L1 forkid events when the forkid information already exists in the database (#3451)

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