Skip to content
This repository was archived by the owner on Dec 22, 2025. It is now read-only.

Commit f49b240

Browse files
author
bloxster
committed
Merge branch 'main' into development
2 parents ed55c2b + 9cc6a32 commit f49b240

File tree

9 files changed

+82
-0
lines changed

9 files changed

+82
-0
lines changed

src/about/contributing.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Contributing to Erigon 3
2+
# Contributing to Erigon 3
23

34
## Development
45

@@ -14,11 +15,16 @@ For those interested in gaining a deeper understanding of Erigon's underlying ar
1415
- **[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.
1516
- **[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.
1617

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+
1721

1822
### Feature Exploration
1923
Erigon introduces several innovative features that contributors may find interesting to explore and contribute to:
2024
- **[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."
2125
- **[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.
2228

2329
## Wiki
2430

src/advanced/options.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ COMMANDS:
2929
seg, snapshots, segments Managing historical data segments (partitions)
3030
support Connect Erigon instance to a diagnostics system for support
3131
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
3237
3338
GLOBAL OPTIONS:
3439
--datadir value Data directory for the databases (default: /home/bloxster/.local/share/erigon)
@@ -48,6 +53,10 @@ GLOBAL OPTIONS:
4853
--txpool.commit.every value How often transactions should be committed to the storage (default: 15s)
4954
--prune.distance value Keep state history for the latest N blocks (default: everything) (default: 0)
5055
--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")
5160
--prune.mode value Choose a pruning preset to run onto. Available values: "full", "archive", "minimal".
5261
Full: Keep only blocks and latest state,
5362
Archive: Keep the entire indexed database, aka. no pruning,
@@ -87,6 +96,7 @@ GLOBAL OPTIONS:
8796
--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)
8897
--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)
8998
--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)
90100
--rpc.accessList value Specify granular (method-by-method) API allowlist
91101
--trace.compat Bug for bug compatibility with OE for trace_ routines (default: false)
92102
--rpc.gascap value Sets a cap on gas that can be used in eth_call/estimateGas (default: 50000000)
@@ -147,6 +157,7 @@ GLOBAL OPTIONS:
147157
--staticpeers value Comma separated enode URLs to connect to
148158
--trustedpeers value Comma separated enode URLs which are always allowed to connect, even above the peer limit
149159
--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)
150161
--chain value name of the network to join (default: "mainnet")
151162
--dev.period value Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)
152163
--vmdebug Record information useful for VM and contract debugging (default: false)
@@ -164,6 +175,7 @@ GLOBAL OPTIONS:
164175
--proposer.disable Disables PoS proposer (default: false)
165176
--miner.notify value Comma separated HTTP URL list to notify of new work packages
166177
--miner.gaslimit value Target gas limit for mined blocks (default: 36000000)
178+
--miner.gaslimit value Target gas limit for mined blocks (default: 36000000)
167179
--miner.etherbase value Public address for block mining rewards (default: "0")
168180
--miner.extradata value Block extra data set by the miner (default = client version)
169181
--miner.noverify Disable remote sealing verification (default: false)
@@ -198,6 +210,12 @@ GLOBAL OPTIONS:
198210
--caplin.max-inbound-traffic-per-peer value Max inbound traffic per second per peer (default: "256KB")
199211
--caplin.max-outbound-traffic-per-peer value Max outbound traffic per second per peer (default: "256KB")
200212
--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)
201219
--sentinel.addr value Address for sentinel (default: "localhost")
202220
--sentinel.port value Port for sentinel (default: 7777)
203221
--sentinel.bootnodes value [ --sentinel.bootnodes value ] Comma separated enode URLs for P2P discovery bootstrap
@@ -214,6 +232,7 @@ GLOBAL OPTIONS:
214232
--silkworm.rpc.workers value Number of worker threads used in embedded Silkworm RPC service (zero means use default in Silkworm) (default: 0)
215233
--silkworm.rpc.compatibility Preserve JSON-RPC compatibility using embedded Silkworm RPC service (default: true)
216234
--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)
217236
--beacon.api.addr value sets the host to listen for beacon api requests (default: "localhost")
218237
--beacon.api.cors.allow-methods value [ --beacon.api.cors.allow-methods value ] set the cors' allow methods (default: "GET", "POST", "PUT", "DELETE", "OPTIONS")
219238
--beacon.api.cors.allow-origins value [ --beacon.api.cors.allow-origins value ] set the cors' allow origins
@@ -229,6 +248,7 @@ GLOBAL OPTIONS:
229248
--caplin.checkpoint-sync.disable disable checkpoint sync in caplin (default: false)
230249
--caplin.archive enables archival node in caplin (default: false)
231250
--caplin.snapgen enables snapshot generation in caplin (default: false)
251+
--caplin.snapgen enables snapshot generation in caplin (default: false)
232252
--caplin.mev-relay-url value MEV relay endpoint. Caplin runs in builder mode if this is set
233253
--caplin.validator-monitor Enable caplin validator monitoring metrics (default: false)
234254
--caplin.custom-config value set the custom config for caplin

src/basic-usage.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ The all-in-one client is the preferred option for most users:
88
./build/bin/erigon
99
```
1010

11+
This CLI command allows you to run an Ethereum **full node ** where every process is integrated and no special configuration is needed.
1112
This CLI command allows you to run an Ethereum **full node ** where every process is integrated and no special configuration is needed.
1213

1314
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
2021
--datadir=<your_data_dir>
2122
```
2223

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.
2325
* 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.
2426
The default node is archive node.
2527
* ```--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.
2629
* ```--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).
2730
* 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).
2832

2933
To stop the Erigon node you can use the ```CTRL+C``` command.
3034

src/basic/disk-space.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Disk Space Required
22
*How much space your Erigon node will take*
3+
*How much space your Erigon node will take*
34

45

56
# Mainnets
@@ -11,6 +12,7 @@
1112
| Gnosis | 535 GB | 365 GB | 210 GB |
1213
| Polygon | 4.3 TB | 2 TB | 873 GB |
1314

15+
<div class="hidden">
1416
<div class="hidden">
1517
## Erigon with an external Consensus Layer client
1618

@@ -24,10 +26,12 @@
2426
| Chiado | ... GB | ... GB | ... GB |
2527
| Amoy | ... GB | ... GB | ... GB |
2628

29+
</div>
2730
</div>
2831

2932
# Testnets
3033
## Erigon with Caplin
34+
## Erigon with Caplin
3135

3236
| Network | Archive Node | Full Node | Minimal Node |
3337
|----------|--------------|-----------|--------------|

src/basic/node.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,14 @@ Erigon 3 introduces a flexible approach to node configuration, offering three di
66
|--------------|--------------|-----------|--------------|
77
| Privacy, RPC | **Yes** | **Yes** | **Yes** |
88
| Contribute to network | No | **Yes** | **Yes** |
9+
| Contribute to network | No | **Yes** | **Yes** |
910
| Research | No | No | **Yes** |
1011
| Staking | **Yes** | **Yes** | **Yes** |
12+
| Staking | **Yes** | **Yes** | **Yes** |
1113

1214
## Minimal node
1315

16+
1417
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:
1518

1619
```bash

src/basic/optimizing-storage.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Optimizing Storage
22
*Using fast disks and cheap disks*
3+
*Using fast disks and cheap disks*
34

45
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.
56

src/installation.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
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.
44

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.
58
> Always check the [list of releases](https://github.com/erigontech/erigon/releases) for release notes.
69
710
_____________________________

src/installation/docker.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,12 @@ Here are the steps to download and start Erigon 3 in Docker:
1919

2020
1. Install the latest version of Docker Engine, see instructions [here](https://docs.docker.com/engine/install/).
2121

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+
2225
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).
2326

27+
3. Download the latest version:
2428
3. Download the latest version:
2529

2630
```bash
@@ -36,8 +40,11 @@ docker run -it <image_id> --v
3640
```
3741
* 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:
3842

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+
3945
```bash
4046
docker run -it 50bef1b5d0f9 --chain=holesky --prune.mode=minimal
47+
docker run -it 50bef1b5d0f9 --chain=holesky --prune.mode=minimal
4148
```
4249
* When done, exit the container or press `Ctrl+C`. The container will stop.
4350

0 commit comments

Comments
 (0)