handshake

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2023 License: MIT Imports: 14 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HandleHandshake

func HandleHandshake(context HandleHandshakeContext, netConnection *netadapter.NetConnection,
	receiveVersionRoute *routerpkg.Route, sendVersionRoute *routerpkg.Route, outgoingRoute *routerpkg.Route,
) (*peerpkg.Peer, error)

HandleHandshake sets up the new_handshake protocol - It sends a version message and waits for an incoming version message, as well as a verack for the sent version

func ReceiveVersion

func ReceiveVersion(context HandleHandshakeContext, incomingRoute *routerpkg.Route, outgoingRoute *routerpkg.Route,
	peer *peerpkg.Peer) (*appmessage.NetAddress, error)

ReceiveVersion waits for the peer to send a version message, sends a verack in response, and updates its info accordingly.

func SendVersion

func SendVersion(context HandleHandshakeContext, incomingRoute *routerpkg.Route,
	outgoingRoute *routerpkg.Route, peer *peerpkg.Peer) error

SendVersion sends a version to a peer and waits for verack.

Types

type HandleHandshakeContext

type HandleHandshakeContext interface {
	Config() *infraconfig.Config
	NetAdapter() *netadapter.NetAdapter
	Domain() domain.Domain
	AddressManager() *addressmanager.AddressManager
	AddToPeers(peer *peerpkg.Peer) error
	HandleError(err error, flowName string, isStopping *uint32, errChan chan<- error)
}

HandleHandshakeContext is the interface for the context needed for the HandleHandshake flow.

Jump to

Keyboard shortcuts

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