pull

package
v0.0.0-...-fbe82ab Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

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 MsgType

type MsgType int

msgtype定义发送到pullstore的消息的类型

const (
	HelloMsgType MsgType = iota
	DigestMsgType
	RequestMsgType
	ResponseMsgType
)

常量放在这里。

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)
}

发送方向远程对等方发送消息

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL