Skip to content

Releases: 0xPolygonHermez/zkevm-node

v0.4.4

12 Dec 17:21
9ef6f20
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.4.4 is a patch-release fixing some issues found in v0.4.2

RPC

  • Review/reduce jRPC logs (#2883)
  • Review/fix estimate gas validations and formulas (#2856)
  • Revert WS logs back to debug level (#2847)
  • Fix tx size check (#2799)

Sequencer

  • Add intermediate state root to data stream (#2893)
  • Storing LocalExitRoot in state.batch on successful transaction processing (#2658)

Other

  • New GER SC event (#2825)

v0.4.2

29 Nov 13:45
b440aee
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.4.2 is a patch-release fixing some issues found in v0.4.1

Sequencer

  • Compute WIP batch during stream delta calculation (#2860)(#2863)
  • Update data streamer library (#2866)

v0.4.1

23 Nov 14:02
a66e1a8
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.4.1 is a patch-release fixing some issues found in v0.4.0

RPC

  • Fix HTTP response header (#2830)

v0.4.0

20 Nov 12:54
6d8cd1e
Compare
Choose a tag to compare

Compatible versions:

Changelog

RPC

  • Improve Websockets performance and stability (#2635 #2757 #2790 #2800)
  • Support for batch tag (earliest, latest,…) (#2673 #2424)
  • New node config param EnableHttpLog to enable/disable logs related to HTTP requests (#2709)

[RPC]
EnableHttpLog = true

  • Improve tracebility adding ContextId parameter to calls to executor (#2575)
  • Now only RPC component will load and refresh blocked addresses (#2501)
  • Add support to eth_coinbase (#2500)
  • Add support to debug_traceBatchByNumber (#2217)
  • Add new endpoint zkevm_getNativeBlockHashesInRange to return the native block hashes (a.k.a state root) (#2661). A new node config parameter has been added to set the max range for block number when querying the endpoint, if zero it means no limit

[RPC]
MaxNativeBlockHashBlockRange = 60000

  • Add limits when creating new filters or getting logs from state. New node config parameters has beed added to specify these limits. 'MaxLogsCount' to set the maximum number of logs that can be returned in a single call, if zero it means no limit. 'MaxLogsBlockRange' to set the max range for block number when querying transactions logs in a single call, if zero it means no limit (#2572)

[RPC]
MaxLogsCount = 10000
MaxLogsBlockRange = 10000

  • Add support to batch requests via HTTP. New config parameters has been added to configure this option. 'BatchRequestsEnabled' to enable/disable the batch requests. 'BatchRequestsLimit' to limit the number of requests into each batch request, if zero it means no limit (#2431)

[RPC]
BatchRequestsEnabled = false
BatchRequestsLimit = 20

  • Add a limit for the content of HTTP requests (#2448)
  • Add WebSocket read limit (#2304). New node config parameter has been added to specity the size of the limit (in bytes)

[RPC.WebSockets]
ReadLimit = 104857600

  • Improve pre-EIP155 check to validate V field (#2327)
  • Fix error checking returned by the executor when debug tracing a block (#2605)
  • Fix debug_traceBlockByHash returning sometimes null value (#2589)
  • Fix trace default values and add condition to define which trace should be returned (#2574)
  • Fix error calling eth_sendRawTransaction using WebSocket (#2385)

Synchronizer

  • Speed up synchronization time requesting blocks in parallel to L1 (#2672, #2504, #2768). The following node config paremeters has been added:

[Synchronizer]
L1SynchronizationMode = "sequential"
[Synchronizer.L1ParallelSynchronization]
MaxClients = 10
MaxPendingNoProcessedBlocks = 25
RequestLastBlockPeriod = "5s"
RequestLastBlockTimeout = "5s"
RequestLastBlockMaxRetries = 3
StatisticsPeriod = "5m"
TimeoutMainLoop = "5m"
RollupInfoRetriesSpacing= "5s"
FallbackToSequentialModeOnSynchronized = false
[Synchronizer.L1ParallelSynchronization.PerformanceWarning]
AceptableInacctivityTime = "5s"
ApplyAfterNumRollupReceived = 10

EthTxManager

  • Fix out of gas and invalid nonce errors (#2329)
  • Improve performance allowing multiple transactions to be monitored in parallel (#2664)
  • Move gas offset from hardcode to new node config parameters (#2664)

[SequenceSender]
GasOffset = 80000
[Aggregator]
GasOffset = 0

Sequencer

Improve effective gas price implementation (#2690 #2652 #2777). The following node config parameters has been added:

[Pool]
[Pool.EffectiveGasPrice]
Enabled = false
L1GasPriceFactor = 0.25
ByteGasCost = 16
ZeroByteGasCost = 4
NetProfit = 1
BreakEvenFactor = 1.1
FinalDeviationPct = 10
L2GasPriceSuggesterFactor = 0.5

Other

  • Refactor state/batch config (#2298).
    The following node config params has beed added:

[State]
[State.Batch]
[State.Batch.Constraints]
MaxTxsPerBatch = 300
MaxBatchBytesSize = 120000
MaxCumulativeGasUsed = 30000000
MaxKeccakHashes = 2145
MaxPoseidonHashes = 252357
MaxPoseidonPaddings = 135191
MaxMemAligns = 236585
MaxArithmetics = 236585
MaxBinaries = 473170
MaxSteps = 7570538

The old [StateDB] section has been moved to [State.DB] section:

[State]
[State.DB]
User = "state_user"
Password = "state_password"
Name = "state_db"
Host = "zkevm-state-db"
Port = "5432"
EnableLog = false
MaxConns = 200

The following node config params has beed deleted:

[RPC]
TraceBatchUseHTTPS = true

[Sequencer]
MaxTxsPerBatch = 300
MaxBatchBytesSize = 120000
MaxCumulativeGasUsed = 30000000
MaxKeccakHashes = 2145
MaxPoseidonHashes = 252357
MaxPoseidonPaddings = 135191
MaxMemAligns = 236585
MaxArithmetics = 236585
MaxBinaries = 473170
MaxSteps = 7570538
[Sequencer.EffectiveGasPrice]
MaxBreakEvenGasPriceDeviationPercentage = 10
L1GasPriceFactor = 0.25
ByteGasCost = 16
MarginFactor = 1
Enabled = false

v0.3.4

08 Nov 18:13
71ad87a
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.3.4 is a patch-release, fixing some issues found in v0.3.3

RPC

  • Fix subscrition mechanism with multithreading support and separation of clients (#2752)

v0.3.3

03 Nov 15:09
d36d1d3
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.3.3 is a patch-release, fixing some issues found in v0.3.2 regarding the data stream feature

Sequencer

  • Update data stream library to latest version cbfb15d
  • Properly handle empty batches with updated global exit root in the data stream fda7f88

Other

v0.3.2

26 Oct 22:00
d35b1d4
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.3.2 is a patch-release, fixing some issues found in v0.3.1

RPC

  • Fix error check returned by the executor when debug tracing a block (#2615)

Synchronizer

  • Avoid halting synchronization on permissionles nodes (#2536)
  • Fix race condition that deletes a batch already virtualized (#2602)

Sequencer

Other

v0.3.1

13 Sep 15:10
45fe1e1
Compare
Choose a tag to compare

Compatible versions:

Changelog

Version v0.3.1 is a patch-release, fixing some issues found in v0.3.0

RPC

  • Fix executor error evaluation (#2544)

Synchronizer

  • Fix forced tx processing with invalid nonce during the trusted synchronization (duplicated key errors) (#2499)
  • Fix updating state.fork_id table when processing L1 event with forkid 2 info (#2511)
  • Avoid to halt syncronization when trusted batch StateRoot root differs from calculated StateRoot (#2546)

Sequencer

  • Fix forced tx processing with invalid RLP (#2488)

Other

  • Fix DecodeHex function to handle odd-length hex strings (#2533)

v0.3.0

28 Aug 15:14
4257f3f
Compare
Choose a tag to compare

Compatible versions:

Changelog

RPC

  • New RPC endpoint for Etherscan that helps them sync faster (#2411)
  • Fix web sockets eth_logs endpoint when filter for a specific topic (#2412)
  • Fix RPC finalize block to consider also L1 block is finalized (#2447)

Synchronizer

  • Store fork ids intervals in DB and get it using chunks of X L1 blocks (#2404). The value for the chunk size (20.000 by default) can be defined in the following config parameter:

[Etherman]
ForkIDChunkSize = 20000

  • Halt Synchronizer if trusted StateRoot differs from calculated StateRoot (#2428)

Sequencer

  • Handling new executor errors (fix unspecified executor error) (#2438)
  • Add forced batches transactions to worker/addrQueue (#2398)
  • Reprocess full batch (sanity check) in parallel (#2425)

v0.2.5

24 Aug 19:40
4a892ab
Compare
Choose a tag to compare

Compatible versions:

Changelog

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

Synchronizer

  • Add check to avoid data inconsistencies in the RPC during the trusted sync caused by DB read replicas (#2387)

Sequencer

  • Sort pending transactions in the pool by gasPrice (instead by efficiency) (#2392). The following node config parameters has been removed (not used anymore):

[Sequencer]
WeightBatchBytesSize = 1
WeightCumulativeGasUsed = 1
WeightKeccakHashes = 1
WeightPoseidonHashes = 1
WeightPoseidonPaddings = 1
WeightMemAligns = 1
WeightArithmetics = 1
WeightBinaries = 1
WeightSteps = 1

[Sequencer.Worker]
ResourceCostMultiplier = 1000

  • Avoid delete an addrQueue struct (ExpireTransactions) if it has pending transactions to be stored in the state database (#2391)

SequencerSender

  • Added L2Coinbase configuration parameter to define the address that will receive the users fees (#2400). The L2Coinbase address can be defined in the following config parameter:

[SequenceSender]
L2Coinbase = "0x0000000000111111111122222222223333333333"

  • PrivateKeys config parameter is now a single value instead of an array of values (#2400). The parameter has been renamed to PrivateKey (in singular, without "s") and brackets characters [ ] (used to specify an array of values) has been removed:

[SequenceSender]
PrivateKey = {Path = "/pk/sequencer.keystore", Password = "aaaaaa"}

  • The following config parameter has been removed from the toml config file (as is not used)(#2400):

[SequenceSender]
SenderAddress="0x0000000000111111111122222222223333333333"