mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-09 23:38:10 -05:00
docs: fix typos across documentation (#17102)
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -67,7 +67,7 @@ There are many tables within the node, all used to store different types of data
|
||||
|
||||
## Database
|
||||
|
||||
Reth's database design revolves around it's main [Database trait](https://github.com/paradigmxyz/reth/blob/bf9cac7571f018fec581fe3647862dab527aeafb/crates/storage/db-api/src/database.rs#L8-L52), which implements the database's functionality across many types. Let's take a quick look at the `Database` trait and how it works.
|
||||
Reth's database design revolves around its main [Database trait](https://github.com/paradigmxyz/reth/blob/bf9cac7571f018fec581fe3647862dab527aeafb/crates/storage/db-api/src/database.rs#L8-L52), which implements the database's functionality across many types. Let's take a quick look at the `Database` trait and how it works.
|
||||
|
||||
[File: crates/storage/db-api/src/database.rs](https://github.com/paradigmxyz/reth/blob/bf9cac7571f018fec581fe3647862dab527aeafb/crates/storage/db-api/src/database.rs#L8-L52)
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# eth-wire
|
||||
|
||||
The `eth-wire` crate provides abstractions over the [``RLPx``](https://github.com/ethereum/devp2p/blob/master/rlpx.md) and
|
||||
The `eth-wire` crate provides abstractions over the [`RLPx`](https://github.com/ethereum/devp2p/blob/master/rlpx.md) and
|
||||
[Eth wire](https://github.com/ethereum/devp2p/blob/master/caps/eth.md) protocols.
|
||||
|
||||
This crate can be thought of as having 2 components:
|
||||
@@ -334,7 +334,7 @@ impl<S, E> Sink<EthMessage> for EthStream<S> {
|
||||
}
|
||||
```
|
||||
## Unauthed streams
|
||||
For a session to be established, peers in the Ethereum network must first exchange a `Hello` message in the ``RLPx`` layer and then a
|
||||
For a session to be established, peers in the Ethereum network must first exchange a `Hello` message in the `RLPx` layer and then a
|
||||
`Status` message in the eth-wire layer.
|
||||
|
||||
To perform these, reth has special `Unauthed` versions of streams described above.
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
### Table layout
|
||||
|
||||
Historical state changes are indexed by `BlockNumber`. This means that `reth` stores the state for every account after every block that touched it, and it provides indexes for accessing that data quickly. While this may make the database size bigger (needs benchmark once `reth` is closer to prod).
|
||||
Historical state changes are indexed by `BlockNumber`. This means that `reth` stores the state for every account after every block that touched it, and it provides indexes for accessing that data quickly. While this may make the database size bigger (needs benchmark once `reth` is closer to prod), it provides fast access to historical state.
|
||||
|
||||
Below, you can see the table design that implements this scheme:
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ Why? This is a win for everyone. RPC providers meet more impressive SLAs, MEV se
|
||||
|
||||
The biggest bottleneck in this pipeline is not the execution of the EVM interpreter itself, but rather in accessing state and managing I/O. As such, we think the largest optimizations to be made are closest to the DB layer.
|
||||
|
||||
Ideally, we can achieve such fast runtime operation that we can avoid storing certain things (e.g.?) on the disk, and are able to generate them on the fly, instead - minimizing disk footprint.
|
||||
Ideally, we can achieve such fast runtime operation that we can avoid storing certain things (e.g., transaction receipts) on the disk, and are able to generate them on the fly, instead - minimizing disk footprint.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -24,9 +24,9 @@ This document contains some of our research in how other codebases designed vari
|
||||
## Header Downloaders
|
||||
|
||||
* Erigon Header Downloader:
|
||||
* A header downloader algo was introduced in [`erigon#1016`](https://github.com/ledgerwatch/erigon/pull/1016) and finished in [`erigon#1145`](https://github.com/ledgerwatch/erigon/pull/1145). At a high level, the downloader concurrently requested headers by hash, then sorted, validated and fused the responses into chain segments. Smaller segments were fused into larger as the gaps between them were filled. The downloader is also used to maintain hardcoded hashes (later renamed to preverified) to bootstrap the sync.
|
||||
* A header downloader algorithm was introduced in [`erigon#1016`](https://github.com/ledgerwatch/erigon/pull/1016) and finished in [`erigon#1145`](https://github.com/ledgerwatch/erigon/pull/1145). At a high level, the downloader concurrently requested headers by hash, then sorted, validated and fused the responses into chain segments. Smaller segments were fused into larger as the gaps between them were filled. The downloader is also used to maintain hardcoded hashes (later renamed to preverified) to bootstrap the sync.
|
||||
* The downloader was refactored multiple times: [`erigon#1471`](https://github.com/ledgerwatch/erigon/pull/1471), [`erigon#1559`](https://github.com/ledgerwatch/erigon/pull/1559) and [`erigon#2035`](https://github.com/ledgerwatch/erigon/pull/2035).
|
||||
* With PoS transition in [`erigon#3075`](https://github.com/ledgerwatch/erigon/pull/3075) terminal td was introduced to the algo to stop forward syncing. For the downward sync (post merge), the download was now delegated to [`EthBackendServer`](https://github.com/ledgerwatch/erigon/blob/3c95db00788dc740849c2207d886fe4db5a8c473/ethdb/privateapi/ethbackend.go#L245)
|
||||
* With PoS transition in [`erigon#3075`](https://github.com/ledgerwatch/erigon/pull/3075) terminal td was introduced to the algorithm to stop forward syncing. For the downward sync (post merge), the downloader was now delegated to [`EthBackendServer`](https://github.com/ledgerwatch/erigon/blob/3c95db00788dc740849c2207d886fe4db5a8c473/ethdb/privateapi/ethbackend.go#L245)
|
||||
* Proper reverse PoS downloader was introduced in [`erigon#3092`](https://github.com/ledgerwatch/erigon/pull/3092) which downloads the header batches from tip until local head is reached. Refactored later in [`erigon#3340`](https://github.com/ledgerwatch/erigon/pull/3340) and [`erigon#3717`](https://github.com/ledgerwatch/erigon/pull/3717).
|
||||
|
||||
* Akula Headers & Stage Downloader:
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
This repository contains several Rust crates that implement the different building blocks of an Ethereum node. The high-level structure of the repository is as follows:
|
||||
|
||||
Generally reth is composed of a few components, with supporting crates. The main components can be defined as:
|
||||
Generally, reth is composed of a few components, with supporting crates. The main components can be defined as:
|
||||
|
||||
- [Project Layout](#project-layout)
|
||||
- [Documentation](#documentation)
|
||||
|
||||
@@ -254,5 +254,5 @@ Reth follows the [Rust Code of Conduct](https://www.rust-lang.org/conduct.html).
|
||||
If you experience or witness behavior that violates our code of conduct, please report it to [georgios@paradigm.xyz](mailto:georgios@paradigm.xyz).
|
||||
|
||||
:::note
|
||||
Also read [CONTRIBUTING.md](https://github.com/paradigmxyz/reth/blob/main/CONTRIBUTING.md) for in depth guidelines.
|
||||
Also read [CONTRIBUTING.md](https://github.com/paradigmxyz/reth/blob/main/CONTRIBUTING.md) for in-depth guidelines.
|
||||
:::
|
||||
|
||||
@@ -100,7 +100,7 @@ It will take the same time as initial sync.
|
||||
|
||||
### Database write error
|
||||
|
||||
If you encounter an irrecoverable database-related errors, in most of the cases it's related to the RAM/NVMe/SSD you use. For example:
|
||||
If you encounter irrecoverable database-related errors, in most cases it's related to the RAM/NVMe/SSD you use. For example:
|
||||
|
||||
```console
|
||||
Error: A stage encountered an irrecoverable error.
|
||||
|
||||
Reference in New Issue
Block a user