Commit Graph

325 Commits

Author SHA1 Message Date
Jacek Sieka 6e2a02466e
unify bn/vc doppelganger detection (#4398)
* fix REST liveness endpoint responding even when gossip is not enabled
* fix VC exit code on doppelganger hit
* fix activation epoch not being updated correctly on long deposit
queues
* fix activation epoch being set incorrectly when updating validator
* move most implementation logic to `validator_pool`, add tests
* ensure consistent logging between VC and BN
* add docs
2022-12-09 17:05:55 +01:00
cheny0 6b5682df70
change all :s to s (#4403)
* change all :s to s

* edit one more :s
2022-12-09 10:42:52 +01:00
tersec 7e5f40e04c
remove built-in Ropsten support (#4280)
* remove built-in Ropsten support

* link to ropsten shutdown-specific blog post

Co-authored-by: zah <zahary@status.im>
2022-12-05 11:15:00 +02:00
Zahary Karadjov 7dd4718735
Version 22.11.0 2022-12-01 07:38:54 +02:00
Chen Yang 925843c35b 4347 fix the REST API navigation typo 2022-11-24 18:00:48 +08:00
Jacek Sieka 44cab3a4cc
Update quick-start.md 2022-11-23 15:41:39 +01:00
Etan Kissling 2823be7306
periodically log LC sync progress (#4339)
Adds a "Slot start" log to the LC that behaves similar to BN to inform
the user that the light client is doing something, and to indicate the
latest view of the network (finalized / optimistic).
2022-11-22 16:39:03 +01:00
Kim De Mey 84bacf7cc6
Nimbus guide: Fix link to consensus light client page (#4336) 2022-11-18 18:22:10 +01:00
Jacek Sieka 1b90f65f7b
doc updates (#4314)
* optimise index / landing page real estate, add feature list
* fee recipient in quickstart
* recommend http over websockets  (fewer command line options needed)
* simplify PBS, fee recipient docs
* add VC role / sentry node docs (#4140)
* Update docs/the_nimbus_book/src/rest-api.md

Co-authored-by: tersec <tersec@users.noreply.github.com>
2022-11-13 07:59:55 +01:00
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
Jacek Sieka a958313feb
remove obsolete troubleshooting section 2022-10-27 14:15:09 +02:00
Jacek Sieka b08d0ff2ab
Optimistic mode (#4262)
In optimistic mode, Nimbus will sync optimistically even when the
execution client is offline / not available.

An optimistic node is less secure because it has not validated block
transactions via the execution client and can thus not be used for
validation duties.
2022-10-26 20:44:45 +00:00
tersec 9045840c75
point to Goerli/Prater launchpad requiring much less ETH (#4257) 2022-10-26 11:03:37 +03:00
Jacek Sieka 22d68de365
`.era` store docs (#4234)
* `.era` store docs

Initial documentation for era file generation and usage

* Update docs/the_nimbus_book/src/era-store.md

Co-authored-by: zah <zahary@status.im>

* Update docs/the_nimbus_book/src/era-store.md

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

* remove dupe

Co-authored-by: zah <zahary@status.im>
Co-authored-by: Kim De Mey <kim.demey@gmail.com>
2022-10-14 14:28:37 +02:00
tersec b8e9240ee0
the merge has occurred (#4219)
* the merge has occurred

* restore 🐼
2022-10-05 17:04:13 +03:00
tersec ce915c0a03
add beaconcha.in mainnet relay overview to guide (#4217) 2022-10-04 19:45:06 +03:00
tersec 76b3db3d7e
add prater.beaconcha.in external block builder overview link (#4211)
* add prater.beaconcha.in external block builder overview link

* Update docs/the_nimbus_book/src/external-block-builder.md

Co-authored-by: Etan Kissling <etan@status.im>

Co-authored-by: Etan Kissling <etan@status.im>
2022-10-03 16:56:49 +00:00
Julian Ste 86800066e4
Typo and updated specific version (#4203)
* Typo and updated specific version

* Update keep-updated.md

* Update keep-updated.md
2022-10-01 20:20:11 +00:00
tersec 6c18e82506
link to document of available external builder relays (#4157) 2022-09-26 19:11:34 +00:00
Etan Kissling 0708fcd7cf
rm require engine API check (#4144)
The `eth1_monitor` check to require engine API from bellatrix onward
has issues in setups where the EL and CL are started simultaneously
because the EL may not be ready to answer requests by the time that the
check is performed. This can be observed, e.g., on Raspberry Pi 4 when
using Besu as the EL client. Now that the merge transition happened, the
check is also not that useful anymore, as users have other ways to know
that their setup is not working correctly (e.g., repeated exchange logs)
2022-09-19 23:47:46 +02:00
Kim De Mey c607d7da0b
Trusted node sync clarifications in nimbus book (#4146)
- Make it clear that it is a separate command from actually
running the beacon node
- Fix and extend the note on starting from a clean folder
2022-09-19 13:32:28 +03:00
Shiti Saxena dc21897e48
docs: add note about data-dir (#4124) 2022-09-17 08:03:38 +03:00
Jacek Sieka 23fb596779
add link to eth-clients checkpoint sync sources 2022-09-15 13:02:05 +02:00
Miguel Tenorio f935f3527b
Fix typo in docs/docker.md (#4110) 2022-09-10 18:50:57 +02:00
Jacek Sieka c74b6040eb
docs: fix date 2022-09-06 08:25:34 +02:00
Jacek Sieka dd0a14aa2e
merge docs update
Note the date and time
2022-09-06 07:50:56 +02:00
omahs 2ad5239fae
Fix: typos (#4064)
* Fix: typos

Fix: typos

* Fix: typo

Fix: typo

* Fix: typos

Fix: typos

* Fix: typo

Fix: typo

* Fix: typos

Fix: typos

* Fix: typo

Fix: typo
2022-09-05 14:25:02 +00:00
Etan Kissling 613f4a9a50
accelerate EL sync with LC with `--sync-light-client` (#4041)
When the BN-embedded LC makes sync progress, pass the corresponding
execution block hash to the EL via `engine_forkchoiceUpdatedV1`.
This allows the EL to sync to wall slot while the chain DAG is behind.
Renamed `--light-client` to `--sync-light-client` for clarity, and
`--light-client-trusted-block-root` to `--trusted-block-root` for
consistency with `nimbus_light_client`.

Note that this does not work well in practice at this time:
- Geth sticks to the optimistic sync:
  "Ignoring payload while snap syncing" (when passing the LC head)
  "Forkchoice requested unknown head" (when updating to LC head)
- Nethermind syncs to LC head but does not report ancestors as VALID,
  so the main forward sync is still stuck in optimistic mode:
  "Pre-pivot block, ignored and returned Syncing"

To aid EL client teams in fixing those issues, having this available
as a hidden option is still useful.
2022-08-29 12:16:35 +00:00
tersec d7e9c334ac
document external block builder configuration (#4032)
* document external block builder configuration

* Update docs/the_nimbus_book/src/external-block-builder.md

Co-authored-by: Jacek Sieka <jacek@status.im>

* unhide external payload builder options

* clarify builder API incentive misalignment

Co-authored-by: Jacek Sieka <jacek@status.im>
2022-08-29 12:59:12 +03:00
Jacek Sieka addf55e075
update service file link (fixes #4035) 2022-08-26 14:16:38 +02:00
Etan Kissling 9180f09641
reduce LC optsync latency (#4002)
The optimistic sync spec was updated since the LC based optsync module
was introduced. It is no longer necessary to wait for the justified
checkpoint to have execution enabled; instead, any block is okay to be
optimistically imported to the EL client, as long as its parent block
has execution enabled. Complex syncing logic has been removed, and the
LC optsync module will now follow gossip directly, reducing the latency
when using this module. Note that because this is now based on gossip
instead of using sync manager / request manager, that individual blocks
may be missed. However, EL clients should recover from this by fetching
missing blocks themselves.
2022-08-25 03:53:59 +00:00
zah 4e41ed1d5a
Require properly configured Engine API connection after the merge (#4006) 2022-08-22 22:44:40 +03:00
Etan Kissling 74dc388ad9
do not prune LC data by default (#4008)
Aligns the default retention policy for LC data with the one for blocks.
Minimum spec requirement for both blocks and LC data is ~5 months.
Additional use cases are better supported by retaining data for longer.
2022-08-21 11:24:59 +02:00
Jacek Sieka 44ea08240c
web3 doc updates (#3971) 2022-08-17 13:37:25 +03:00
zah ca3245c4f0
Doppelganger exit code changed from 1031 to 129 (addresses #3973) (#3977) 2022-08-17 08:13:55 +02:00
Jacek Sieka 4adf849d09
book edits (#3955)
* reorganise navigation menus
* update light client guide with comparison table
* add suggested fee recipient and JWT secrets to the merge guide
* add some background info to book readme
* add JWT docs

also limit toc to make it displayable with substeps.
2022-08-13 20:17:20 +02:00
Etan Kissling 9c6a4316aa
document LC data serving options (#3922)
Adds a documentation page for configuring LC data serving.
2022-08-02 12:23:03 +00:00
tersec 73900172cb
update Goerli/Prater documentation and remove Kiln documentation (#3925) 2022-08-01 09:52:36 +03:00
Etan Kissling 3ec7982293
update light client protocol version (#3550)
* Use final `v1` version for light client protocols
* Unhide LC data collection options
* Default enable LC data serving
* rm unneeded import
* Connect to EL on startup
* Add docs for LC based EL sync
2022-07-29 11:45:39 +03:00
Jacek Sieka dcea09ea5c
book edits (#3903)
* Reorganise menu, putting tabs on top
* Use tabs for specific content
* cleanups and consistency edits
2022-07-24 22:13:47 +02:00
Jacek Sieka dbd3d02e63
Migrate docs to mkdocs (#3900)
`mkdocs` works with markdown similar to `mdbook` but is generally more
pleasing to the eye and has several nice UX features.

This PR does the bulk of the transition - likely, a followup would be
needed to fully make use of the extra features and navigation.

Book pages have been kept url-compatible, meaning that for the most
part, old links should continue to work!

Co-authored-by: Etan Kissling <etan@status.im>
2022-07-22 21:47:24 +02:00
Jacek Sieka ddb7a3ecf0
polish intro 2022-07-22 18:18:31 +02:00
Jacek Sieka f98e9ec8bc
update docs (#3890)
* update docs

* introduce mdbook-admonish for nice looking callouts
* new section on data directory
* recommend source build for advanced users and direct the rest to
binaries
* more strongly highlight that execution client is needed
* write an actual deposit guide
* remove cruft / fix links / etc
2022-07-21 21:19:47 +03:00
Miran 76fa4772fb
fix a typo in a link (#3897)
Before the fix, the link would take you to the non-existing
https://nimbus.guide/prater.beaconcha.in
2022-07-21 21:08:37 +03:00
tersec ee27274078
update Kiln book chapter (#3853)
* update Kiln book chapter

* remove reference to kiln branch of nethermind
2022-07-12 07:51:40 +00:00
tersec 35712e0dd0
suggested fee recipient documentation (#3729)
* tentative suggested fee recipient description

* numbered priority list

* add chapter to book
2022-07-07 09:25:51 +00:00
Jacek Sieka ff12c7f9ce
remove web3 url prompt in launcher script (#3810)
* remove web3 url prompt in launcher script

The interactive prompt for web3 has outlived its utility as we now load
url:s from command line params and config files, preventing the prompt
from correctly detecting when it's needed.

Also, after the merge, a JWT secret will (likely) be needed.

* log notice when web3 url is missing
* fix docs to not mention default that doesn't exist
* fix scripts to properly quote arguments
2022-06-28 23:49:52 +03:00
Jacek Sieka 8b6f05a146
vc: initial documentation (#3798)
* vc: initial documentation

bare-bones, but enough to get started

* fixup

* Apply suggestions from code review

* remove prater, link upgrade

* reword
2022-06-27 17:24:55 +03:00
Jacek Sieka b3caacd59d
Doc updates (#3771)
* Doc updates

* initial merge guide
* mark JSON-RPC as removed
* expand on binaries
* recommend `-j4` when building
* cleanups

* style fixes
2022-06-19 10:24:01 +03:00
Jacek Sieka c48ea3cdc8
book updates (#3763)
* systemd: use same service file as package
* systemd: recommend setting up a user
* clean up obsolete / ephemeral notes
* eth1 -> execution, in many places
* clean up docker instructions to match the experience of running the
runner script
* add basic instructions / links for execution clients other than geth
* clear a few more references to JSON-RPC, update to REST
* update hardware requirements with execution client extras
* start talking about merge requirements (this needs a dedicated page)
* note that binaries do exist, where relevant
* list gitcoin under donations
* update syncing docs
* `NOT` is for `NOTICE` in logs
* update rpi hardware recommendations
* prevent automatic doppelganger restarts in systemd service file
2022-06-17 18:28:13 +03:00