lighthouse/book/src
Michael Sproul 0a77d783a4 Make slashing protection import more resilient (#2598)
## Issue Addressed

Closes #2419

## Proposed Changes

Address a long-standing issue with the import of slashing protection data where the import would fail due to the data appearing slashable w.r.t the existing database. Importing is now idempotent, and will have no issues importing data that has been handed back and forth between different validator clients, or different implementations.

The implementation works by updating the high and low watermarks if they need updating, and not attempting to check if the input is slashable w.r.t itself or the database. This is a strengthening of the minification that we started to do by default since #2380, and what Teku has been doing since the beginning.

## Additional Info

The only feature we lose by doing this is the ability to do non-minified imports of clock drifted messages (cf. Prysm on Medalla). In theory, with the previous implementation we could import all the messages in case of clock drift and be aware of the "gap" between the real present time and the messages signed in the far future. _However_ for attestations this is close to useless, as the source epoch will advance as soon as justification occurs, which will require us to make slashable attestations with respect to our bogus attestation(s). E.g. if I sign an attestation 100=>200 when the current epoch is 101, then I won't be able to vote in any epochs prior to 101 becoming justified because 101=>102, 101=>103, etc are all surrounded by 100=>200. Seeing as signing attestations gets blocked almost immediately in this case regardless of our import behaviour, there's no point trying to handle it. For blocks the situation is more hopeful due to the lack of surrounds, but losing block proposals from validators who by definition can't attest doesn't seem like an issue (the other block proposers can pick up the slack).
2021-10-13 01:49:51 +00:00
..
css Make API friendly to block explorers (#702) 2019-12-19 11:45:28 +11:00
js Add support for multiple testnet flags (#1396) 2020-07-29 06:39:29 +00:00
advanced_database.md Implement checkpoint sync (#2244) 2021-09-22 00:37:28 +00:00
advanced_metrics.md Add metrics to VC (#1954) 2020-11-26 01:10:51 +00:00
advanced_networking.md Fix typo in advanced networking docs (#2412) 2021-06-22 00:17:06 +00:00
advanced-datadir.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00
advanced-pre-releases.md Add docs for Pre-Releases (#2505) 2021-08-09 02:43:04 +00:00
advanced.md Document the freezer DB space-time trade-off (#808) 2020-01-20 10:01:58 +11:00
api-bn.md Add TLS capability to the beacon node HTTP API (#2668) 2021-10-12 03:35:49 +00:00
api-lighthouse.md Update broken api links (#2665) 2021-10-06 00:46:09 +00:00
api-vc-auth-header.md Update file permissions (#2499) 2021-09-03 02:41:10 +00:00
api-vc-endpoints.md Web3Signer support for VC (#2522) 2021-09-16 03:26:33 +00:00
api-vc-sig-header.md Implement VC API (#1657) 2020-10-02 09:42:19 +00:00
api-vc.md Add http-address flag to VC (#2467) 2021-07-21 07:10:51 +00:00
api.md Implement standard eth2.0 API (#1569) 2020-10-01 11:12:36 +10:00
checkpoint-sync.md Implement checkpoint sync (#2244) 2021-09-22 00:37:28 +00:00
cli.md Minor useability updates (#1005) 2020-04-15 17:46:03 +10:00
contributing.md Remove links to old master branch (#2190) 2021-02-11 06:06:54 +00:00
cross-compiling.md Update to spec v1.0.0-rc.0 and BLSv4 (#1765) 2020-10-28 22:19:38 +00:00
docker.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00
faq.md Remove msg about longer sync with remote eth1 nodes (#2453) 2021-07-14 05:24:09 +00:00
graffiti.md Set graffiti per validator (#2044) 2021-03-02 22:35:46 +00:00
http.md Update broken api links (#2665) 2021-10-06 00:46:09 +00:00
installation-binaries.md Windows binaries (#2492) 2021-08-24 01:36:26 +00:00
installation-source.md Enable Compatibility with Windows (#2333) 2021-05-19 23:05:16 +00:00
installation.md Windows binaries (#2492) 2021-08-24 01:36:26 +00:00
intro.md Remove links to old master branch (#2190) 2021-02-11 06:06:54 +00:00
key-management.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00
key-recovery.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00
mainnet-validator.md Remove links to old master branch (#2190) 2021-02-11 06:06:54 +00:00
pi.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00
redundancy.md Update broken api links (#2665) 2021-10-06 00:46:09 +00:00
setup.md Add test_logger as feature to logging (#2586) 2021-10-06 00:46:07 +00:00
slasher.md Enable Compatibility with Windows (#2333) 2021-05-19 23:05:16 +00:00
slashing-protection.md Make slashing protection import more resilient (#2598) 2021-10-13 01:49:51 +00:00
SUMMARY.md Implement checkpoint sync (#2244) 2021-09-22 00:37:28 +00:00
system-requirements.md Document system requirements (#1934) 2020-11-19 21:23:56 +00:00
testnet-validator.md Update testnet-validator.md (#2432) 2021-07-09 04:44:56 +00:00
validator-create.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00
validator-doppelganger.md Add a note about doppelganger protection interoperability to the docs (#2607) 2021-09-20 22:28:37 +00:00
validator-import-launchpad.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00
validator-inclusion.md Cache participating indices for Altair epoch processing (#2416) 2021-07-27 07:01:01 +00:00
validator-management.md Change --testnet flag to --network (#1751) 2020-11-23 23:54:03 +00:00
validator-monitoring.md Update broken api links (#2665) 2021-10-06 00:46:09 +00:00
validator-web3signer.md Web3Signer support for VC (#2522) 2021-09-16 03:26:33 +00:00
voluntary-exit.md Update broken api links (#2665) 2021-10-06 00:46:09 +00:00
wallet-create.md Update validator guide for mainnet (#1951) 2020-11-24 04:42:17 +00:00