Skip to content

Releases: erigontech/erigon

v3.0.0-alpha1

23 Jul 15:01
6df3f87
Compare
Choose a tag to compare
v3.0.0-alpha1 Pre-release
Pre-release

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
    to rm -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 fields index 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

17 Jul 11:39
72ab70b
Compare
Choose a tag to compare

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

08 Jul 14:22
1f73ed5
Compare
Choose a tag to compare

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:

Full Changelog: v2.60.2...v2.60.3

v2.60.2

26 Jun 11:06
2f41075
Compare
Choose a tag to compare

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

v2.60.1

04 Jun 13:55
9471c44
Compare
Choose a tag to compare

Breaking change:

  • 2nd argument blockNrOrHash was removed from eth_estimateGas. Moreover, eth_estimateGas now correctly defaults MaxFeePerGas to block's base fee by @yperbasis in #10499

Improvements:

Bugfixes:

  • Previously eth_callMany and other RPC endpoints could have been wrong because baseFee was overwritten by maxFeePerGas. Fixed by @marshalys in #10456
  • Fixed "method handler crashed" for debug_traceCall (Issue #9090) fixed by @marshalys in #10502
  • Fix a regression with json marshalling of checkpoints causing root hash to be 0 and triggering unwinds by @taratorio in #10530
  • Fix unintended polygon bor miner gas price and txpool price limit sanitization on ethereum by @taratorio in #10420
  • Enable DNS p2p discovery on holesky by @wmitsuda in #10460
  • p2p/sentry: sentry doesn't start with ErrNoHead (#10454) by @battlmonstr in #10523
  • Caplin: Proper "Normalization" of length of ForkVersions to 8 hex characters by @Giulio2002 in #10578
  • bor blocks retire: infinity loop fix by @AskAlexSharov in #10596
  • txpool: EIP-3860 should only apply to create transactions by @yperbasis in #10609

Full Changelog: v2.60.0...v2.60.1

v2.60.0 The Last of Erigon 2

14 May 14:08
7883a4e
Compare
Choose a tag to compare

WARNING

Erigon 3 has been under R&D for a long time and is getting closer to release. We plan this release, v2.60.0, to be the last significant release based on Erigon 2. There might be patch v2.60.x releases for critical issues, but by and large, we intend all future development to be based on Erigon 3. The code of Erigon 3 now lives in branch main, which is our default branch now. We advise all forks of Erigon to either switch their development to Erigon 3 or use branch release/2.60 if they choose to stay on Erigon 2.
You can read more about Erigon 3 at https://erigon.tech/merging-erigon-3-and-erigon-4-and-possibly-caplin.

Drop support of golang 1.20

Fixes pruning of logs issue introduced in 2.59.x:

For users using prune=hrtc flag or any prune flags with non-zero prune.r.older value following must be performed when upgrading from 2.59.x

  • Stop the node, upgrade to v2.60.0
  • Then,
integration stage_log_index --reset --datadir=<your_datadir> --chain=<chain_name>
  • Then restart and let it sync to the tip.

(Optional) Database compaction: Stop the node at chain-tip (after syncing is finished) Then

integration mdbx_to_mdbx --chaindata=<your_datadir>/chaindata --chaindata.to=<your_datadir>/chaindata2 --datadir=<any_random_location_for_temp_files>
mv chaindata chaindataOld
mv chaindata2 chaindata

Then restart. The new chaindata may be up to 1/3 of the size of the old (Bonus!). If all goes well, you can delete chaindataOld

rm -rf chaindataOld

Tip: To do the integration commands with docker image, you can always do

docker run -it -v <your_datadir>:/data --entrypoint sh thorax/erigon:devel

Then the value of datadir for integration and mdbx commands is /data on the docker shell, where you can run the above.

N.B. Also, just a reminder, 2.58 originally synced node cannot see much benefit on upgrading (it was also in the release notes of 2.59) The above suggestion would work when upgrading from 2.59.x

by @somnathb1 in #10019 #9968 #9932 #9733

Caplin:

  • Caplin: beacon committee subscription api by @domiwei in #9721
  • Caplin: tweaks to make staking more stable. by @Giulio2002 in #10097
  • Caplin: Fixed not calling FCU due to faulty blob handling by @Giulio2002 in #9779
  • Caplin: process new attesting indicies before block comes in to avoid occasiona Reorg by @Giulio2002 in #10085

Silkworm:

Otterscan:

  • Fixed rewards and fees calculation in Otterscan APIs: #10038 #10070
  • Added support for return values in ots_traceTransaction traces: #10014"

New:

Bugfixes:

  • Fix default gas values in debug_ RPCs by @shohamc1 in #9922
  • Fixed p2p/sentry: StatusDataProvider ReadCurrentHeader error by @battlmonstr in #9890
  • Fixed Engine API: NewPayload fails with a "context canceled" error when calling CurrentHeader/GetHeader (#9786) by @battlmonstr in #9894
  • Fix abigen regression which generated non-compilable code with unused imports and duplicate struct definitions by @taratorio in #10091
  • Release decompressor mmap on errors by @awskii in #9917
  • Web Torrent related fixes to improve downloader reliability. For newly released snapshot files downloading is
    primarily via webseeds. This has become unreliable recently due to issues with web firewall quotas and internal
    torrent library http handling. These changes fix several identified issues in this area which should improve downlaod reliability.#9904 #9962 #10008 #10036 #10183 #10149

Full Changelog: v2.59.3...v2.60.0

v2.59.3 Napoli on Amoy

29 Mar 12:43
088fd8e
Compare
Choose a tag to compare

This release sets the Napoli hard fork on the Amoy test net at block #5423600.

What's Changed

Full Changelog: v2.59.2...v2.59.3

v2.59.2

28 Mar 13:20
a013ec2
Compare
Choose a tag to compare

This patch release fixes an MDBX size/performance regression introduced in v2.58.0.

Changelog

v2.59.1

27 Mar 10:47
02c9d4b
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.59.0...v2.59.1

v2.59.0 Post-Dencun Fixes

20 Mar 14:03
0f0a445
Compare
Choose a tag to compare

Attention Caplin Users

  1. Upgrade your erigon node, let it run for about a minute, then stop it.
  2. Reset the headers & snapshots stages:
rm -rf <datadir>/caplin <datadir>/snapshots <datadir>/downloader
make integration
./build/bin/integration stage_headers --reset --datadir=<datadir>
./build/bin/integration stage_snapshots --reset --datadir=<datadir> 
  1. Start your erigon node.

More Aggressive Log/Receipt Pruning

PR #9123 introduces more aggressive pruning of logs & receipts (for nodes with r in their pruning flag, e.g. --prune=hrtc), resulting in a 2x smaller disk footprint.
This feature is only enabled for new nodes. To enable it for an existing node, you have to re-sync it from scratch.

Optional reduce IO for getTxnByHash operation

Transaction lookup by hash did touch too much places in snapshots. It caused high IO and PageCache evictions.
If you have much RPC requests - it will greatly help for this use-case.
To get it: rm datdir/snapshots/*.idx and restart erigon.
By #9506

Release Highlights

New Contributors

Full Changelog: v2.58.2...v2.59.0