Releases: erigontech/erigon
2.60.8
Highlights
This release schedules the Ahmedabad hardfork for the Polygon mainnet and the Gandhinagar hardfork for Amoy. Thus it's mandatory for all Polygon users.
This release also fixes Issue #11936 debug trace RPC error in Polygon Amoy.
Full Changelog: 2.60.7...2.60.8
2.60.7
Breaking change:
Release process:
Starting this release we're introducing some changes to our release process:
- release version without prefix “v” in a docker tags, released artifacts, git tag, etc.;
- released archives now includes 10 binaries: erigon, downloader, devnet, evm, caplin, diag, integration, rpcdaemon, sentry, txpool;
- released docker image now includes 7 binaries: erigon, integration, diag, sentry, txpool, downloader, rpcdaemon (same binaries as built for released archives just baked to the docker image);
- docker images will be released on Dockerhub repository “erigontech/erigon”. Previous images, released in repository “thorax/erigon” will remain as is. We are not planning to copy old images to the new dockerhub repository.
- multi-platform docker image available for linux/amd64/v2 and linux/arm64 platforms and based on alpine:3.20.2; No need to pull another docker image for another different platform.
- docker images now contains label “org.opencontainers.image.revision” which refer to commit id from the erigon project, used to build artifacts.
- all build flags now passed to the release workflow — so, user can see previously missed build info in our released binaries (as well as in docker images) and also better build optimization expected;
- We are not publishing Windows binaries as it requires some work. We will publish it again once it will work as expected. Meanwhile Windows users can build erigon binaries locally on Windows machines.
Description of the change
Improvements:
- [Polygon] Bor: PIP-30: increased max code size limit to 32KB [For Erigon-2] by @pratikspatil024 in #11811
- [Polygon] Bor: Added Ahmedabad HF related configs and block number for amoy network by @pratikspatil024 in #11901
- Refactor logsFilter to prevent concurrent map fatal errors (#10672) by @taratorio in #11892
- Added RPC filter limits, metrics, and better memory management. (#10718) by @taratorio in #11894
- Prevent invalid slice operations in filters (#10826) by @taratorio in #11908
- Stability improvements to --caplin.archive by @Giulio2002 in #11807 #11781 #11849
Bugfixes:
- Fix bor-heimdall stall after chaindb removal by @manav2401 in #11863
- Fix regression stack dump: the stack in some trace/debug api is dumped again in hex no more in decimal due to regression by @lupin012 in #11810
- fix panic issue in initializeStateAntiquaryIfNeeded (#11608) by @domiwei in #11624
- Incorrect prestate balance for Blob-commit transactions #11368 by @somnathb1 in #11650
- Fixes Incorrect balance stateDiff for trace_call #7200, and introduces change in behaviour of sender balance in trace_call @somnathb1 in #11813
Full Changelog: v2.60.6...2.60.7
3.0.0-alpha3
Breaking change
Release process:
Starting this release we're introducing some changes to our release process:
- release version without prefix “v” in a docker tags, released artifacts, git tag, etc.;
- released archives now includes 10 binaries: erigon, downloader, devnet, evm, caplin, diag, integration, rpcdaemon, sentry, txpool;
- released docker image now includes 7 binaries: erigon, integration, diag, sentry, txpool, downloader, rpcdaemon (same binaries as built for released archives just baked to the docker image);
- docker images will be released on Dockerhub repository “erigontech/erigon”. Previous images, released in repository “thorax/erigon” will remain as is. We are not planning to copy old images to the new dockerhub repository.
- multi-platform docker image available for linux/amd64/v2 and linux/arm64 platforms and based on alpine:3.20.2; No need to pull another docker image for another different platform.
- docker images now contains label “org.opencontainers.image.revision” which refer to commit id from the erigon project, used to build artifacts.
- all build flags now passed to the release workflow — so, user can see previously missed build info in our released binaries (as well as in docker images) and also better build optimization expected;
- We are not publishing Windows binaries as it requires some work. We will publish it again once it will work as expected. Meanwhile Windows users can build erigon binaries locally on Windows machines.
Description of the change
Require resync
Yes
Improvements:
- Sync now including
.idx
files (indices). Erigon downloding them instead of re-generating - Starup time fixed
- Too high read-IO fixed
- latest state (
domain
folder) size reduced by 30% (~200gb on bor-mainnet) - 2x reduced
chaindata
: 12Gb on eth-mainnet, 32Gb on bor-mainnet - 2x less RAM: 25Gb on eth-mainnet, 40Gb on bor-mainnet. We will reduce it in future
- mining suppport
- prune doesn't impact chain-tip performance
- new CI for binary artifacts release. and docker.
Known problems
- trace_callMany multiple txs support: #11798
v2.60.6
Improvements:
- compatibility with geth - of stateDiff encoding by @AskAlexSharov in #11362
- callTracer: don't capture logs txs failed with error by @AskAlexSharov in #11375
- diagnostics: export system info by @dvovk in #11567
Bugfixes:
- fixed missing blobs in backfilling by @Giulio2002 in #11569
Full Changelog: v2.60.5...v2.60.6
v3.0.0-alpha2
Key features
alpha2
focuse on initial sync:
- Erigon becomes "Evergreen": it can download latest files even if you not using latest Erigon version
- We starting release files near chain-tip (10K-100K blocks)
Numbers from 128Gb RAM, 16CPU, NVMe machine:
If you have any perf problems on chain-tip - first please rm -rf chaindata
- likely it will help. If not - report us issue.
alpha3
will focus on chain-tip perf and peak RAM usage.
Upgrade from Erigon3-alpha1
amoy
- pleas re-sync. other chains can upgrade without re-sync.
Roadmap
Next release will focus on "chain-tip" performance and peak RAM reduction.
v2.60.5
Improvements:
- Diagnostics: snapshot stage info gathering by @dvovk in #11105
- support of hex-encoded Nonce in
genesis.json
andeth_feeHistory
by @AskAlexSharov in #11264 - PIP-35: enforce 25gwei gas config for all polygon chains for erigon 2 by @manav2401 in #11295
- tracer: add support bailout on evm.create() on e2 by @lupin012 in #11259
- RPC throughput increase (mutex-contention reduce on block files) by @tholcman and @AskAlexSharov in #11155
Bugfixes:
- TxPool: prevent db grow by @AskAlexSharov in #11200
- Fix on logCount param management by @lupin012 in #11258
Full Changelog: v2.60.4...v2.60.5
v3.0.0-alpha1
Erigon3 user guide
RAM requirement is higher: 64gb. We will reduce it in next releases.
Golang 1.21
Almost all RPC methods are implemented - if something doesn't work - just drop it on our head.
Supported networks: all (except Mumbai).
E3 changes from E2:
- Sync from scratch doesn't require re-exec all history. Latest state and it's history are in snapshots - can download.
- ExecutionStage - now including many E2 stages: stage_hash_state, stage_trie, stage_log_index, stage_history_index,
stage_trace_index - E3 can execute 1 historical transaction - without executing it's block - because history/indices have
transaction-granularity, instead of block-granularity. - E3 doesn't store Logs (aka Receipts) - it always re-executing historical txn (but it's cheaper then in E2 - see point
above). Known perf issues: #10747 --sync.loop.block.limit
is enabled by default. (Default:5_000
.
Set--sync.loop.block.limit=10_000 --batchSize=2g
to increase sync speed on good hardware).- datadir/chaindata is small now - to prevent it's grow: we recommend set
--batchSize <= 2G
. And it's fine
torm -rf chaindata
- can symlink/mount latest state to fast drive and history to cheap drive
- Archive Node is default. Full Node:
--prune.mode=full
, Minimal Node (EIP-4444):--prune.mode=minimal
Known Problems of E3:
eth_getLogs
fieldsindex
always 0: #10324
E3 datadir structure
datadir
chaindata # "Recently-updated Latest State" and "Recent History"
snapshots
domain # Latest State: link to fast disk
history # Historical values
idx # InvertedIndices: can search/filtering/union/intersect them - to find historical data. like eth_getLogs or trace_transaction
accessors # Additional (generated) indices of history - have "random-touch" read-pattern. They can serve only `Get` requests (no search/filters).
temp # buffers to sort data >> RAM. sequential-buffered IO - is slow-disk-friendly
# There is 4 domains: account, storage, code, commitment
E3 can store state on fast disk and history on cheap disk
If you can afford store datadir on 1 nvme-raid - great. If can't - it's possible to store history on cheap drive.
# place (or ln -s) `datadir` on slow disk. link some sub-folders to fast disk.
# Example: what need link to fast disk to speedup execution
datadir
chaindata # link to fast disk
snapshots
domain # link to fast disk
history
idx
accessors
temp
# Example: how to speedup history access:
# - go step-by-step - first try store `accessors` on fast disk
# - if speed is not good enough: `idx`
# - if still not enough: `history`
E3 datadir size
# eth-mainnet - archive - April 2024
du -hsc /erigon/*
6G /erigon/caplin
50G /erigon/chaindata
1.8T /erigon/snapshots
1.9T total
du -hsc /erigon/snapshots/*
100G /erigon/snapshots/accessor
240G /erigon/snapshots/domain
260G /erigon/snapshots/history
410G /erigon/snapshots/idx
1.7T /erigon/snapshots
# bor-mainnet - archive - Jun 2024
du -hsc /erigon/*
160M /erigon/bor
50G /erigon/chaindata
3.7T /erigon/snapshots
3.8T total
du -hsc /erigon/snapshots/*
260G /erigon-data/snapshots/accessor
850G /erigon-data/snapshots/domain
650G /erigon-data/snapshots/history
1.4T /erigon-data/snapshots/idx
4.1T /erigon/snapshots
See also: https://github.com/erigontech/erigon?tab=readme-ov-file#erigon3-users-guide
Upgrade from Erigon2
No. Please re-sync.
v2.60.4
Changes:
- PIP-35 for amoy: enforce 25gwei gas config for amoy for erigon 2 by @manav2401 in #11078
Full Changelog: v2.60.3...v2.60.4
v2.60.3
Improvements:
- eth/tracers: add optional includePrecompiles flag to callTracer - default true is preserved by @taratorio in #10986
- turbo/jsonrpc: add optional includePrecompiles flag to trace_* apis by @taratorio in #10979
Bugfixes:
- Changing Caplin Finality Checkpoint API response to match spec by @angusscott in #10944
- Caplin: Added Blob Sidecar PastFinalization Check by @Giulio2002 in #11006
- Less troublesome way of identifying content-type (#10770) by @Giulio2002 in #11018
- Allow to gracefully exit from CL downloading stage (#10887) by @awskii in #11020
- Add zero check in tx.Sender func by @somnathb1 in #10737
- eth/tracers: fix prestate tracer bug with create with value by @taratorio in #10960
- eth/tracers: always pop precompiles stack in callTracer by @taratorio in #11004
- Diagnostics: loglevel by @dvovk in #11015
- Diagnostics: Optimize db write by @dvovk in #11016
Full Changelog: v2.60.2...v2.60.3
v2.60.2
Bugfixes:
- Revert breaking change to eth_estimateGas introduced in v2.60.1 (#10904) as we added a better fix for gas fee calculation in debug calls by @mininny in #10880
- Fix potential p2p shutdown hangup by @mh0lt in #10626
- Downloader: fix staticpeers flag by @dvovk in #10798
- rpc: Fix incorrect txfeecap by @shohamc1 in #10643
Full Changelog: v2.60.1...v2.60.2