Version 2.2.3 is a stability release. Upgrading is recommended for all RPC operators.
Changed
trace_filternow rejects requests whose toBlock is more than 1000 blocks past fromBlock. The limit can be adjusted with the new--rpc.tracefilterrangeflag (Opera.MaxTraceFilterRangein the configuration file), 0 disables it.- eth_getProof now accepts at most 1024 storage keys per request and rejects malformed storage keys with an invalid params error.
--rpc.log-query-parameter-limitnow also applies toeth_getLogsqueries by blockHash, toeth_newFilterand to logs subscriptions.eth_createAccessListnow stops when its request is cancelled or times out.eth_sendTransaction,eth_signTransaction,eth_fillTransaction,eth_resend,eth_createAccessList,personal_sendTransactionandpersonal_signTransactionnow reject a chainId that does not match the node's, set-code transactions without to or with gasPrice, and blob transactions without to.- The transaction pool now rejects bundle-only transactions that approve no execution plan, more than one execution plan, or only execution plans that have already been processed.
- The transaction pool now evicts bundle-only transactions once all execution plans they approve have been processed, or once they have waited for their bundle for one hour (
TxPool.BundleOnlyLifetimein the configuration file).
Fixed
- Fixed genesis import skipping the bundle history when the genesis contains no retained bundles, which made the node diverge from the network at the next epoch sealing.
- Fixed RPC methods serving a block, its transactions or receipts before the state of that block, which let calls resolving latest miss the effects of a transaction whose receipt had already been returned.
- Fixed
newHeadsandnewPendingTransactionssubscriptions dropping notifications for events occurring right after the subscription was created. - Fixed
debug_traceCall,trace_callandtrace_callManypanicking for unknown blocks instead of reporting header not found. - Fixed
eth_simulateV1panicking for set-code and blob calls without to instead of rejecting them as in transaction execution. - Fixed
dag_getHeadspanicking at epoch boundaries instead of returning an error. - Fixed the transaction pool keeping set-code transactions with invalid authorizations indexed indefinitely, which slowed the pool down over time.
- Fixed a race between node shutdown and connecting peers.