prysm-pulse/shared
Raul Jordan 92932ae58e
[Feature] - Slashing Interchange Support (#8024)
* Change LowestSignedProposal to Also Return a Boolean for Slashing Protection (#8020)

* amend to use bools

* ineff assign

* comment

* Update `LowestSignedTargetEpoch` to include exists (#8004)

* Replace highest with lowerest

* Update validator/db/kv/attestation_history_v2.go

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>

* Update validator/db/kv/attestation_history_v2.go

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>

* Invert equality for saveLowestSourceTargetToDB

* Add eip checks to ensure epochs cant be lower than db ones

* Should be less than equal to

* Check if epoch exists in DB getters

* Revert run time checks

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>

* Export Attesting History for Slashing Interchange Standard (#8027)

* added in att history checks

* logic for export

* export return nil

* test for export atts

* round trip passes first try!

* rem println

* fix up tests

* pass test

* Validate Proposers Are Not Slashable With Regard to Data Within Slasher Interchange JSON (#8031)

* filter slashable blocks and atts in same json stub

* add filter blocks func

* add test for filtering out the bad public keys

* Export Slashing Protection History Via CLI (#8040)

* include cli entrypoint for history exports

* builds properly

* test to confirm we export the data as expected

* abstract helpers properly

* full test suite

* gaz

* better errors

* marshal ident

* Add the additional eip-3076 attestation checks (#7966)

* Replace highest with lowerest

* Update validator/db/kv/attestation_history_v2.go

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>

* Update validator/db/kv/attestation_history_v2.go

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>

* Invert equality for saveLowestSourceTargetToDB

* Add eip checks to ensure epochs cant be lower than db ones

* Should be less than equal to

* Check if epoch exists in DB getters

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>

* Add EIP-3076 Invariants for Proposer Slashing Protection (#8067)

* add invariant for proposer protection

* write different test cases

* pass tests

* Add EIP-3076 Interchange JSON CLI command to validator (#7880)

* Import JSON CLI

* CLI impotr

* f

* Begin adding new commands in slashing protection

* Move testing helpers to separate packae

* Add command for importing slashing protection JSONs

* fix import cycle

* fix test

* Undo cleaning changes

* Improvements

* Add better prompts

* Fix prompt

* Fix

* Fix

* Fix

* Fix conflict

* Fix

* Fixes

* Fixes

* Fix exported func

* test func

* Fixes

* fix test

* simplify import and standardize with export

* add round trip test

* true integration test works

* fix up comments

* logrus

* better error

* fix build

* build fix

* Update validator/slashing-protection/cli_export.go

Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>

* Update validator/slashing-protection/cli_import.go

Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>

* fmt

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>

* Filter Slashable Attester Public Keys in Slashing Interchange Import (#8051)

* filter slashable attesters from the same JSON

* builds

* fix up initially broken test

* circular dep

* import fix

* giz

* added in attesting history package

* add test for filter slashable attester keys

* pass tests

* Save Slashable Keys to Disk in the Validator Client (#8082)

* begin db funcs

* add in test and bucket

* gaz

* rem changes to import

* ineff assign

* add godoc

* Properly Handle Duplicate Public Key Entries in Slashing Interchange Imports (#8089)

* Prevent Blacklisted Public Keys from Slashing Protection Imports from Having Duties at Runtime (#8084)

* tests on update duties

* ensure the slashable public keys are filtered out from update duties via test

* begin test

* attempt test

* rename for better context

* pass tests

* deep source

* ensure tests pass

* Check for Signing Root Mismatch When Submitting Proposals and Importing Proposals in Slashing Interchange (#8085)

* flexible signing root

* add test

* add tests

* fix test

* Preston's comments

* res tests

* ensure we consider the case for minimum proposals

* pass test

* tests passing

* rem unused code

* Set Empty Epochs in Between Attestations as FAR_FUTURE_EPOCH in Attesting History (#8113)

* set target data

* all tests passing

* ineff assign

* signing root

* Add Slashing Interchange, EIP-3076, Spec Tests to Prysm (#7858)

* Add interchange test framework

* add checks for attestations

* Import genesis root if necessary

* flexible signing root

* add test

* Sync

* fix up test build

* only 3 failing tests now

* two failing

* attempting to debug problems in conformity tests

* include latest changes

* protect test in validator/client passing

* pass tests

* imports

* spec tests passing with bazel

* gh archive link to spectests using tar.gz suffix

* rev

* rev more comment changes

* fix sha

* godoc

* add back save

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>

* Implement Migration for Unattested Epochs in Attesting History Database (#8121)

* migrate attesting history backbone done

* begin migration logic

* implement migration logic

* migration test

* add test

* migration logic

* bazel

* migration to its own file

* Handle empty blocks and attestations in interchange json and sort interchange json by public key (#8132)

* Handle empty blocks and attestations in interchange json

* add test

* sort json

* easier empty arrays

* pass test

Co-authored-by: Raul Jordan <raul@prysmaticlabs.com>

* builds

* more tests finally build

* Align Slashing Interchange With Optimized Slashing Protection (#8268)

* attestation history should account for multiple targets per source

* attempt at some fixes

* attempt some test fixes

* experimenting with sorting

* only one more failing test

* tests now pass

* slash protect tests passing

* only few tests now failing

* only spec tests failing now

* spec tests passing

* all tests passing

* helper function for verifying double votes

* use helper

* gaz

* deep source

* tests fixed

* expect specific number of times for domain data calls

* final comments

* Batch Save Imported EIP-3076 Attestations (#8304)

* optimize save

* test added

* add test for sad path

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>

* revert bad find replace

* add comment to db func

Co-authored-by: terence tsao <terence@prysmaticlabs.com>
Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
Co-authored-by: Ivan Martinez <ivanthegreatdev@gmail.com>
Co-authored-by: Preston Van Loon <preston@prysmaticlabs.com>
Co-authored-by: Shay Zluf <thezluf@gmail.com>
2021-01-22 17:12:22 -06:00
..
abool Use Atomic Booleans in Sync Service (#7682) 2020-11-03 19:12:24 +00:00
aggregation Max-cover: minor optimizations (#8311) 2021-01-22 20:10:50 +08:00
asyncutil Improves asyncutils/Debounce (#7189) 2020-09-08 14:49:28 +00:00
attestationutil Rm forkchoice attestation verification (#8301) 2021-01-20 21:46:13 +00:00
backuputil Add Backup Webhooks to All Prysm Services With DBs (#8025) 2020-12-03 22:28:57 +00:00
benchutil Applies assertion funcs to shared tests (part 1) (#6626) 2020-07-18 16:31:42 +00:00
blockutil Remove custom block body root and block root methods (#8069) 2020-12-09 12:11:42 -06:00
bls Update blst to v0.3.1 and incorporate subgroup changes (#7971) 2020-12-04 06:46:08 +00:00
browser Open Web UI in Browser Automatically (#7481) 2020-10-09 19:51:46 +00:00
bytesutil Add space at the start of comments (#8202) 2021-01-05 13:09:41 +00:00
cmd Add space at the start of comments (#8202) 2021-01-05 13:09:41 +00:00
debug Various code inspection resolutions (#7438) 2020-10-12 08:11:05 +00:00
depositutil Add DepositMessage in preparation to remove go-ssz (#8244) 2021-01-12 00:45:11 +00:00
event Shadowed Predeclared Indentifier analyzer (#7215) 2020-09-14 12:49:15 +02:00
featureconfig Add timely attest flag to fix #8185 (#8235) 2021-01-08 17:54:46 -08:00
fileutil Add extra methods to shared/fileutil (#8117) 2020-12-15 14:18:15 +00:00
grpcutils Fix multiple anti-patterns from DeepSource analysis (#6951) 2020-08-10 16:16:45 +00:00
hashutil Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
htrutils Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
interop Add DepositMessage in preparation to remove go-ssz (#8244) 2021-01-12 00:45:11 +00:00
iputils Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
journald Add space at the start of comments (#8202) 2021-01-05 13:09:41 +00:00
keystore Use t.TempDir() in tests (#7769) 2020-11-10 22:45:17 +00:00
logutil Stream Validator and Beacon Logs via gRPC Streams (#8150) 2020-12-18 18:03:24 +00:00
mathutil Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
maxprocs automaxprocs: Log error to DEBUG instead of panic (#6592) 2020-07-14 01:51:07 +00:00
mclockutil libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
messagehandler Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
mock Stream verified block (#8206) 2021-01-05 12:40:11 -08:00
mputil Fix Miscellaneous Deep Source Issues (#8007) 2020-11-30 19:55:30 -06:00
p2putils Fix Fork Data in Local Node (#5997) 2020-05-27 08:07:40 -07:00
pagination Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
params Fix file permission checks for Windows (#8164) 2021-01-04 22:48:42 +00:00
petnames Accounts V2: Derived Keymanager Sign (#6667) 2020-07-21 21:15:47 +00:00
prereq Various code inspection resolutions (#7438) 2020-10-12 08:11:05 +00:00
progressutil Add Back New Attester Protection DB Logic (#8242) 2021-01-11 23:59:17 +00:00
prometheus Stream Validator and Beacon Logs via gRPC Streams (#8150) 2020-12-18 18:03:24 +00:00
promptutil [Feature] - Slashing Interchange Support (#8024) 2021-01-22 17:12:22 -06:00
rand Remove Recursive Read Lock in Shared/Rand (#7776) 2020-11-11 05:59:44 +00:00
runutil Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
slashutil [Feature] - Slashing Interchange Support (#8024) 2021-01-22 17:12:22 -06:00
sliceutil Update rules_go (#7202) 2020-11-10 03:01:56 +00:00
slotutil Update TestMain(): do not call os.Exit() explicitly (#8046) 2020-12-04 16:10:07 +00:00
sszutil Copied over ssz.DeepEqual as sszutil.DeepEqual from go-ssz (#8258) 2021-01-13 20:40:56 +00:00
testutil Remove go-ssz entirely from prysm (#8257) 2021-01-20 21:03:46 +00:00
timeutils Replace Roughtime With Timeutils Across Prysm (#7301) 2020-09-22 19:49:58 +08:00
tos Compare strings using strings.EqualFold() (#8193) 2021-01-04 16:46:22 +00:00
traceutil libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
tracing libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
trieutil Numeric conversion cleanup (#7465) 2020-10-13 12:43:49 +00:00
version Implement GetVersion in the node API (#8207) 2021-01-05 21:06:51 +00:00
BUILD.bazel Apply testutils assertions: final cleanup (#7003) 2020-08-25 15:23:06 +00:00
service_registry_test.go Apply testutils assertions: final cleanup (#7003) 2020-08-25 15:23:06 +00:00
service_registry.go Change log level from panicf to errorf so that all services can be shutdown (#7600) 2020-10-21 23:41:01 +00:00