prysm-pulse/slasher
Shay Zluf 17169e5a2d
External slashing protection (#5895)
* slasher grpc client

* do not export

* slasher on a different package

* fix featureconfig

* change to rough time

* revert roughtime

* remove extra comma

* revert order change

* goimports

* fix comments and tests

* fix package name

* revert reorder

* comment for start

* service

* fix visibility

* external slasher validator protection implementation

* gaz

* fix comment

* add comments

* nishant feedback

* raul feedback

* preston feedback

* fix flags

* fix imports

* fix imports

* port 4002

* added tests

* fix log

* fix imports

* fix imports name

* raul feedback

* gaz

* terence comment

* change name

* runtime fixes

* add flag check

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-05-20 10:23:22 -05: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 External slashing protection (#5895) 2020-05-20 10:23:22 -05:00
flags External slashing protection (#5895) 2020-05-20 10:23:22 -05:00
node External slashing protection (#5895) 2020-05-20 10:23:22 -05:00
rpc External slashing protection (#5895) 2020-05-20 10:23:22 -05:00
BUILD.bazel libfuzz based tests (#5095) 2020-05-05 07:22:26 +00:00
main.go External slashing protection (#5895) 2020-05-20 10:23:22 -05: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 External slashing protection (#5895) 2020-05-20 10:23:22 -05: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.