prysm-pulse/slasher
Radosław Kapka d9c451d547
Introduce helper function for adding context metadata from gRPC headers (#8354)
* implement helper

* use helper function everywhere

* add unit tests

* small cleanup of the helper

* small fixes

* gazellelelele

* fix helper tests
2021-01-28 08:58:32 -06:00
..
beaconclient Introduce helper function for adding context metadata from gRPC headers (#8354) 2021-01-28 08:58:32 -06:00
cache Unify the pattern of using a package-level logger (#8245) 2021-01-11 20:03:28 +00:00
db Better receiver names in validator and slasher modules (#8296) 2021-01-20 14:39:07 +00:00
detection Rename NewService to New (#8337) 2021-01-26 10:26:57 +00:00
flags Slasher highest source target (#7604) 2020-10-26 14:15:42 +02:00
node Rename NewService to New (#8337) 2021-01-26 10:26:57 +00:00
rpc Rename NewService to New (#8337) 2021-01-26 10:26:57 +00:00
BUILD.bazel Unify the pattern of using a package-level logger (#8245) 2021-01-11 20:03:28 +00:00
log.go Unify the pattern of using a package-level logger (#8245) 2021-01-11 20:03:28 +00:00
main.go Rename getter functions to be idiomatic (#8320) 2021-01-25 21:27:30 +00:00
README.md Fix Up READMEs for Mainnet (#7910) 2020-11-23 18:47:55 +00:00
usage_test.go Applies assertion funcs to slasher/* tests (#6998) 2020-08-18 12:41:25 +00:00
usage.go Add Backup Webhooks to All Prysm Services With DBs (#8025) 2020-12-03 22:28:57 +00:00

Slasher Implementation

This is the main project folder for a slasher implementation for eth2 written in Go 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. You can read more about configuration options for our slasher in our documentation portal