peering

package
v0.0.0-...-261ff67 Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2024 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Name     = "peers"
	TraceTag = Name
)
View Source
const (
	MaxNumTransactionID = (MaxPayloadSize - 2) / ledger.TransactionIDLength

	PullRequestTransactions = byte(iota)
	PullRequestBranchTips
)
View Source
const BeginPort = 4000
View Source
const (
	MaxPayloadSize = math.MaxUint16 - 4
)

MaxPayloadSize caps the message size. It includes 4 bytes of the size

Variables

This section is empty.

Functions

func MultiAddrString

func MultiAddrString(i int, port int) string

func ShortPeerIDString

func ShortPeerIDString(id peer.ID) string

func TestMultiAddrString

func TestMultiAddrString(peerID peer.ID, port int) string

Types

type Config

type Config struct {
	HostIDPrivateKey ed25519.PrivateKey
	HostID           peer.ID
	HostPort         int
	KnownPeers       map[string]multiaddr.Multiaddr // name -> PeerAddr
}

func MakeConfigFor

func MakeConfigFor(n, hostIdx int) *Config

type Environment

type Environment interface {
	global.NodeGlobal
}

type Peer

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

func (*Peer) HasTxStore

func (p *Peer) HasTxStore() bool

type Peers

type Peers struct {
	Environment
	// contains filtered or unexported fields
}

func New

func New(env Environment, cfg *Config) (*Peers, error)

func NewPeersDummy

func NewPeersDummy() *Peers

func NewPeersFromConfig

func NewPeersFromConfig(env Environment) (*Peers, error)

func (*Peers) AddPeer

func (ps *Peers) AddPeer(maddr multiaddr.Multiaddr, name string) error

func (*Peers) GossipTxBytesToPeers

func (ps *Peers) GossipTxBytesToPeers(txBytes []byte, metadata *txmetadata.TransactionMetadata, except ...peer.ID) int

func (*Peers) NumPeers

func (ps *Peers) NumPeers() (alive, configured int)

func (*Peers) OnReceivePullRequest

func (ps *Peers) OnReceivePullRequest(fun func(from peer.ID, txids []ledger.TransactionID))

func (*Peers) OnReceiveTxBytes

func (ps *Peers) OnReceiveTxBytes(fun func(from peer.ID, txBytes []byte, metadata *txmetadata.TransactionMetadata))

func (*Peers) PeerIsAlive

func (ps *Peers) PeerIsAlive(id peer.ID) bool

func (*Peers) PeerName

func (ps *Peers) PeerName(id peer.ID) string

func (*Peers) PullTransactionsFromRandomPeer

func (ps *Peers) PullTransactionsFromRandomPeer(txids ...ledger.TransactionID) bool

PullTransactionsFromRandomPeer sends pull request to the random peer which has txStore

func (*Peers) Run

func (ps *Peers) Run()

func (*Peers) SelfID

func (ps *Peers) SelfID() peer.ID

func (*Peers) SendTxBytesWithMetadataToPeer

func (ps *Peers) SendTxBytesWithMetadataToPeer(id peer.ID, txBytes []byte, metadata *txmetadata.TransactionMetadata) bool

func (*Peers) Stop

func (ps *Peers) Stop()

Directories

Path Synopsis
experiments
ex1

Jump to

Keyboard shortcuts

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