Documentation ¶
Index ¶
Constants ¶
View Source
const ( // GossipScoreThreshold when a peer's score drops below this threshold, no gossip is emitted towards that peer // and gossip from that peer is ignored. GossipScoreThreshold = -500 // PublishScoreThreshold when a peer's score drops below this threshold, self published messages are not propagated // towards this peer when (flood) publishing. PublishScoreThreshold = -1000 // GraylistScoreThreshold when a peer's score drops below this threshold, the peer is graylisted and its RPCs are ignored. GraylistScoreThreshold = -2500 // AcceptPXScoreThreshold when a peer sends us PX information with a prune, we only accept it and connect to the // supplied peers if the originating peer's score exceeds this threshold. AcceptPXScoreThreshold = 1000 // OpportunisticGraftScoreThreshold when the median peer score in the mesh drops below this value, the router // may select more peers with score above the median to opportunistically graft on the mesh. OpportunisticGraftScoreThreshold = 3.5 // AtxProtocol is the protocol id for ATXs. AtxProtocol = "ax1" // ProposalProtocol is the protocol id for block proposals. ProposalProtocol = "pp1" // TxProtocol iis the protocol id for transactions. TxProtocol = "tx1" // HareProtocol is the protocol id for hare messages. HareProtocol = "hr1" // BlockCertify is the protocol id for block certification. BlockCertify = "bc1" // BeaconProtocol is used currently only for recording metrics, but // potentially will become used as an actual protocol if we decide to merge // the beacon protocols. // https://github.com/spacemeshos/go-spacemesh/issues/4207 BeaconProtocol = "b1" // BeaconWeakCoinProtocol is the protocol id for beacon weak coin. BeaconWeakCoinProtocol = "bw1" // BeaconProposalProtocol is the protocol id for beacon proposals. BeaconProposalProtocol = "bp1" // BeaconFirstVotesProtocol is the protocol id for beacon first vote. BeaconFirstVotesProtocol = "bf1" // BeaconFollowingVotesProtocol is the protocol id for beacon following votes. BeaconFollowingVotesProtocol = "bo1" MalfeasanceProof = "mp1" )
View Source
const ( // ValidationAccept should be returned if message is good and can be broadcasted. ValidationAccept = pubsub.ValidationAccept // ValidationIgnore should be returned if message might be good, but outdated // and shouldn't be broadcasted. ValidationIgnore = pubsub.ValidationIgnore // ValidationReject should be returned if message is malformed or malicious // and shouldn't be broadcasted. Peer might be potentially get banned when on this result. ValidationReject = pubsub.ValidationReject )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GossipHandler ¶
GossipHandler is a function that is for receiving messages.
func ChainGossipHandler ¶
func ChainGossipHandler(handlers ...GossipHandler) GossipHandler
ChainGossipHandler helper to chain multiple GossipHandler together. Called synchronously and in the order.
type PubSub ¶
type PubSub struct {
// contains filtered or unexported fields
}
PubSub is a spacemesh-specific wrapper around gossip protocol.
func (*PubSub) ProtocolPeers ¶
ProtocolPeers returns list of peers that are communicating in a given protocol.
func (*PubSub) Register ¶
func (ps *PubSub) Register(topic string, handler GossipHandler)
Register handler for topic.
type PublishSubsciber ¶
type PublishSubsciber interface { Publisher Subscriber }
PublishSubsciber common interface for publisher and subscribing.
type Subscriber ¶
type Subscriber interface {
Register(string, GossipHandler)
}
Subscriber is an interface for subcribing to messages.
type ValidationResult ¶
type ValidationResult = pubsub.ValidationResult
ValidationResult is a one of the validation result constants.
Click to show internal directories.
Click to hide internal directories.