Releases: erigontech/erigon
Releases · erigontech/erigon
2022.03.02-beta
- Upgrade to new version of MDBX with a workaround for incoherence flaw of Linux unified page/buffer cache.
- Fix for the bug in
debug_traceBlock, previously leading to incorrect results. Thanks to external contributor cannium. - Fix for the tx pool cost check for account balance
- Enable subscription to event logs in
eth_subscribemethod when working via WebSockets - Updates to pre-verified hashes for Mainnet, Ropsten, Sepolia, change of skip analysis optimisation parameter
2022.03.01-beta
- Fixes for
erigon_getBlockByTimestampRPC method - Add timings of the forward (not only unwind) stages into the summary of timings at the end of the stage sync cycle.
- Allow any origins to call debug/metrics/prometheus
- Allow usage of
--miner.sigfileand--miner.etherbasetogether (they were mutually exclusive by mistake before) - Fixes for p2p peer discovery - should speed up getting new peers when starting from scratch
- New mainnet bootnodes
- Enable storage overrides for
debug_traceCallRPC method - Allow
eth_callRPC method to use contract address as “from” field - Updates to pre-verified hashes for Mainnet, Ropsten, change of skip analysis optimisation parameter
2022.02.04-beta
- Optimisation for
eth_getStorageAtandeth_getBalanceto use current plain state and state cache (if available) when executed on “latest” - Automatic detection of “latest” (and appropriate use of plain state and state cache) even if numerical block number is specified, for RPC queries like
eth_getStorageAt,eth_getBalance,eth_call,trace_call,trace_callManyetc. - Correctness fix for
eth_createAccessList, thanks to external contributor zzh1996 for pointing out the problem - Fix for support of storage overrides in eth_call, thanks to external contributor zzh1996 for pointing out the problem. Storage override also work correctly when transaction reverts
- Add
debug_traceBlockByNumberanddebug_traceBlockByHash- thanks to external contributor bernard-wagner for providing the implementation - Correctness fix for transaction pool, sometimes proper ordering transactions was not updated.
- New transaction “poke” functionality for the transaction pool. Designed to help operators who do not see their local transactions propagated even though Erigon logs show annoucement and broadcast. If local transaction is sent to the pool (via
eth_sendRawTransaction), and it is not accepted either due to duplicate hash, or due to not enough fee bump, the transaction that exists in the pool gets re-announced and re-broadcast. This can be used as a workaround while we are investigating the root cause. - Updates to pre-verified hashes for Mainnet, Ropsten, change of skip analysis optimisation parameter
2022.02.03-beta
- Support for Sepolia Proof Of Work testnet, available via option
--sepolia - Allow RPC daemon to be started when transaction pool is disabled via
--txpool.disableoption. - Fix for panic “send in closed channel” introduced by an earlier version.
- Option
--wson RPC daemon now correctly handles empty http GET requests often used for monitoring. - MDBX utilities updated to match MDBX version in Erigon (0.11.4)
- Optimisation for
eth_createAccessList, for some cases when it makes sense not to include transaction target into the access list - Header downloader logic changed to use queues instead of insert list, simplifying the code and hopefully preventing stalls due to ommer blocks.
- Fix for shutdown panic when tx pool is disabled.
- Updates to pre-verified hashes for Mainnet, Ropsten, and Sepolia, change of skip analysis optimisation parameter
2022.02.02-beta
- Close node database if erigon fails to start up
- Compatibility fix for
parity_listStorageKeys, now the last parameter needs to be specified, however, only value “latest” is currently implemented. - Fix the issue when header sync progress was not updated correctly in the database
- Compatibility fix for
eth_getTransactionByHash- it does not fail when transaction is not found in the database and in the tx pool. Returns nil instead. - Asynchronous state streaming and newHead notifications. In the past, slow receievers of state stream and notifications could slow down Erigon’s stage loop.
- Reverted previous change for header downloaded which might have introduced regression (stuck header download)
- Updates to pre-verified hashes for Ropsten and Mainnet, change of skip analysis optimisation parameter
2022.02.01-beta
- Fix memory leak in the transaction pool - thanks to external contributor @dmitry123 for bringing attention to it
- Memory leak fix in transaction pool also fixes failure in
txpool_contentRPC method, now it works well even for the large pool sizes. - Fixed the output format of
erigon_issuanceRPC method. - Asynchronous transaction broadcast in transaction pool to fix slow pending transaction feed for
eth_subscribe - Penalise peers for more cases of invalid RLPs
- Compatibility fix for
eth_getTransactionByBlockHashAndIndexfor the cases where transaction index is higher or equal than number of transactions in the block. - Updates to pre-verified hashes for Ropsten and Mainnet, change of skip analysis optimisation parameter
2022.01.03-beta
- More reliable classification of transactions in the txpool (into pending, basefee, and queued sub pools). Improved performance of pool reprocessing on basefee changes (~10 ms for a pool with 250k transactions).
- Further fixes to transaction parsing and encoding - this has been an issue for a few past releases.
txpool_contentRPC method now separates pending and basefee sub pools (previously, they were lumped into pending pool). Performance oftxpool_contenthas been significantly improved.- Transactions with gas parameter larger than current block gas limit do get promoted to pending anymore and are not served to the miner / block proposer.
- Better txpool documentation, option
--txpool.trace.sendersis now available when txpool(s) run in a separare process (yes, it is possible!) - MDBX assertion fix that allows databases grow over 4Tb without crashing.
- MDBX produces more helpful error messages when DB corruption happens (with some recommendations about what to do).
- Added experimental WatchTheBurn stage (disabled by default needs to be turned on with
--watch-the-burncommand line option). This allows tracking issuance (and burning or ETH) viaerigon_issuanceRPC method. - p2p sentry propages “peer disconnected” event to Erigon.
- Updates to pre-verified hashes for Ropsten and Mainnet, change of skip analysis optimisation parameter
2022.01.02-beta
debug_storageRangeAt. Fix for the transaction index being ignored. Thanks to external contributor bgelb. This is the continuation of the fix from the previous release, as one line of the change was not include by mistake.- Penalise peers that send invalid RLP messages over p2p - this is to prevent the invalid RLP warnings to fill up the logs.
- No timeout on “Bodies download” stage stall for initial sync. When Erigon is working near tip of the chain, there is a limit of time that it would wait to receive a block body for given header, before it gives up. Now this will not happen during the initial sync to prevent staged sync to be interrupted too early.
- Fix of the bug in the transaction pool that led to incorrect RLP for TransactionPackets to be send, containing zero-length strings as transactions. Thanks for details report to aspin from BloXroute.
- Fix of the bug in the transaction pool that lead the incorrect parsing of some incoming transactions, leading to them being double-enveloped when propagated. Thanks for details report to aspin from BloXroute.
- Implementation of
parity_listStorageKeys, but only for the current state (‘latest’ setting). - Simplified miner gas limit post EIP-1559. This follows analogous change in go-ethereum, with two settings,
miner.gastargetandminer.gaslimitbeing replaced with the single settingminer.gaslimitwith default 30M. - Fix to the transaction pool to allow transactions to be replaced when bump in both
feeCapandtipare more than or equal to the value specified bytxpool.pricebumpsetting. Previously, the bump needed to be more than the setting, which precluded setting bump to 0. - Fix of a bug in the header downloader that led to the current tip of the chain being detected slower than it should.
- Method
trace_filternow supports intersection mode. For example, to find transactions (and sub-transactions) that originate from certain set of addresses AND sent to certain set of addresses. The default, union mode, finds transactions and sub-transactions that originate from certain set of addresses OR sent to certain set of addresses. Activated by addingmodeJSON field with the valueintersectionto the trace_filter query. Thanks to external contributor awskii. - Removal of the change made in the previous release that increase timeout for block body download from 30 seconds to 60 seconds. Further tests showed this change to be detrimental to the performance of the body download stage.
- Updates to pre-verified hashes for Ropsten and Mainnet, change of skip analysis optimisation parameter.
2022.01.01-beta
- debug_storageRangeAt. Fix for the transaction index being ignored. Thanks to external contributor bgelb.
- Remove noise in the logs for incorrect RLP messages coming from peers
- Fix for nil pointer dereference in Sender recovery stage
- Added sanity check for new blocks received from peers
- MDBX version update - fixing the slow commit related to reclaimable space
- Increase timeout for block body download from 30 seconds to 60 seconds. This is the time Erigon waits for a response to a request to get block bodies from peers, before re-requesting.
- Updates to pre-verified hashes for Ropsten and Mainnet, change of skip analysis optimisation parameter
2021.12.03-beta
- GRPC health check on Erigon and RPC Daemon, activated by
--healthcheckcommand line option (thanks to external contributor “primalcs”). Documentation still needs to be written, but it follows this: https://github.com/grpc/grpc/blob/master/doc/health-checking.md docker-compose.ymlnow includes option for RPC Daemon to connect to the transaction pool.- Support for eth/65 p2p protocol is removed, reducing number of internal sentries from 2 to 1, and consequently number of peers by default.
- Transaction pool now supports debugging for specific sender addresses using
--txpool.trace.sendersoption. It takes comma-separated list of addresses and prints detailed information about all transactions sent by specified addresses. It can be used for investigation of issues with the transaction pool. - Checks for potential database schema downgrades. Erigon 1 beta and Erigon 2 will soon diverge on their database layout and from now on users will not be able to use the same database with Erigon 1 beta and Erigon 2 interchangeably. Checks in the code are designed to protect from accidental DB upgrades or downgrades.
- Transaction broadcasting. Previously, pending transactions were announced (by sending their hashes), but not broadcast. Now they are broadcast to a random subset of peers. For local transactions, the log output now shows how many peers they have been announced and broadcast to.
- Fix of a bug in the transaction pool that caused local transactions not being announced or broadcast when their dependent transaction is promoted or replaced by higher fee.
- Updates to pre-verified hashes for Ropsten and Mainnet, change of skip analysis optimisation parameter