From 97d87409bc845b1f7c9e1195ef6accf6e8fc7d5c Mon Sep 17 00:00:00 2001 From: Satoshi Okamoto <107277499+butcher73@users.noreply.github.com> Date: Sun, 1 Jan 2023 22:16:53 +0700 Subject: [PATCH] Reth book for user (#666) * add reth book structur * introduction to reth * add system requirement * update docs * Add node detail * add Disclaimer for disk estimate * add Disclaimer for disk estimate * add comman-line options * matrics docs * add logs docs * remove disk usage for now * Add disable-discovery flag in cli docs #597 Co-authored-by: Satoshi Okamoto --- book/README.md | 3 +-- book/SUMMARY.md | 21 +++++++++++++------- book/faq/README.md | 1 + book/fundamentals/command-line_options.md | 13 ++++++++++++ book/fundamentals/logs.md | 3 +++ book/fundamentals/node.md | 7 +++++++ book/{ => getting_started}/installation.md | 0 book/getting_started/introduction.md | 7 +++++++ book/getting_started/system_requirements.md | 22 +++++++++++++++++++++ book/monitoring/matrics.md | 15 ++++++++++++++ 10 files changed, 83 insertions(+), 9 deletions(-) create mode 100644 book/faq/README.md create mode 100644 book/fundamentals/command-line_options.md create mode 100644 book/fundamentals/logs.md create mode 100644 book/fundamentals/node.md rename book/{ => getting_started}/installation.md (100%) create mode 100644 book/getting_started/introduction.md create mode 100644 book/getting_started/system_requirements.md create mode 100644 book/monitoring/matrics.md diff --git a/book/README.md b/book/README.md index db4a6a7a8..d982192ec 100644 --- a/book/README.md +++ b/book/README.md @@ -15,7 +15,6 @@ The book is continuously rendered [here](https://paradigmxyz.github.io/reth/)! **[Getting Started]()** To get started with Reth, install, configure and sync your node. -* To install and build reth, you can use the following [installation instruction](./installation.md). - +* To install and build reth, you can use the following [installation instruction](./getting_started/installation.md). [gh-book]: https://github.com/paradigmxyz/reth/tree/main/book \ No newline at end of file diff --git a/book/SUMMARY.md b/book/SUMMARY.md index 3018b44a9..b994f1299 100644 --- a/book/SUMMARY.md +++ b/book/SUMMARY.md @@ -1,9 +1,16 @@ -[Introduction](./README.md) +# Reth Book -# Getting Started +## Getting Started +- [Introduction](./README.md) +- [System requirements](./getting_started/system_requirement.md) +- [Installation Reth](./getting_started/installation.md) -- [Installation](./installation.md) -- [First Steps with Reth]() - -- [Configuring The Node]() -- [Running Reth]() +## Fundamentals +- [Node](./fundamentals/node.md) +- [Command-Line Options](./fundamentals/command-line_options.md) +- [Logs](./fundamentals/logs.md) + +## Monitoring +- [Matrics](./monitoring/matrics.md) + +## [FAQ](./faq/README.md) \ No newline at end of file diff --git a/book/faq/README.md b/book/faq/README.md new file mode 100644 index 000000000..4514b4c10 --- /dev/null +++ b/book/faq/README.md @@ -0,0 +1 @@ +# FAQ diff --git a/book/fundamentals/command-line_options.md b/book/fundamentals/command-line_options.md new file mode 100644 index 000000000..01d066315 --- /dev/null +++ b/book/fundamentals/command-line_options.md @@ -0,0 +1,13 @@ +# Command-Line Options + +## Command +- **node:** Start Reth node +- **test-chain:** Runs Ethereum blockchain tests +- **db:** database Debugging utilities for troubleshoot and fix issues with database systems. + +## Options +- **-v, --verbose:** Use verbose output +- **--silent:** Silence all output +- **--disable-discovery:** Do not spawn the discv4 service when running node. +- **-h, --help:** Print help information +- **-V, --version:** Print version information diff --git a/book/fundamentals/logs.md b/book/fundamentals/logs.md new file mode 100644 index 000000000..ee4e2481e --- /dev/null +++ b/book/fundamentals/logs.md @@ -0,0 +1,3 @@ +# Logs + +Reth nodes constantly output messages to the console, giving users the ability to monitor the current status of Reth in real-time. These logs can be helpful in understanding the normal operation of Reth, as well as identifying when issues may arise. However, interpreting these logs can be challenging for new users. This page aims to provide guidance on how to read and understand the log messages generated by Reth. \ No newline at end of file diff --git a/book/fundamentals/node.md b/book/fundamentals/node.md new file mode 100644 index 000000000..0abe3fa8a --- /dev/null +++ b/book/fundamentals/node.md @@ -0,0 +1,7 @@ +# Node + +Reth is a new Ethereum full node that allows users to sync and interact with the entire blockchain, including its historical state if in archive mode. + +- Full node: It can be used as a full node, which stores and processes the entire blockchain, validates blocks and transactions, and participates in the consensus process. + +- Archive node: It can also be used as an archive node, which stores the entire history of the blockchain and is useful for applications that need access to historical data. \ No newline at end of file diff --git a/book/installation.md b/book/getting_started/installation.md similarity index 100% rename from book/installation.md rename to book/getting_started/installation.md diff --git a/book/getting_started/introduction.md b/book/getting_started/introduction.md new file mode 100644 index 000000000..21d5bc095 --- /dev/null +++ b/book/getting_started/introduction.md @@ -0,0 +1,7 @@ +# Intruduction + +Reth is a user-friendly, modular, fast, and efficient Ethereum full node implementation that is compatible with the [Engine API](https://github.com/ethereum/execution-apis/tree/main/src/engine). It allows users to connect to the Ethereum network and interact with the blockchain, including sending and receiving transactions and accessing smart contracts. Reth is built and maintained by [Paradigm](https://www.paradigm.xyz/) and is licensed under the Apache and MIT licenses. + +## Status + +The project is not ready for use. We hope to have full sync implemented sometime in January/February 2023, followed by optimizations. In the meantime, we're working on making sure every crate of the repository is well documented, abstracted and tested. \ No newline at end of file diff --git a/book/getting_started/system_requirements.md b/book/getting_started/system_requirements.md new file mode 100644 index 000000000..67c64ba1f --- /dev/null +++ b/book/getting_started/system_requirements.md @@ -0,0 +1,22 @@ +# System Requirements + +**Disclaimer**: The information provided is only a rough estimate based on current node implementations, and may not be representative of all node implementations. We plan to conduct benchmarking and optimization tests to ensure the best performance for each specific audience. + +## Hardware +- 64-bit architecture. +- We recommend a minimum of 8GB RAM +- We recommend using an SSD or NVMe, as an HDD may cause the node to fall behind the chain tip. Note that SSD performance can deteriorate when close to capacity. + + +### Archive node +- TODO: We will update the disk usage estimate once it is ready. + +### Full node +- TODO: We will update the disk usage estimate once it is ready. + + + +## Software +- rustc 1.66.0 (69f9c33d7 2022-12-12) +- libclang-dev +- pkg-config diff --git a/book/monitoring/matrics.md b/book/monitoring/matrics.md new file mode 100644 index 000000000..3c49b9ca7 --- /dev/null +++ b/book/monitoring/matrics.md @@ -0,0 +1,15 @@ +# Matrics +Reth integrated with Prometheus allows users to measure various metrics to gain insight into the status and performance of a Reth node. For example, users can track the network status, transaction pool status, and other metrics to understand how the node is functioning. + +## Stage Header + +- **headers_counter**: Number of headers successfully retrieved +- **timeout_errors**: Number of timeout errors while requesting headers +- **validation_errors**: Number of validation errors while requesting headers +- **unexpected_errors**: Number of unexpected errors while requesting headers + +## Transaction pool + +- **inserted_transactions**: Number of transactions inserted in the pool +- **invalid_transactions**: Number of invalid transactions +- **removed_transactions**: Number of removed transactions from the pool \ No newline at end of file