Skip to content

v0.4.0

Compare
Choose a tag to compare
@int-bot int-bot released this 20 Nov 12:54
· 424 commits to develop since this release
6d8cd1e

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