Releases: 0xPolygonHermez/zkevm-node
v0.4.4
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
v0.4.1
v0.4.0
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
- Fix delete failed transactions during pool cleanup (#2733)
- Data streamer improvements and fixes (#2795, #2671, #2642, #2636, #2631, #2614)
- Data streamer tools (#2796, #2717, #2715, #2657, #2647)
- Fix nil evalutation when checking errors returned by the executor (#2548)
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
v0.3.3
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
- Fix releaser d36d1d3
v0.3.2
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
- Fix error when getting the L2 reorg count (#2586)
- Fix nil evaluation (#2547)
- Add data streamer service (#2517, #2577, #2581, #2613, #2629, #2642, #2670)
Other
v0.3.1
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
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
v0.2.5
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). TheL2Coinbase
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 toPrivateKey
(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"