prysm-pulse/slasher
Ivan Martinez aad1b93f70
Optimize slasher handling of duplicate attestations (#5886)
* Move data saving to listener service

* Map result data to attestations to prevent duplicate DB reads

* Gaz

* Fix tests

* Revert "Fix tests"

This reverts commit 499b205a88ad632e02238d65adc6698725195e53.

* Revert "Move data saving to listener service"

This reverts commit fd52938dbaccb0c374f9d2405f8a61f4d17f8709.

* Gaz

* Undo changes

* Imports

* Reorder parameters

* Fix error log

* Add test for mapReusltsToAtts

* Fix errorf

* Change to safer crypto

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-05-18 20:50:35 -04:00
..
beaconclient More Verbose Logs for Incoming Blocks (#5884) 2020-05-17 09:07:21 +00:00
cache libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
db libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
detection Optimize slasher handling of duplicate attestations (#5886) 2020-05-18 20:50:35 -04:00
flags libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
node libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
rpc Is slashable block rpc endpoint implementation (#5765) 2020-05-08 08:51:56 +03:00
BUILD.bazel libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
main.go Unify usage of context in slasher client (#5684) 2020-04-29 19:27:01 -04:00
README.md Update README for Slasher (#5106) 2020-03-15 18:46:21 +00:00
usage_test.go Deprecate span map cache flag (#5551) 2020-04-22 15:53:09 +00:00
usage.go Add--disable-historical-detection flag to slasher (#5759) 2020-05-06 22:17:36 +00:00

Hash Slinging Slasher Server Implementation

This is the main project folder for a slasher server implementation for Ethereum Serenity in Golang by Prysmatic Labs. A slasher listens for all broadcasted messages using a running beacon node in order to detect slashable attestations and block proposals. It uses the min-max-surround method by Protolambda.

The slasher requires a connection to a synced beacon node in order to listen for attestations and block proposals. To run the slasher, type:

bazel run //slasher -- \
    --datadir PATH/FOR/DB \
    --span-map-cache \
    --beacon-rpc-provider localhost:4000

The beacon node entered in beacon-rpc-provider will then receive slashings from the slasher client and send them to any requesting proposer to be put into a block.