Releases: erigontech/erigon
v2.60.9
Breaking change:
Release process:
- Returned prefix "v" to git tag, docker tags. Reason: compatibility with Golang's rules (go.mod)
- Switched to go 1.22 while building artifacts
- Docker images now use "debian:12.7-slim" as a base image
- From now onwards only the following three OS/Arch are supported: linux arm64, amd64(v1) and amd64v2
- Artifacts for amd64 architecture are built and delivered with "silkworm" support (https://github.com/erigontech/silkworm)
Description of the change
Improvements:
- Type of error field in structlog logger differs from geth, alloy (#12089) by @taratorio in #12241
- dbg: env var for heap profile output file path by @taratorio in #12398
- rpcd no open before download by @AskAlexSharov in #12411
Bugfixes:
- Fixed Polygon OOM issue upon BadHeaders by @taratorio in #12405
- Fixed RPC error when calling debug_traceTransaction with borTraceEnabled at particular blocks by @shohamc1 in #12315
Full Changelog: 2.60.8...v2.60.9
v3.0.0-alpha5
Breaking changes:
- Format of Merkle Tree was changed
- Format and enumeration of Caplin's snapshots was changed
Improvements:
- Faster time on the tip of the chain
- Less time to download blobs needed
- Fixed crashes introduced by alpha4.
Known problems
- There is still some instability in the RPC
- Sync does not work on bor mainnet
Require re-sync:
This release includes multiple breaking changes, and requires a full resync
Full Changelog: v3.0.0-alpha4...v3.0.0-alpha5
v3.0.0-alpha4
Breaking changes:
- New defaults:
--pporf.port=6060 --metrics.port=6061 --diagnostics.addr=localhost:6062
. Reason: in Erigon2 these flags used the same port and did conflict. - Add prefix "v" to git tag, docker tags. Reason: compatibility with Golang's rules (
go.mod
). - drop support of golang
1.21
Require re-sync:
- yes (if you need better performance on chain-tip)
Full Changelog: 3.0.0-alpha3...v3.0.0-alpha4
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.