nimbus-eth2/docs
Jacek Sieka d839b9d07e
State-only checkpoint state startup (#4251)
Currently, we require genesis and a checkpoint block and state to start
from an arbitrary slot - this PR relaxes this requirement so that we can
start with a state alone.

The current trusted-node-sync algorithm works by first downloading
blocks until we find an epoch aligned non-empty slot, then downloads the
state via slot.

However, current
[proposals](https://github.com/ethereum/beacon-APIs/pull/226) for
checkpointing prefer finalized state as
the main reference - this allows more simple access control and caching
on the server side - in particular, this should help checkpoint-syncing
from sources that have a fast `finalized` state download (like infura
and teku) but are slow when accessing state via slot.

Earlier versions of Nimbus will not be able to read databases created
without a checkpoint block and genesis. In most cases, backfilling makes
the database compatible except where genesis is also missing (custom
networks).

* backfill checkpoint block from libp2p instead of checkpoint source,
when doing trusted node sync
* allow starting the client without genesis / checkpoint block
* perform epoch start slot lookahead when loading tail state, so as to
deal with the case where the epoch start slot does not have a block
* replace `--blockId` with `--state-id` in TNS command line
* when replaying, also look at the parent of the last-known-block (even
if we don't have the parent block data, we can still replay from a
"parent" state) - in particular, this clears the way for implementing
state pruning
* deprecate `--finalized-checkpoint-block` option (no longer needed)
2022-11-02 10:02:38 +00:00
..
nbc_audit_2020 Consensus object pools [reorg 4/5] (#2374) 2021-03-04 10:13:44 +01:00
the_auditors_handbook enable `styleCheck:usages` (#3573) 2022-04-08 16:22:49 +00:00
the_nimbus_book State-only checkpoint state startup (#4251) 2022-11-02 10:02:38 +00:00
.gitignore Migrate docs to mkdocs (#3900) 2022-07-22 21:47:24 +02:00
Makefile Migrate docs to mkdocs (#3900) 2022-07-22 21:47:24 +02:00
README.md book edits (#3955) 2022-08-13 20:17:20 +02:00
attestation_flow.dot [RFC - Doc] State of Nimbus block & attestation flows (#2351) 2021-03-01 11:22:16 +01:00
attestation_flow.md Updated nomenclature for eth2 naming (#4202) 2022-10-01 20:01:41 +00:00
attestation_flow.png [RFC - Doc] State of Nimbus block & attestation flows (#2351) 2021-03-01 11:22:16 +01:00
block_flow.dot Backward sync support for SyncManager. (#3131) 2021-12-08 22:15:29 +01:00
block_flow.md update consensus spec ref URLs to v1.2.0 (#4164) 2022-09-23 07:56:06 +00:00
block_flow.png [RFC - Doc] State of Nimbus block & attestation flows (#2351) 2021-03-01 11:22:16 +01:00
cpu_features.md Cpu architecture optimization documentation (#2483) 2021-04-08 15:48:43 +02:00
e2store.md era: document block root access 2022-10-26 18:34:39 +02:00
kiln_geth_local_testnet.md remove obsolete merge test vector test bash script (#4135) 2022-09-16 22:49:39 +02:00
kiln_geth_logs.png update docs for geth/kiln 2022-02-11 20:06:06 +00:00
logging.md Revisiting log levels (#1788) 2020-10-01 20:56:42 +02:00
nimbus_localhost_run.png update docs for geth/kiln 2022-02-11 20:06:06 +00:00
requirements.in Migrate docs to mkdocs (#3900) 2022-07-22 21:47:24 +02:00
requirements.txt Migrate docs to mkdocs (#3900) 2022-07-22 21:47:24 +02:00

README.md

Documentation

material for mkdocs

The Nimbus guide is generated using Material for mkdocs, and installed using a python VENV (see Makefile).

mdbook

Some books in this folder were produced using mdBook - see installation guide.

# Install or update tooling (make sure you add "~/.cargo/bin" to PATH):
cargo install mdbook --version 0.4.18
cargo install mdbook-toc --version 0.8.0
cargo install mdbook-open-on-gh --version 2.1.0
cargo install mdbook-admonish --version 1.7.0

# Work on the book locally - open "http://localhost:4000" for live version
cd docs/the_nimbus_book
mdbook serve -p 4000

# Create a local copy of the book
make book

# Publish book using makefile (in the top-level dir)
make publish-book