|
|
- package behaviour
-
- import (
- "github.com/tendermint/tendermint/p2p"
- )
-
- // PeerBehaviour is a struct describing a behaviour a peer performed.
- // `peerID` identifies the peer and reason characterizes the specific
- // behaviour performed by the peer.
- type PeerBehaviour struct {
- peerID p2p.ID
- reason interface{}
- }
-
- type badMessage struct {
- explanation string
- }
-
- // BadMessage returns a badMessage PeerBehaviour.
- func BadMessage(peerID p2p.ID, explanation string) PeerBehaviour {
- return PeerBehaviour{peerID: peerID, reason: badMessage{explanation}}
- }
-
- type messageOutOfOrder struct {
- explanation string
- }
-
- // MessageOutOfOrder returns a messagOutOfOrder PeerBehaviour.
- func MessageOutOfOrder(peerID p2p.ID, explanation string) PeerBehaviour {
- return PeerBehaviour{peerID: peerID, reason: badMessage{explanation}}
- }
-
- type consensusVote struct {
- explanation string
- }
-
- // ConsensusVote returns a consensusVote PeerBehaviour.
- func ConsensusVote(peerID p2p.ID, explanation string) PeerBehaviour {
- return PeerBehaviour{peerID: peerID, reason: consensusVote{explanation}}
- }
-
- type blockPart struct {
- explanation string
- }
-
- // BlockPart returns blockPart PeerBehaviour.
- func BlockPart(peerID p2p.ID, explanation string) PeerBehaviour {
- return PeerBehaviour{peerID: peerID, reason: blockPart{explanation}}
- }
|