You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 22, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: src/about/contributing.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,5 @@
1
1
# Contributing to Erigon 3
2
+
# Contributing to Erigon 3
2
3
3
4
## Development
4
5
@@ -14,11 +15,16 @@ For those interested in gaining a deeper understanding of Erigon's underlying ar
14
15
-**[DB Walk-through](https://github.com/erigontech/erigon/blob/release/2.60/docs/programmers_guide/db_walkthrough.MD)**: This document provides a detailed walk-through of Erigon's database structure. It explains how Erigon organizes persistent data into tables like PlainState for accounts and storage, History Of Accounts for tracking account changes, and Change Sets for optimized binary searches on changes. It contrasts Erigon's approach with go-ethereum's use of the Merkle Patricia Trie.
15
16
-**[Database FAQ](https://github.com/erigontech/erigon/blob/release/2.60/docs/programmers_guide/db_faq.md)**: The Database FAQ addresses common questions and concerns related to Erigon's database design. It covers how to directly read the database via gRPC or while Erigon is running, details on the MDBX storage engine and RAM usage model, and points to further resources on the database interface rationale and architecture.
16
17
18
+
-**[DB Walk-through](https://github.com/erigontech/erigon/blob/release/2.60/docs/programmers_guide/db_walkthrough.MD)**: This document provides a detailed walk-through of Erigon's database structure. It explains how Erigon organizes persistent data into tables like PlainState for accounts and storage, History Of Accounts for tracking account changes, and Change Sets for optimized binary searches on changes. It contrasts Erigon's approach with go-ethereum's use of the Merkle Patricia Trie.
19
+
-**[Database FAQ](https://github.com/erigontech/erigon/blob/release/2.60/docs/programmers_guide/db_faq.md)**: The Database FAQ addresses common questions and concerns related to Erigon's database design. It covers how to directly read the database via gRPC or while Erigon is running, details on the MDBX storage engine and RAM usage model, and points to further resources on the database interface rationale and architecture.
20
+
17
21
18
22
### Feature Exploration
19
23
Erigon introduces several innovative features that contributors may find interesting to explore and contribute to:
20
24
-**[DupSort Feature Explanation](https://github.com/erigontech/erigon/blob/release/2.60/docs/programmers_guide/dupsort.md)**: Erigon's DupSort feature optimizes storage and retrieval of duplicate data by utilizing prefixes for keys in databases without the concept of "Buckets/Tables/Collections" or by creating tables for efficient storage with named "Buckets/Tables/Collections."
21
25
-**[EVM without Opcodes](https://github.com/erigontech/erigon/blob/release/2.60/docs/evm_semantics.md)** (Ether Transfers Only): Erigon explores a simplified version of the Ethereum Virtual Machine (EVM) focusing solely on ether transfers, offering an efficient execution environment for specific use cases.
26
+
-**[DupSort Feature Explanation](https://github.com/erigontech/erigon/blob/release/2.60/docs/programmers_guide/dupsort.md)**: Erigon's DupSort feature optimizes storage and retrieval of duplicate data by utilizing prefixes for keys in databases without the concept of "Buckets/Tables/Collections" or by creating tables for efficient storage with named "Buckets/Tables/Collections."
27
+
-**[EVM without Opcodes](https://github.com/erigontech/erigon/blob/release/2.60/docs/evm_semantics.md)** (Ether Transfers Only): Erigon explores a simplified version of the Ethereum Virtual Machine (EVM) focusing solely on ether transfers, offering an efficient execution environment for specific use cases.
Copy file name to clipboardExpand all lines: src/advanced/options.md
+20Lines changed: 20 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,6 +29,11 @@ COMMANDS:
29
29
seg, snapshots, segments Managing historical data segments (partitions)
30
30
support Connect Erigon instance to a diagnostics system for support
31
31
help, h Shows a list of commands or help for one command
32
+
init Bootstrap and initialize a new genesis block
33
+
import Import a blockchain file
34
+
seg, snapshots, segments Managing historical data segments (partitions)
35
+
support Connect Erigon instance to a diagnostics system for support
36
+
help, h Shows a list of commands or help for one command
32
37
33
38
GLOBAL OPTIONS:
34
39
--datadir value Data directory for the databases (default: /home/bloxster/.local/share/erigon)
@@ -48,6 +53,10 @@ GLOBAL OPTIONS:
48
53
--txpool.commit.every value How often transactions should be committed to the storage (default: 15s)
49
54
--prune.distance value Keep state history for the latest N blocks (default: everything) (default: 0)
50
55
--prune.distance.blocks value Keep block history for the latest N blocks (default: everything) (default: 0)
56
+
--prune.mode value Choose a pruning preset to run onto. Available values: "full", "archive", "minimal".
57
+
Full: Keep only blocks and latest state,
58
+
Archive: Keep the entire indexed database, aka. no pruning,
59
+
Minimal: Keep only latest state (default: "full")
51
60
--prune.mode value Choose a pruning preset to run onto. Available values: "full", "archive", "minimal".
52
61
Full: Keep only blocks and latest state,
53
62
Archive: Keep the entire indexed database, aka. no pruning,
@@ -87,6 +96,7 @@ GLOBAL OPTIONS:
87
96
--rpc.batch.concurrency value Does limit amount of goroutines to process 1 batch request. Means 1 bach request can't overload server. 1 batch still can have unlimited amount of request (default: 2)
88
97
--rpc.streaming.disable Erigon has enabled json streaming for some heavy endpoints (like trace_*). It's a trade-off: greatly reduce amount of RAM (in some cases from 30GB to 30mb), but it produce invalid json format if error happened in the middle of streaming (because json is not streaming-friendly format) (default: false)
89
98
--db.read.concurrency value Does limit amount of parallel db reads. Default: equal to GOMAXPROCS (or number of CPU) (default: 1408)
99
+
--db.read.concurrency value Does limit amount of parallel db reads. Default: equal to GOMAXPROCS (or number of CPU) (default: 1408)
90
100
--rpc.accessList value Specify granular (method-by-method) API allowlist
91
101
--trace.compat Bug for bug compatibility with OE for trace_ routines (default: false)
92
102
--rpc.gascap value Sets a cap on gas that can be used in eth_call/estimateGas (default: 50000000)
@@ -147,6 +157,7 @@ GLOBAL OPTIONS:
147
157
--staticpeers value Comma separated enode URLs to connect to
148
158
--trustedpeers value Comma separated enode URLs which are always allowed to connect, even above the peer limit
149
159
--maxpeers value Maximum number of network peers (network disabled if set to 0) (default: 32)
160
+
--maxpeers value Maximum number of network peers (network disabled if set to 0) (default: 32)
150
161
--chain value name of the network to join (default: "mainnet")
151
162
--dev.period value Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)
152
163
--vmdebug Record information useful for VM and contract debugging (default: false)
--caplin.max-inbound-traffic-per-peer value Max inbound traffic per second per peer (default: "256KB")
199
211
--caplin.max-outbound-traffic-per-peer value Max outbound traffic per second per peer (default: "256KB")
200
212
--caplin.adaptable-maximum-traffic-requirements Make the node adaptable to the maximum traffic requirement based on how many validators are being ran (default: true)
213
+
--caplin.subscribe-all-topics Subscribe to all gossip topics (default: false)
214
+
--caplin.max-peer-count value Max number of peers to connect (default: 80)
215
+
--caplin.enable-upnp Enable NAT porting for Caplin (default: false)
216
+
--caplin.max-inbound-traffic-per-peer value Max inbound traffic per second per peer (default: "256KB")
217
+
--caplin.max-outbound-traffic-per-peer value Max outbound traffic per second per peer (default: "256KB")
218
+
--caplin.adaptable-maximum-traffic-requirements Make the node adaptable to the maximum traffic requirement based on how many validators are being ran (default: true)
201
219
--sentinel.addr value Address for sentinel (default: "localhost")
202
220
--sentinel.port value Port for sentinel (default: 7777)
203
221
--sentinel.bootnodes value [ --sentinel.bootnodes value ] Comma separated enode URLs for P2P discovery bootstrap
@@ -214,6 +232,7 @@ GLOBAL OPTIONS:
214
232
--silkworm.rpc.workers value Number of worker threads used in embedded Silkworm RPC service (zero means use default in Silkworm) (default: 0)
215
233
--silkworm.rpc.compatibility Preserve JSON-RPC compatibility using embedded Silkworm RPC service (default: true)
216
234
--beacon.api value [ --beacon.api value ] Enable beacon API (available endpoints: beacon, builder, config, debug, events, node, validator, lighthouse)
235
+
--beacon.api value [ --beacon.api value ] Enable beacon API (available endpoints: beacon, builder, config, debug, events, node, validator, lighthouse)
217
236
--beacon.api.addr value sets the host to listen for beacon api requests (default: "localhost")
218
237
--beacon.api.cors.allow-methods value [ --beacon.api.cors.allow-methods value ] set the cors' allow methods (default: "GET", "POST", "PUT", "DELETE", "OPTIONS")
219
238
--beacon.api.cors.allow-origins value [ --beacon.api.cors.allow-origins value ] set the cors' allow origins
@@ -229,6 +248,7 @@ GLOBAL OPTIONS:
229
248
--caplin.checkpoint-sync.disable disable checkpoint sync in caplin (default: false)
230
249
--caplin.archive enables archival node in caplin (default: false)
231
250
--caplin.snapgen enables snapshot generation in caplin (default: false)
251
+
--caplin.snapgen enables snapshot generation in caplin (default: false)
232
252
--caplin.mev-relay-url value MEV relay endpoint. Caplin runs in builder mode if this is set
Copy file name to clipboardExpand all lines: src/basic-usage.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,7 @@ The all-in-one client is the preferred option for most users:
8
8
./build/bin/erigon
9
9
```
10
10
11
+
This CLI command allows you to run an Ethereum **full node ** where every process is integrated and no special configuration is needed.
11
12
This CLI command allows you to run an Ethereum **full node ** where every process is integrated and no special configuration is needed.
12
13
13
14
The default Consensus Layer utilized is [Caplin](./advanced/caplin.md), the Erigon flagship embedded CL.
@@ -20,11 +21,14 @@ The default Consensus Layer utilized is [Caplin](./advanced/caplin.md), the Erig
20
21
--datadir=<your_data_dir>
21
22
```
22
23
24
+
* Based on the [type of node](basic/node.md) you want to run you can add ```--prune.mode=archive``` to run a archive node or ```--prune.mode=minimal```for a minimal node.
23
25
* Based on the [type of node](basic/node.md) you want to run you can add ```--prune.mode=archive``` to run a archive node or ```--prune.mode=minimal```for a minimal node.
24
26
The default node is archive node.
25
27
*```--chain=mainnet```, add the flag `--chain=sepolia`for Sepolia testnet or `--chain=holesky`for Holesky testnet.
28
+
*```--chain=mainnet```, add the flag `--chain=sepolia`for Sepolia testnet or `--chain=holesky`for Holesky testnet.
26
29
*```--http.addr="0.0.0.0" --http.api=eth,web3,net,debug,trace,txpool``` to use RPC and e.g. be able to connect your [wallet](basic/wallet.md).
27
30
* To increase download speed add ```--torrent.download.rate=512mb``` (default is 16mb).
31
+
* To increase download speed add ```--torrent.download.rate=512mb``` (default is 16mb).
28
32
29
33
To stop the Erigon node you can use the ```CTRL+C``` command.
Erigon 3 implements support for [EIP-4444](https://eips.ethereum.org/EIPS/eip-4444) through its *Minimal Node configuration*, enabled by the flag `--prune.mode=minimal`. For example:
Copy file name to clipboardExpand all lines: src/basic/optimizing-storage.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,6 @@
1
1
# Optimizing Storage
2
2
*Using fast disks and cheap disks*
3
+
*Using fast disks and cheap disks*
3
4
4
5
For optimal performance, it's recommended to store the datadir on a fast NVMe-RAID disk. However, if this is not feasible, you can store the history on a cheaper disk and still achieve good performance.
Copy file name to clipboardExpand all lines: src/installation.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,9 @@
2
2
3
3
In order to use Erigon, the software has to be installed first. There are several ways to install Erigon, depending on the operating system and the user's choice of installation method, e.g. using a package manager, container or building from source.
4
4
5
+
The current version documented in these pages is Erigon 3.
6
+
7
+
> Always check the [list of releases](https://github.com/erigontech/erigon/releases) for release notes.
5
8
> Always check the [list of releases](https://github.com/erigontech/erigon/releases) for release notes.
Copy file name to clipboardExpand all lines: src/installation/docker.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,8 +19,12 @@ Here are the steps to download and start Erigon 3 in Docker:
19
19
20
20
1. Install the latest version of Docker Engine, see instructions [here](https://docs.docker.com/engine/install/).
21
21
22
+
2. Visit the Erigon Docker Hub page to view the available releases. For Erigon 3, search for the [latest available release](https://hub.docker.com/r/erigontech/erigon/tags?name=v3).
23
+
1. Install the latest version of Docker Engine, see instructions [here](https://docs.docker.com/engine/install/).
24
+
22
25
2. Visit the Erigon Docker Hub page to view the available releases. For Erigon 3, search for the [latest available release](https://hub.docker.com/r/erigontech/erigon/tags?name=v3).
23
26
27
+
3. Download the latest version:
24
28
3. Download the latest version:
25
29
26
30
```bash
@@ -36,8 +40,11 @@ docker run -it <image_id> --v
36
40
```
37
41
* If you want to start Erigon add the options according to the [basic usage](/basic-usage.md) page or the advanced customization page. For example:
38
42
43
+
* If you want to start Erigon add the options according to the [basic usage](/basic-usage.md) page or the advanced customization page. For example:
44
+
39
45
```bash
40
46
docker run -it 50bef1b5d0f9 --chain=holesky --prune.mode=minimal
47
+
docker run -it 50bef1b5d0f9 --chain=holesky --prune.mode=minimal
41
48
```
42
49
* When done, exit the container or press `Ctrl+C`. The container will stop.
0 commit comments