Skip to content

Releases: erigontech/erigon

v3.0.0

24 Mar 09:11
Compare
Choose a tag to compare

Note: This version has support for Hoodi testnet with --chain=hoodi

Upgrade from Erigon2

No. Please re-sync.

Breaking changes

  • Bor chains: enable checkpoint sync by default (name: Astrid)
    • This uses the merkle data in Checkpoints & Milestines in the sync process rather than total difficulty.
    • To disable: --polygon.sync=false
  • caplin.backfilling.blobs, caplin.backfilling and caplin.archive are now --caplin.states-archive --capin.blobs-archive --caplin.blocks-archive

Erigon3 changes from Erigon2

  • Initial sync doesn't re-exec from 0: downloading 99% LatestState and History
  • Per-Transaction granularity of history (Erigon2 had per-block). Means:
    • Can execute 1 historical transaction - without executing it's block
    • Erigon3 doesn't store Logs (aka Receipts) - it always re-executing historical txn (but it's cheaper)
  • Validator mode: added. --internalcl is enabled by default. To disable use --externalcl.
  • Built-in Bor Consens: named Astrid. Enabled by default. To disable use --polygon.sync=false. Require re-sync.
  • --prune flags changed: see --prune.mode (default: full, archive: archive, EIP-4444: minimal)
  • Store most of data in immutable files (segments/snapshots):
    • can symlink/mount latest state to fast drive and history to cheap drive
    • chaindata is less than 15gb. It's ok to rm -rf chaindata. (to prevent grow: recommend --batchSize <= 1G)
  • Other changes:
    • ExecutionStage included many E2 stages: stage_hash_state, stage_trie, log_index, history_index, trace_index
    • Restart doesn't loose much partial progress: --sync.loop.block.limit=5_000 enabled by default

Known problems

  • polygon: eth_getLogs if search by filters - doesn't return state-sync (state-sync events are not indexed yet). Without filter can see state-sync events. In eth_getReceipts also can see. Will release fixed files in E3.2
  • polygon: eth_getLogs state-sync events have incorrect index field. Will release fixed files in E3.2

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

Full Changelog: v3.0.0-rc3...v3.0.0

v3.0.0-rc3

10 Mar 12:16
844c6cf
Compare
Choose a tag to compare
v3.0.0-rc3 Pre-release
Pre-release

Description of the change

Bugfixes:

Full Changelog: v3.0.0-rc2...v3.0.0-rc3

Known problems

  • polygon: eth_getLogs if search by filters - doesn't return state-sync (state-sync events are not indexed yet). Without filter can see state-sync events. In eth_getReceipts also can see. Will release fixed files in E3.1
  • polygon: eth_getLogs state-sync events have incorrect index field. Will release fixed files in E3.1

Full Changelog: v3.0.0-rc2...v3.0.0-rc3

v3.0.0-rc2

05 Mar 12:26
676cd33
Compare
Choose a tag to compare
v3.0.0-rc2 Pre-release
Pre-release

Description of the change

Mandatory for Sepolia & Chiado

Bugfixes:

Known problems

  • polygon: eth_getLogs if search by filters - doesn't return state-sync (state-sync events are not indexed yet). Without filter can see state-sync events. In eth_getReceipts also can see. Will release fixed files in E3.1
  • polygon: eth_getLogs state-sync events have incorrect index field. Will release fixed files in E3.1

Full Changelog: v3.0.0-rc1...v3.0.0-rc2

v2.61.3

05 Mar 13:07
7618196
Compare
Choose a tag to compare

Description of the change

Mandatory for Sepolia & Chiado

Bugfixes:

Full Changelog: v2.61.2...v2.61.3

v3.0.0-rc1

03 Mar 16:16
e3e858a
Compare
Choose a tag to compare
v3.0.0-rc1 Pre-release
Pre-release

Description of the change

Improvements:

  • Schedule Pectra for Chiado by @yperbasis in #13898
  • stagedsync: dbg option to log receipts on receipts hash mismatch (#13905) by @taratorio in #13940
  • Introduces a new method for estimating transaction gas that targets the maximum gas a contract could use (#13913). Fixes eth_estimateGas for historical blocks (#13903) by @somnathb1 in #13916

Bugfixes:

Known problems

  • polygon: eth_getLogs if search by filters - doesn't return state-sync (state-sync events are not indexed yet). Without filter can see state-sync events. In eth_getReceipts also can see. Will release fixed files in E3.1
  • polygon: eth_getLogs state-sync events have incorrect index field. Will release fixed files in E3.1

Full Changelog: v3.0.0-beta2...v3.0.0-rc1

v2.61.2

27 Feb 18:44
3df01fa
Compare
Choose a tag to compare

Description of the change

Improvements:

Bugfixes:

Full Changelog: v2.61.1...v2.61.2

v3.0.0-beta2

18 Feb 12:09
9da58c0
Compare
Choose a tag to compare
v3.0.0-beta2 Pre-release
Pre-release

Breaking changes

  • Reverts Optimize gas by default in eth_createAccessList #8337

Description of the change

Improvements:

  • Up to date implementation of Pectra and schedules hard fork for Holešky and Sepolia
  • eth_estimateGas: StateOverrides and HistoricalBlocks support
  • fixes a number of issues on Polygon with the new default flow (Astrid)
    • nonsequential block in bridge processing - should be fixed
    • pos sync failed: fork choice update failure: status=5, validationErr='' - should be fixed
    • external rpc daemon getting stuck - should be fixed
    • process not exiting in a clean way (getting stuck) upon astrid errs - should be fixed
    • very rare chance of bridge deadlock while at chain tip due to forking - should be fixed

Require resync

  • yes

Full Changelog: v3.0.0-beta1...v3.0.0-beta2

v2.61.1

12 Feb 17:00
b3129c0
Compare
Choose a tag to compare

Holesky and Sepolia users: this is a required update for the upcoming Pectra hardfork.

Pectra scheduled for:

  • Holesky: Mon, Feb 24 at 21:55:12 UTC
  • Sepolia: Wed, Mar 5 at 07:29:36 UTC

Breaking changes

Description of the change

New Feature:

  • Up to date implementation of EIPs for Pectra and scheduled hard fork for Sepolia and Holešky
  • Add support to eth_blobBaseFee, eth_baseFee and EIP4844 support to eth_feeHistory
  • Add support for engine_getClientVersionV1

Bugfixes:

Full Changelog: v2.61.0...v2.61.1

v3.0.0-beta1

21 Jan 11:17
0b94461
Compare
Choose a tag to compare
v3.0.0-beta1 Pre-release
Pre-release

Documentation: docs.erigon.tech
Blog: erigon.tech/news
X/Twitter: x.com/ErigonEth

Breaking changes

  • Bor chains: enable checkpoint sync by default (name: Astrid)
    • This uses the merkle data in Checkpoints & Milestines in the sync process rather than total difficulty.
    • The process should auto upgrade - in which case you may find that it starts creating new snapshots for checkpoints and milestones.
    • This may however fail, as there are a number of potential edge cases. If this happens the process will likely stop with a failure message.
    • In this situation you will need to do a clean sync, in which case the complete snapshot set will be downloaded and astrid will sync.
    • If you want to prevent this and retain the old behaviour start erigon with --polygon.sync=false
  • caplin.backfilling.blobs, caplin.backfilling and caplin.archive are now --caplin.states-archive --capin.blobs-archive --caplin.blocks-archive

Description of the change

Erigon3 changes from Erigon2

  • Initial sync doesn't re-exec from 0: downloading 99% LatestState and History
  • Per-Transaction granularity of history (Erigon2 had per-block). Means:
    • Can execute 1 historical transaction - without executing it's block
    • If account X change V1->V2->V1 within 1 block (different transactions): debug_getModifiedAccountsByNumber return
      it
    • Erigon3 doesn't store Logs (aka Receipts) - it always re-executing historical txn (but it's cheaper)
  • Validator mode: added. --internalcl is enabled by default. To disable use --externalcl.
  • Built-in Bor Consens: named Astrid. Enabled by default. To disable use --polygon.sync=false. Require re-sync.
  • --prune flags changed: see --prune.mode (default: full, archive: archive, EIP-4444: minimal)
  • Store most of data in immutable files (segments/snapshots):
    • can symlink/mount latest state to fast drive and history to cheap drive
    • chaindata is less than 15gb. It's ok to rm -rf chaindata. (to prevent grow: recommend --batchSize <= 1G)
  • Other changes:
    • ExecutionStage included many E2 stages: stage_hash_state, stage_trie, log_index, history_index, trace_index
    • Restart doesn't loose much partial progress: --sync.loop.block.limit=5_000 enabled by default

Require resync

  • no

Notes:

  • Starting with beta1 we're deprecating Caplin and Polygon support in Erigon 2

References:

Full Changelog: v3.0.0-alpha7...v3.0.0-beta1

v2.61.0

06 Jan 15:58
3ea0dd4
Compare
Choose a tag to compare

Description of the change

Improvements:

Full Changelog: v2.60.10...v2.61.0