rlpx

package
v0.0.0-...-0bb783d Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2021 License: GPL-3.0, GPL-3.0 Imports: 20 Imported by: 0

Documentation

Overview

Package rlpx implements the RLPx transport protocol.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Conn

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

Conn is an RLPx network connection. It wraps a low-level network connection. The underlying connection should not be used for other activity when it is wrapped by Conn.

Before sending messages, a handshake must be performed by calling the Handshake method. This type is not generally safe for concurrent use, but reading and writing of messages may happen concurrently after the handshake.

func NewConn

func NewConn(conn net.Conn, dialDest *ecdsa.PublicKey) *Conn

NewConn wraps the given network connection. If dialDest is non-nil, the connection behaves as the initiator during the handshake.

func (*Conn) Close

func (c *Conn) Close() error

Close closes the underlying network connection.

func (*Conn) Handshake

func (c *Conn) Handshake(prv *ecdsa.PrivateKey) (*ecdsa.PublicKey, error)

Handshake performs the handshake. This must be called before any data is written or read from the connection.

func (*Conn) InitWithSecrets

func (c *Conn) InitWithSecrets(sec Secrets)

InitWithSecrets injects connection secrets as if a handshake had been performed. This cannot be called after the handshake.

func (*Conn) Read

func (c *Conn) Read() (code uint64, data []byte, wireSize int, err error)

Read reads a message from the connection. The returned data buffer is valid until the next call to Read.

func (*Conn) SetDeadline

func (c *Conn) SetDeadline(time time.Time) error

SetDeadline sets the deadline for all future read and write operations.

func (*Conn) SetReadDeadline

func (c *Conn) SetReadDeadline(time time.Time) error

SetReadDeadline sets the deadline for all future read operations.

func (*Conn) SetSnappy

func (c *Conn) SetSnappy(snappy bool)

SetSnappy enables or disables snappy compression of messages. This is usually called after the devp2p Hello message exchange when the negotiated version indicates that compression is available on both ends of the connection.

func (*Conn) SetWriteDeadline

func (c *Conn) SetWriteDeadline(time time.Time) error

SetWriteDeadline sets the deadline for all future write operations.

func (*Conn) Write

func (c *Conn) Write(code uint64, data []byte) (uint32, error)

Write writes a message to the connection.

Write returns the written size of the message data. This may be less than or equal to len(data) depending on whether snappy compression is enabled.

type Secrets

type Secrets struct {
	AES, MAC              []byte
	EgressMAC, IngressMAC hash.Hash
	// contains filtered or unexported fields
}

Secrets represents the connection secrets which are negotiated during the handshake.

Jump to

Keyboard shortcuts

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