Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] - Slashing Interchange Support #8024

Merged
merged 45 commits into from Jan 22, 2021

Commits on Dec 2, 2020

  1. Change LowestSignedProposal to Also Return a Boolean for Slashing Pro…

    …tection (#8020)
    
    * amend to use bools
    
    * ineff assign
    
    * comment
    rauljordan committed Dec 2, 2020
    Configuration menu
    Copy the full SHA
    65f5122 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fc76731 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    13df6db View commit details
    Browse the repository at this point in the history
  4. 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>
    3 people committed Dec 2, 2020
    Configuration menu
    Copy the full SHA
    ae4ab15 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2020

  1. Configuration menu
    Copy the full SHA
    74c4c87 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2ed69c1 View commit details
    Browse the repository at this point in the history
  3. 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
    rauljordan committed Dec 3, 2020
    Configuration menu
    Copy the full SHA
    42ce7e0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7d0dba1 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    091eaaf View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2020

  1. Validate Proposers Are Not Slashable With Regard to Data Within Slash…

    …er 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
    rauljordan committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    82b864a View commit details
    Browse the repository at this point in the history
  2. 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
    rauljordan committed Dec 4, 2020
    Configuration menu
    Copy the full SHA
    e120963 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2020

  1. 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>
    terencechain and rauljordan committed Dec 5, 2020
    Configuration menu
    Copy the full SHA
    c64de91 View commit details
    Browse the repository at this point in the history

Commits on Dec 7, 2020

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

    * add invariant for proposer protection
    
    * write different test cases
    
    * pass tests
    rauljordan committed Dec 7, 2020
    Configuration menu
    Copy the full SHA
    2c863cc View commit details
    Browse the repository at this point in the history

Commits on Dec 8, 2020

  1. 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>
    3 people committed Dec 8, 2020
    Configuration menu
    Copy the full SHA
    354ed45 View commit details
    Browse the repository at this point in the history

Commits on Dec 9, 2020

  1. fix conflicts

    rauljordan committed Dec 9, 2020
    Configuration menu
    Copy the full SHA
    776e1ee View commit details
    Browse the repository at this point in the history
  2. 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
    rauljordan committed Dec 9, 2020
    Configuration menu
    Copy the full SHA
    cca701a View commit details
    Browse the repository at this point in the history
  3. 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
    rauljordan committed Dec 9, 2020
    Configuration menu
    Copy the full SHA
    c990f84 View commit details
    Browse the repository at this point in the history

Commits on Dec 10, 2020

  1. Configuration menu
    Copy the full SHA
    13e2dde View commit details
    Browse the repository at this point in the history

Commits on Dec 11, 2020

  1. 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
    rauljordan committed Dec 11, 2020
    Configuration menu
    Copy the full SHA
    aabb187 View commit details
    Browse the repository at this point in the history
  2. resolve conflicts

    rauljordan committed Dec 11, 2020
    Configuration menu
    Copy the full SHA
    6af65f7 View commit details
    Browse the repository at this point in the history
  3. ensure tests pass

    rauljordan committed Dec 11, 2020
    Configuration menu
    Copy the full SHA
    0754f60 View commit details
    Browse the repository at this point in the history
  4. Check for Signing Root Mismatch When Submitting Proposals and Importi…

    …ng 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
    rauljordan committed Dec 11, 2020
    Configuration menu
    Copy the full SHA
    2276a85 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    50b8637 View commit details
    Browse the repository at this point in the history

Commits on Dec 14, 2020

  1. Set Empty Epochs in Between Attestations as FAR_FUTURE_EPOCH in Attes…

    …ting History (#8113)
    
    * set target data
    
    * all tests passing
    
    * ineff assign
    
    * signing root
    rauljordan committed Dec 14, 2020
    Configuration menu
    Copy the full SHA
    43a3e3a View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2020

  1. Configuration menu
    Copy the full SHA
    7de27a2 View commit details
    Browse the repository at this point in the history
  2. 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>
    terencechain and rauljordan committed Dec 15, 2020
    Configuration menu
    Copy the full SHA
    5df44e2 View commit details
    Browse the repository at this point in the history
  3. Implement Migration for Unattested Epochs in Attesting History Databa…

    …se (#8121)
    
    * migrate attesting history backbone done
    
    * begin migration logic
    
    * implement migration logic
    
    * migration test
    
    * add test
    
    * migration logic
    
    * bazel
    
    * migration to its own file
    rauljordan committed Dec 15, 2020
    Configuration menu
    Copy the full SHA
    216f22c View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2020

  1. Handle empty blocks and attestations in interchange json and sort int…

    …erchange 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>
    shayzluf and rauljordan committed Dec 16, 2020
    Configuration menu
    Copy the full SHA
    07c8103 View commit details
    Browse the repository at this point in the history

Commits on Jan 13, 2021

  1. resolve conflicts

    rauljordan committed Jan 13, 2021
    Configuration menu
    Copy the full SHA
    10359e5 View commit details
    Browse the repository at this point in the history
  2. builds

    rauljordan committed Jan 13, 2021
    Configuration menu
    Copy the full SHA
    f416121 View commit details
    Browse the repository at this point in the history
  3. more tests finally build

    rauljordan committed Jan 13, 2021
    Configuration menu
    Copy the full SHA
    bfe630f View commit details
    Browse the repository at this point in the history

Commits on Jan 14, 2021

  1. fix confs

    rauljordan committed Jan 14, 2021
    Configuration menu
    Copy the full SHA
    1756b13 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2021

  1. merge

    rauljordan committed Jan 19, 2021
    Configuration menu
    Copy the full SHA
    ab8aa34 View commit details
    Browse the repository at this point in the history

Commits on Jan 20, 2021

  1. 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
    rauljordan committed Jan 20, 2021
    Configuration menu
    Copy the full SHA
    965511d View commit details
    Browse the repository at this point in the history
  2. merge from dev

    rauljordan committed Jan 20, 2021
    Configuration menu
    Copy the full SHA
    e416e30 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    55c75b6 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    86fac0d View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2021

  1. Configuration menu
    Copy the full SHA
    28a637f View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2021

  1. 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>
    rauljordan and prylabs-bulldozer[bot] committed Jan 22, 2021
    Configuration menu
    Copy the full SHA
    6404735 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    16cb5f7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bba4e8c View commit details
    Browse the repository at this point in the history
  4. revert bad find replace

    rauljordan committed Jan 22, 2021
    Configuration menu
    Copy the full SHA
    e751724 View commit details
    Browse the repository at this point in the history
  5. add comment to db func

    rauljordan committed Jan 22, 2021
    Configuration menu
    Copy the full SHA
    15cb30a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    a9f213a View commit details
    Browse the repository at this point in the history
  7. merge

    rauljordan committed Jan 22, 2021
    Configuration menu
    Copy the full SHA
    3881dcd View commit details
    Browse the repository at this point in the history