github 0xPolygonHermez/zkevm-node v0.5.7

latest releases: v0.7.3, v0.7.3-RC1, v0.7.2...
7 months ago

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)

Don't miss a new zkevm-node release

NewReleases is sending notifications on new releases.