diff --git a/LICENSE.txt b/LICENSE.txt index 74e0cb5..a1e0302 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,3 +1,3 @@ -The Erigon 3 documentation © 2024 by Erigon contributors is licensed under CC BY 4.0. +The Erigon 3 documentation © 2025 by Erigon contributors is licensed under CC BY 4.0. To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/ diff --git a/src/about/contributing.md b/src/about/contributing.md index a42ba94..59e132f 100644 --- a/src/about/contributing.md +++ b/src/about/contributing.md @@ -11,18 +11,12 @@ Begin by exploring the comprehensive **[Programmer's Guide](https://github.com/l ### Dive Deeper into the Architecture For those interested in gaining a deeper understanding of Erigon's underlying architecture, visit the following resources: - -- **[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. -- **[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. - **[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. - **[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. ### Feature Exploration Erigon introduces several innovative features that contributors may find interesting to explore and contribute to: - -- **[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." -- **[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. - **[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." - **[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. diff --git a/src/advanced/JSONRPC-daemon.md b/src/advanced/JSONRPC-daemon.md index a2c4cab..f3ba34b 100644 --- a/src/advanced/JSONRPC-daemon.md +++ b/src/advanced/JSONRPC-daemon.md @@ -9,7 +9,7 @@ The RPC daemon is a crucial component of Erigon, enabling JSON remote procedure This document provides guidelines for understanding and using the various RPC methods available in Erigon. 1. **Compatibility with `eth` namespace** - - Erigon aims to be compatible with all standard Ethereum JSON-RPC API methods, as described [here](https://github.com/ethereum/execution-apis). See also [here](https://github.com/erigontech/erigon/blob/main/docs/readthedocs/source/rpc/index.rst) for examples. + - Erigon aims to be compatible with all standard Ethereum JSON-RPC API methods, as described [here](https://ethereum.org/en/developers/docs/apis/json-rpc/). See also [here](https://github.com/erigontech/erigon/blob/main/docs/readthedocs/source/rpc/index.rst) for examples. 1. **Compatibility with standard Geth methods** - All methods featured by Geth including [WebSocket Server](https://geth.ethereum.org/docs/interacting-with-geth/rpc#websockets-server), [IPC Server](https://geth.ethereum.org/docs/interacting-with-geth/rpc#ipc-server), TLS, [GraphQL](https://geth.ethereum.org/docs/interacting-with-geth/rpc/graphql), etc..., are supported by Erigon. diff --git a/src/advanced/bp-ext.md b/src/advanced/bp-ext.md index b25feb4..4f5c065 100644 --- a/src/advanced/bp-ext.md +++ b/src/advanced/bp-ext.md @@ -22,5 +22,3 @@ Other supported options are: - `--miner.recommit`: Time interval to recreate the block being mined (default: `3s`) - `--miner.gasprice`: This option sets the minimum gas price for mined transactions - `--miner.gastarget`: This option sets the maximum amount of gas that could be spent during a transaction. - -Erigon supports [standard JSON-RPC methods](https://ethereum.org/en/developers/docs/apis/json-rpc/). diff --git a/src/advanced/downloader.md b/src/advanced/downloader.md index 525d0c2..03c535f 100644 --- a/src/advanced/downloader.md +++ b/src/advanced/downloader.md @@ -63,7 +63,7 @@ Available Commands: Flags: --chain string name of the network to join (default "mainnet") - --datadir string Data directory for the databases (default "/home/bloxster/.local/share/erigon") + --datadir string Data directory for the databases (default "/home/admin/.local/share/erigon") --db.writemap Enable WRITE_MAP feature for fast database writes and fast commit times (default true) --diagnostics.disabled Disable diagnostics --diagnostics.endpoint.addr string Diagnostics HTTP server listening interface (default "127.0.0.1") diff --git a/src/advanced/options.md b/src/advanced/options.md index 89b488b..dad7c77 100644 --- a/src/advanced/options.md +++ b/src/advanced/options.md @@ -11,6 +11,8 @@ The `--help` flag listing is reproduced below for your convenience. ./build/bin/erigon --help ``` + + ## Commands ``` @@ -29,11 +31,6 @@ COMMANDS: seg, snapshots, segments Managing historical data segments (partitions) support Connect Erigon instance to a diagnostics system for support help, h Shows a list of commands or help for one command - init Bootstrap and initialize a new genesis block - import Import a blockchain file - seg, snapshots, segments Managing historical data segments (partitions) - support Connect Erigon instance to a diagnostics system for support - help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --datadir value Data directory for the databases (default: /home/bloxster/.local/share/erigon) @@ -53,10 +50,6 @@ GLOBAL OPTIONS: --txpool.commit.every value How often transactions should be committed to the storage (default: 15s) --prune.distance value Keep state history for the latest N blocks (default: everything) (default: 0) --prune.distance.blocks value Keep block history for the latest N blocks (default: everything) (default: 0) - --prune.mode value Choose a pruning preset to run onto. Available values: "full", "archive", "minimal". - Full: Keep only blocks and latest state, - Archive: Keep the entire indexed database, aka. no pruning, - Minimal: Keep only latest state (default: "full") --prune.mode value Choose a pruning preset to run onto. Available values: "full", "archive", "minimal". Full: Keep only blocks and latest state, Archive: Keep the entire indexed database, aka. no pruning, @@ -96,7 +89,6 @@ GLOBAL OPTIONS: --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) --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) --db.read.concurrency value Does limit amount of parallel db reads. Default: equal to GOMAXPROCS (or number of CPU) (default: 1408) - --db.read.concurrency value Does limit amount of parallel db reads. Default: equal to GOMAXPROCS (or number of CPU) (default: 1408) --rpc.accessList value Specify granular (method-by-method) API allowlist --trace.compat Bug for bug compatibility with OE for trace_ routines (default: false) --rpc.gascap value Sets a cap on gas that can be used in eth_call/estimateGas (default: 50000000) @@ -158,7 +150,6 @@ GLOBAL OPTIONS: --staticpeers value Comma separated enode URLs to connect to --trustedpeers value Comma separated enode URLs which are always allowed to connect, even above the peer limit --maxpeers value Maximum number of network peers (network disabled if set to 0) (default: 32) - --maxpeers value Maximum number of network peers (network disabled if set to 0) (default: 32) --chain value name of the network to join (default: "mainnet") --dev.period value Block period to use in developer mode (0 = mine only if transaction pending) (default: 0) --vmdebug Record information useful for VM and contract debugging (default: false) @@ -176,7 +167,6 @@ GLOBAL OPTIONS: --proposer.disable Disables PoS proposer (default: false) --miner.notify value Comma separated HTTP URL list to notify of new work packages --miner.gaslimit value Target gas limit for mined blocks (default: 36000000) - --miner.gaslimit value Target gas limit for mined blocks (default: 36000000) --miner.etherbase value Public address for block mining rewards (default: "0") --miner.extradata value Block extra data set by the miner (default = client version) --miner.noverify Disable remote sealing verification (default: false) @@ -211,12 +201,6 @@ GLOBAL OPTIONS: --caplin.max-inbound-traffic-per-peer value Max inbound traffic per second per peer (default: "256KB") --caplin.max-outbound-traffic-per-peer value Max outbound traffic per second per peer (default: "256KB") --caplin.adaptable-maximum-traffic-requirements Make the node adaptable to the maximum traffic requirement based on how many validators are being ran (default: true) - --caplin.subscribe-all-topics Subscribe to all gossip topics (default: false) - --caplin.max-peer-count value Max number of peers to connect (default: 80) - --caplin.enable-upnp Enable NAT porting for Caplin (default: false) - --caplin.max-inbound-traffic-per-peer value Max inbound traffic per second per peer (default: "256KB") - --caplin.max-outbound-traffic-per-peer value Max outbound traffic per second per peer (default: "256KB") - --caplin.adaptable-maximum-traffic-requirements Make the node adaptable to the maximum traffic requirement based on how many validators are being ran (default: true) --sentinel.addr value Address for sentinel (default: "localhost") --sentinel.port value Port for sentinel (default: 7777) --sentinel.bootnodes value [ --sentinel.bootnodes value ] Comma separated enode URLs for P2P discovery bootstrap @@ -234,7 +218,6 @@ GLOBAL OPTIONS: --silkworm.rpc.workers value Number of worker threads used in embedded Silkworm RPC service (zero means use default in Silkworm) (default: 0) --silkworm.rpc.compatibility Preserve JSON-RPC compatibility using embedded Silkworm RPC service (default: true) --beacon.api value [ --beacon.api value ] Enable beacon API (available endpoints: beacon, builder, config, debug, events, node, validator, lighthouse) - --beacon.api value [ --beacon.api value ] Enable beacon API (available endpoints: beacon, builder, config, debug, events, node, validator, lighthouse) --beacon.api.addr value sets the host to listen for beacon api requests (default: "localhost") --beacon.api.cors.allow-methods value [ --beacon.api.cors.allow-methods value ] set the cors' allow methods (default: "GET", "POST", "PUT", "DELETE", "OPTIONS") --beacon.api.cors.allow-origins value [ --beacon.api.cors.allow-origins value ] set the cors' allow origins @@ -251,7 +234,6 @@ GLOBAL OPTIONS: --caplin.blobs-no-pruning disable blob pruning in caplin (default: false) --caplin.checkpoint-sync.disable disable checkpoint sync in caplin (default: false) --caplin.snapgen enables snapshot generation in caplin (default: false) - --caplin.snapgen enables snapshot generation in caplin (default: false) --caplin.mev-relay-url value MEV relay endpoint. Caplin runs in builder mode if this is set --caplin.validator-monitor Enable caplin validator monitoring metrics (default: false) --caplin.custom-config value set the custom config for caplin diff --git a/src/basic/disk-space.md b/src/basic/disk-space.md index 36ae815..31eaa04 100644 --- a/src/basic/disk-space.md +++ b/src/basic/disk-space.md @@ -3,6 +3,7 @@ # Mainnets + ## Erigon with Caplin | Network | Archive Node | Full Node | Minimal Node | @@ -15,6 +16,7 @@ See also [sync times](https://github.com/erigontech/erigon?tab=readme-ov-file#sy # Testnets - ## Erigon with Caplin diff --git a/src/basic/node.md b/src/basic/node.md index 9e62090..3613659 100644 --- a/src/basic/node.md +++ b/src/basic/node.md @@ -6,10 +6,8 @@ Erigon 3 introduces a flexible approach to node configuration, offering three di |--------------|--------------|-----------|--------------| | Privacy, RPC | **Yes** | **Yes** | **Yes** | | Contribute to network | No | **Yes** | **Yes** | -| Contribute to network | No | **Yes** | **Yes** | | Research | No | No | **Yes** | | Staking | **Yes** | **Yes** | **Yes** | -| Staking | **Yes** | **Yes** | **Yes** | ## Minimal node diff --git a/src/getting-started/sw-requirements.md b/src/getting-started/sw-requirements.md index 2be0420..3915895 100644 --- a/src/getting-started/sw-requirements.md +++ b/src/getting-started/sw-requirements.md @@ -29,9 +29,9 @@ To install the latest Go version, visit the official documentation at [https://g ### C++ Compiler -This turns the C++ part of Erigon's code into a program your computer can run. You can use either **Clang** or **GCC**. +This turns the C++ part of Erigon's code into a program your computer can run. You can use either **Clang** or **GCC**: -- For **Clang** follow the instructions at [https://clang.llvm.org/get_started.html](https://clang.llvm.org/get_started.html). Only in Linux, place your terminal to directory where you want to install Clang and copy-paste this code: -- For **GCC** (version 10 or newer): [https://gcc.gnu.org/install/index.html](https://gcc.gnu.org/install/index.html) +- For **Clang** follow the instructions at [https://clang.llvm.org/get_started.html](https://clang.llvm.org/get_started.html); +- For **GCC** (version 10 or newer): [https://gcc.gnu.org/install/index.html](https://gcc.gnu.org/install/index.html). You can now proceed with Erigon [installation](/installation.md). \ No newline at end of file diff --git a/src/installation.md b/src/installation.md index 5a815fa..ffb3725 100644 --- a/src/installation.md +++ b/src/installation.md @@ -2,8 +2,6 @@ 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. -The current version documented in these pages is Erigon 3. - > Always check the [list of releases](https://github.com/erigontech/erigon/releases) for release notes. _____________________________ diff --git a/src/installation/upgrading-md b/src/installation/upgrading-md index 138522d..16d7b54 100644 --- a/src/installation/upgrading-md +++ b/src/installation/upgrading-md @@ -14,10 +14,12 @@ To upgrade Erigon to a newer version when you've originally installed it via Git * **Check out** the [latest version](https://github.com/ledgerwatch/erigon/releases) and switch to it using: + ```bash git checkout ``` + Replace `` with the version tag of the new release, for example: ```bash @@ -47,18 +49,21 @@ If you're using Docker to run Erigon, the process to upgrade to a newer version docker pull erigontech/erigon:v3.0.0-beta1 ``` + * **List Your Docker Images**: Check your downloaded images to confirm the new image is there and get the new image ID: ```bash docker images ``` + * **Stop the Running Erigon Container**: If you have a currently running Erigon container, you'll need to stop it before you can start the new version. First, find the container ID by listing the running containers: ```bash docker ps ``` + Then stop the container using: ```bash diff --git a/src/nodes/ethereum.md b/src/nodes/ethereum.md index 4ed75ba..cb7524e 100644 --- a/src/nodes/ethereum.md +++ b/src/nodes/ethereum.md @@ -97,7 +97,7 @@ The basic command to run Erigon with Caplin on Ethereum mainnet is: ## Basic Configuration​ -- If you want to store Erigon files in a non-default location, add flag `--datadir=`. Default data directory is `/home/usr/.local/share/`.erigon. +- If you want to store Erigon files in a non-default location, add flag `--datadir=`. Default data directory is `/home/usr/.local/share/erigon`. - Erigon is full node by default, use `--prune.mode=archive` to run a archive node or `--prune.mode=minimal` (EIP-4444). If you want to change [type of node](/basic/node.md) delete the `--datadir` folder content and restart Erigon with the appropriate flags. - Default chain is `--chain=mainnet` for Ethereum mainnet: - add the flag `--chain=holesky` for Holesky testnet; diff --git a/src/nodes/gnosis.md b/src/nodes/gnosis.md index 6fe1707..d7337d1 100644 --- a/src/nodes/gnosis.md +++ b/src/nodes/gnosis.md @@ -100,7 +100,7 @@ And an example of Lighthouse running Chiado testnet: ## Basic Configuration​ -- If you want to store Erigon files in a non-default location, add flag `--datadir=`. Default data directory is `/home/usr/.local/share/`.erigon. +- If you want to store Erigon files in a non-default location, add flag `--datadir=`. Default data directory is `/home/usr/.local/share/erigon`. - Erigon is full node by default, use `--prune.mode=archive` to run a archive node or `--prune.mode=minimal` (EIP-4444). If you want to change [type of node](/basic/node.md) delete the `--datadir` folder content and restart Erigon with the appropriate flags. - Add the flag `--chain=chiado` for Chiado testnet. - `--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). diff --git a/src/nodes/polygon.md b/src/nodes/polygon.md index 0c6aafc..7ec2db2 100644 --- a/src/nodes/polygon.md +++ b/src/nodes/polygon.md @@ -49,7 +49,7 @@ For a **Amoy testnet** archive node with remote Heimdall: ## Basic Configuration​ -- If you want to store Erigon files in a non-default location, add flag `--datadir=`. Default data directory is `/home/usr/.local/share/`.erigon. +- If you want to store Erigon files in a non-default location, add flag `--datadir=`. Default data directory is `/home/usr/.local/share/erigon`. - Erigon is full node by default, use `--prune.mode=archive` to run a archive node or `--prune.mode=minimal` (EIP-4444). If you want to change [type of node](/basic/node.md) delete the `--datadir` folder content and restart Erigon with the appropriate flags. - `--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). - To increase download speed add `--torrent.download.rate=512mb` (default is 16mb) diff --git a/src/staking.md b/src/staking.md index d5303dd..caaded4 100644 --- a/src/staking.md +++ b/src/staking.md @@ -4,5 +4,6 @@ Erigon is a comprehensive execution and consensus layer that also supports staking, aka block production, for Ethereum and Gnosis Chain. Both remote miners and Caplin are supported. -- Using a [external consensus client](/advanced/bp-ext.md) as validator -- Using [Caplin as validator](/advanced/bp-caplin.md) +- Using a [external consensus client](/advanced/bp-ext.md) as validator; + +- Using [Caplin as validator](/advanced/bp-caplin.md).