Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SelectEndpoints ¶
func SelectEndpoints(k int, peerPool []discovery.NetworkMember) []*comm.RemotePeer
selectendpoints从对等池中选择k个对等点并返回它们。
Types ¶
type Config ¶
type Config struct { ID string PullInterval time.Duration //请求调用之间的持续时间 Channel common.ChainID PeerCountToSelect int //开始拉的对等数 Tag proto.GossipMessage_Tag MsgType proto.PullMsgType }
config定义pull中介的配置
type EgressDigestFilter ¶
type EgressDigestFilter func(helloMsg proto.ReceivedMessage) func(digestItem string) bool
要发送到远程对等机的egersdigestfilter筛选器摘要, 向您发送了以下信息
type IngressDigestFilter ¶
type IngressDigestFilter func(digestMsg *proto.DataDigest) *proto.DataDigest
IngressDigestFilter筛选出从远程对等方接收的摘要中的实体
type Mediator ¶
type Mediator interface { //停止调解人 Stop() //registermsghook将消息挂钩注册到特定类型的拉消息 RegisterMsgHook(MsgType, MessageHook) //添加向中介添加八卦消息 Add(*proto.SignedGossipMessage) //移除从具有匹配摘要的中介移除八卦消息, //如果这样的信息退出 Remove(digest string) //handleMessage处理来自某个远程对等机的消息 HandleMessage(msg proto.ReceivedMessage) }
中介器是一个组件,它包装一个pullengine并提供方法 它需要执行拉同步。 拉中介器对特定类型消息的专门化是 通过配置完成,IdentifierExtractor、IdentifierExtractor 在施工时提供,也可以为每个挂钩注册 pullmsgtype的类型(hello、digest、req、res)。
func NewPullMediator ¶
func NewPullMediator(config Config, adapter *PullAdapter) Mediator
newpullmediator返回新的中介
type MembershipService ¶
type MembershipService interface { //GetMembership返回的成员身份 GetMembership() []discovery.NetworkMember }
成员身份服务获取活动对等方的成员身份信息
type MessageHook ¶
type MessageHook func(itemIDs []string, items []*proto.SignedGossipMessage, msg proto.ReceivedMessage)
messagehook定义一个函数,该函数将在收到某个pull消息后运行
type PullAdapter ¶
type PullAdapter struct { Sndr Sender MemSvc MembershipService IdExtractor proto.IdentifierExtractor MsgCons proto.MsgConsumer EgressDigFilter EgressDigestFilter IngressDigFilter IngressDigestFilter }
pulladapter定义要交互的pullstore方法 各种各样的八卦模块
type Sender ¶
type Sender interface { //发送向远程对等方列表发送消息 Send(msg *proto.SignedGossipMessage, peers ...*comm.RemotePeer) }
发送方向远程对等方发送消息
Click to show internal directories.
Click to hide internal directories.