Skip to content

docs(readme): drop content duplicated by docs.erigon.tech - #22915

Merged
AskAlexSharov merged 3 commits into
mainfrom
docs/readme-dedupe
Aug 3, 2026
Merged

docs(readme): drop content duplicated by docs.erigon.tech#22915
AskAlexSharov merged 3 commits into
mainfrom
docs/readme-dedupe

Conversation

@bloxster

@bloxster bloxster commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

What

The root README.md had grown into a second, slower-moving copy of the documentation site. This cuts it down to what only the repository can answer, and points everything else at the page that owns it.

README.md: 731 → 220 lines (+99 / −610).

Three commits, each reviewable on its own:

  1. Move operator content to the site and add the developer sections that were missing.
  2. Drop the sections the site already covers.
  3. Link out Hetzner and Windows; fix the torrent-log wording.

What moved out, and where it was verified

Every section below was read against the page that owns it before being removed — not assumed.

Removed from README Verified against
System Requirements get-started/hardware-requirements — disk figures for all five networks, per-mode RAM, kernel > v4, SSD/NVMe-over-HDD and the capacity-degradation caveat
Sync Times get-started/hardware-requirements, where the table now sits with a bandwidth caveat the README lacked
Usage / Getting Started get-started/installation — clone, tag checkout, make erigon, make -j<n>, ./build/bin/erigon
Datadir structure fundamentals/database → "The datadir at a glance" — same tree, clearer per-directory comments
Erigon3 datadir size fundamentals/database → "What does it cost on disk?" — identical measured figures for all five networks
Caplin / Caplin's Usage fundamentals/caplin + staking/caplin; --externalcl in fundamentals/architecture and staking/external-consensus-client-as-validator
Hetzner strict-firewall list help-center/troubleshooting → Hetzner firewall note
Windows get-started/installation — native compilation (Chocolatey, MinGW, the Win64/Kryptic.CIS anti-virus false positive), Docker, and WSL2

The earlier scope note in this PR — that it avoided everything #22866 and #22867 touched — no longer applies: both are merged to main, so the disk-size and network content they rewrote is settled and safe to defer to.

What is deliberately kept

  • Why Caplin exists instead of the Engine API. The site does not have this. fundamentals/architecture only notes that the Engine-API path matches Geth/Besu/Reth; it does not explain that one-block-at-a-time delivery is what conflicts with Erigon's bulk model. Condensed to two sentences.
  • Build prerequisites, moved out of the operator preamble into a new Building section under For developers — where a repository README should state its own toolchain. Trimmed to the toolchain plus a pointer to the installation page.
  • Everything a checkout can answer but the site cannot: executables table, testing, go get as a library, repository-doc index, devnet, diagnostics.

Two corrections, not just deletions

  • The Hetzner list was corrupted. It carried 127.16.0.0/12 "Private-Use Networks RFC 1918" — a mangling of loopback and RFC 1918, with 172.16.0.0/12 already listed separately — plus a Network Interconnect row and a Limited Broadcast row each split across two lines by the code fence. The linked version is correct.
  • The torrent-log level read backwards. The README said logs/torrent.log is written at whichever is lower of --torrent.verbosity and WARN. erigonToSlogLevel is 12 - 4*lvl (slogger.go:13), so a higher Erigon verbosity maps to a numerically lower slog.Level, and the min(erigonToSlogLevel(verbosity), slog.LevelWarn) at downloadercfg.go:249 selects the more verbose threshold. Reworded to match the behaviour operators actually see.

Ordering

Two of these cuts land content that reaches readers only once #22962 deploys — the Sync Times table and the corrected Hetzner blocklist are added to the site there, against release/3.5 (the branch docs-deploy.yml publishes from). Merge this after #22962 has deployed, otherwise those two links point at pages that do not yet carry the content.

Known gaps, for a follow-up docs PR against release/3.5

Three details existed only in the README and are not on the site. They are not blockers for the cut, but they should be added:

  • caplin/ is missing from the datadir tree in fundamentals/database.
  • The six domains are named in the README (account, storage, code, commitment, receipt, rcache); database.md only counts them as "4 state domains + 2 receipt domains".
  • The off-by-default size table had per-network columns for --prune.include-receipts, --prune.include-commitment-history and the Caplin archive; database.md gives mainnet only, as prose.

Verification

  • Every relative repo link resolves. This also fixes one that was already broken on main: cmd/downloader/README.md does not exist — the file is cmd/downloader/readme.md, now listed under Repository docs.
  • Both remaining internal anchors resolve; no dangling anchors left by the removed sections, and nothing in the repo or on the docs site links to any removed README anchor.
  • Every docs.erigon.tech target checked to exist in docs/site/, including the anchors #install-native, #install-wsl and the Hetzner firewall note.
  • docs/site: npm ci && npm run build clean; generate-llms.py --check OK (4 files, 74 pages).
  • Markdown only; no Go changed.

@bloxster
bloxster force-pushed the docs/readme-dedupe branch 2 times, most recently from 44207c6 to 5e688f8 Compare July 31, 2026 12:47
Two changes in one pass on README.md.

Removal: the sections whose content is already published from release/3.5
(install / Windows / RaspberryPi, upgrading and snapshot reset, history on
a cheap disk, logging flags and levels, TOML config, testnets, embedded CL,
modularity, multiple instances, key features, JSON-RPC daemon prose,
Grafana, port tables, public RPC hardening, docker-compose, perf tricks,
prune-mode notes) plus the 44-line table of contents, which GitHub now
renders from the headings. In their place: an eight-link shortlist of
starting points, the shape Besu and Nethermind use, rather than a full
index that goes stale silently.

Addition: the developer sections every other client README carries and
Erigon lacked — an executables table for what `make all` builds, the test
and lint targets, a repository-docs list, getting-help pointers, and a
license section. CONTRIBUTING.md and SECURITY.md do not exist in the repo;
adding them, and linking them from here, is left to a separate PR.

Deliberately untouched: every line that PRs 22866 (readme disk sizes) and
22867 (docs disk sizes) change. System Requirements, Sync Times, Getting
Started, Datadir structure, Erigon3 datadir size, Erigon3 changes from
Erigon2, Block Production, Caplin and Windows stay verbatim so those PRs
merge first without conflict — they are operator content and come out in a
follow-up, once the six things that have no page on the docs site (sync
times, the Hetzner firewall list, torrent-client logging, `make DIST`
install, the datadir-size detail tables, the WSL/MDBX caveats) have been
migrated there.

Headings that other kept sections link to (Beacon Chain, JSON-RPC daemon,
Default Ports and Firewalls, Logging) remain as short pointers so no
in-page anchor breaks.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reduces duplication between the root README.md and the docs site (docs.erigon.tech) by removing large operator-focused sections that already exist in docs/site/docs/, and replacing them with curated links to the canonical documentation while keeping repository/developer-focused guidance.

Changes:

  • Replaces the large README table-of-contents + duplicated operator docs with a “Documentation” section linking to key docs.erigon.tech entry points.
  • Trims/redirects several previously inlined sections (logging, beacon-chain/JWT/CL setup, ports/firewalls, rpcdaemon, etc.) to the docs site.
  • Adds a “For developers” section with executables, testing targets, and a “Repository docs” link list to in-repo documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
Comment on lines +13 to +15
**[Download](https://github.com/erigontech/erigon/releases)**
| [Documentation](https://docs.erigon.tech/)
| [Blog](https://erigon.tech/blog/)
Comment thread README.md
Comment on lines +17 to +18
This README is for people working on the repository. Everything about operating a node — install methods,
flags, pruning modes, ports, monitoring, staking — is on the documentation site.
@bloxster bloxster changed the title docs(readme): drop content duplicated by docs.erigon.tech (main-readme): drop content duplicated by docs.erigon.tech Jul 31, 2026
Bloxster and others added 2 commits August 3, 2026 10:38
Each section below was cross-checked against the page that owns it on
docs.erigon.tech before being removed. Only content that is genuinely
duplicated is dropped; gaps are listed at the end.

- System Requirements -> get-started/hardware-requirements. Disk figures for
  all five networks, per-mode RAM, kernel > v4, SSD/NVMe-over-HDD and the
  capacity-degradation caveat are all there, in a per-network tabbed table
  rather than one flat grid. The cloud-drive note was already only a link into
  help-center/known-issues.
- Sync Times -> get-started/hardware-requirements, where the table now lives
  with a bandwidth caveat the README lacked.
- Usage / Getting Started -> get-started/installation, which covers clone,
  tag checkout, `make erigon`, `make -j<n>` and `./build/bin/erigon` in more
  detail. `--chain=gnosis` with an external CL has its own page.
- Datadir structure -> fundamentals/database "The datadir at a glance", which
  documents the same tree with clearer per-directory comments.
- Erigon3 datadir size -> fundamentals/database "What does it cost on disk?",
  which carries the identical measured figures for all five networks.
- Caplin and Caplin's Usage -> condensed to a pointer at fundamentals/caplin
  and staking/caplin, which document the archival flags and the whole Beacon
  API surface. `--externalcl` is covered in fundamentals/architecture and
  staking/external-consensus-client-as-validator.

Kept, because the site does not have it: the rationale for building a
Consensus Layer instead of using the Engine API. fundamentals/architecture
only notes that the Engine-API path matches Geth/Besu/Reth; it does not
explain that the one-block-at-a-time delivery model is what conflicts with
Erigon's bulk design. Rewritten to two sentences.

Build prerequisites move from the operator preamble into a new "Building"
section under For developers, where a repository README should state its own
toolchain. Trimmed to the toolchain itself plus a pointer to the installation
page for packaged binaries and per-platform steps.

The deleted Datadir structure section carried a link to
`cmd/downloader/README.md`, which does not exist — the file is
`cmd/downloader/readme.md`. Rather than lose the reference with the section,
it is listed under Repository docs with a working link and an accurate
description: the file is a snapshots overview, not standalone-downloader
instructions.

Not covered on the site, so it leaves the repo with these cuts and needs a
separate docs PR against release/3.5:
- The `caplin/` directory is missing from the datadir tree in
  fundamentals/database.
- The six domains are named in the README (account, storage, code, commitment,
  receipt, rcache); database.md only counts them as "4 state domains + 2
  receipt domains".
- The off-by-default size table had per-network columns for receipts,
  commitment history and the Caplin archive; database.md gives mainnet only,
  as prose.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Hetzner reserved-range blocklist replaced with a link to the Hetzner
  firewall note in help-center/troubleshooting. The inline copy also carried a
  corrupted row — `127.16.0.0/12 Private-Use Networks RFC 1918`, a mangling of
  loopback and RFC 1918 — plus a Network Interconnect entry and a Limited
  Broadcast entry each split across two lines by the code fence.
- Windows section removed. get-started/installation covers all three routes in
  more detail: native compilation (Chocolatey, MinGW, the `Win64/Kryptic.CIS`
  anti-virus false positive), Docker, and WSL2. A pointer to both anchors is
  added to the Building section, since this README no longer has a Getting
  Started section to put it in.
- Torrent client logging: the level was described as "whichever is lower" of
  `torrent.verbosity` and WARN, which reads backwards. `erigonToSlogLevel` is
  `12 - 4*lvl`, so a higher Erigon verbosity maps to a numerically lower
  `slog.Level` and the `min(..., slog.LevelWarn)` in downloadercfg selects the
  more verbose threshold. Reworded to match, and to name the flags that gate
  the forwarded copies.

Dropping the Windows section also removes the last reference to the
`#json-rpc-daemon` anchor; the section itself stays.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@bloxster bloxster changed the title (main-readme): drop content duplicated by docs.erigon.tech docs(readme): drop content duplicated by docs.erigon.tech Aug 3, 2026
@bloxster bloxster added the docs label Aug 3, 2026
@bloxster
bloxster marked this pull request as ready for review August 3, 2026 11:11
@AskAlexSharov
AskAlexSharov added this pull request to the merge queue Aug 3, 2026
Merged via the queue into main with commit 5fb5070 Aug 3, 2026
40 checks passed
@AskAlexSharov
AskAlexSharov deleted the docs/readme-dedupe branch August 3, 2026 11:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants