Releases: 0xPolygonHermez/zkevm-node
Releases · 0xPolygonHermez/zkevm-node
v0.6.2
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
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
v0.6.0
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
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
andtotalDifficulty
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
v0.5.11
v0.5.10
v0.5.9
v0.5.8
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
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 rootblockHashL1
: blockHash of the L1 networkminTimestamp
: 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 transactionsdeltaTimestamp
: time to add to previous block in order to compute the current block timestampindexL1InfoTree
: 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
- header
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) assequential
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)