p2p

package
v1.2.0-rc1 Latest Latest
Warning

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

Go to latest
Published: May 9, 2021 License: Apache-2.0 Imports: 20 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrAgentNotStarted is the error returned when p2p agent has not been started
	ErrAgentNotStarted = errors.New("p2p agent has not been started")
)

Functions

func WitContext

func WitContext(ctx context.Context, p2pCtx Context) context.Context

WitContext add Agent context into context.

Types

type Agent

type Agent struct {
	// contains filtered or unexported fields
}

Agent is the agent to help the blockchain node connect into the P2P networks and send/receive messages

func NewAgent

func NewAgent(cfg config.Config, broadcastHandler HandleBroadcastInbound, unicastHandler HandleUnicastInboundAsync) *Agent

NewAgent instantiates a local P2P agent instance

func (*Agent) BroadcastOutbound

func (p *Agent) BroadcastOutbound(ctx context.Context, msg proto.Message) (err error)

BroadcastOutbound sends a broadcast message to the whole network

func (*Agent) Info

func (p *Agent) Info() (peerstore.PeerInfo, error)

Info returns agents' peer info.

func (*Agent) Neighbors

func (p *Agent) Neighbors(ctx context.Context) ([]peerstore.PeerInfo, error)

Neighbors returns the neighbors' peer info

func (*Agent) Self

func (p *Agent) Self() ([]multiaddr.Multiaddr, error)

Self returns the self network address

func (*Agent) Start

func (p *Agent) Start(ctx context.Context) error

Start connects into P2P network

func (*Agent) Stop

func (p *Agent) Stop(ctx context.Context) error

Stop disconnects from P2P network

func (*Agent) UnicastOutbound

func (p *Agent) UnicastOutbound(ctx context.Context, peer peerstore.PeerInfo, msg proto.Message) (err error)

UnicastOutbound sends a unicast message to the given address

type BlockList added in v1.1.1

type BlockList struct {
	// contains filtered or unexported fields
}

BlockList is the struct for blocklist

func NewBlockList added in v1.1.1

func NewBlockList(size int) *BlockList

NewBlockList creates an instance of blocklist

func (*BlockList) Add added in v1.1.1

func (bl *BlockList) Add(name string, t time.Time)

Add tries to add the name to blocklist

func (*BlockList) Blocked added in v1.1.1

func (bl *BlockList) Blocked(name string, t time.Time) bool

Blocked returns true if the name is blocked

func (*BlockList) Remove added in v1.1.1

func (bl *BlockList) Remove(name string)

Remove takes name off the blocklist

type Context

type Context struct {
	ChainID uint32
}

Context provides the auxiliary information Agent network operations

func GetContext

func GetContext(ctx context.Context) (Context, bool)

GetContext gets Agent context

type HandleBroadcastInbound

type HandleBroadcastInbound func(context.Context, uint32, proto.Message)

HandleBroadcastInbound handles broadcast message when agent listens it from the network

type HandleUnicastInboundAsync

type HandleUnicastInboundAsync func(context.Context, uint32, peerstore.PeerInfo, proto.Message)

HandleUnicastInboundAsync handles unicast message when agent listens it from the network

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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