network

package
v0.0.0-...-4f6389c Latest Latest
Warning

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

Go to latest
Published: Mar 27, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DecodedMessage

type DecodedMessage struct {
	From NetAddr
	Data any
}

func DefaultRPCDecodeFunc

func DefaultRPCDecodeFunc(rpc RPC) (_ *DecodedMessage, err error)

type LocalTransport

type LocalTransport struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func NewLocalTransport

func NewLocalTransport(addr NetAddr) *LocalTransport

func (*LocalTransport) Addr

func (l *LocalTransport) Addr() NetAddr

func (*LocalTransport) Broadcast

func (l *LocalTransport) Broadcast(payload []byte) error

func (*LocalTransport) Connect

func (l *LocalTransport) Connect(tr Transport) error

func (*LocalTransport) Consume

func (l *LocalTransport) Consume() <-chan RPC

func (*LocalTransport) SendMessage

func (l *LocalTransport) SendMessage(to NetAddr, payload []byte) error

type Message

type Message struct {
	Header MessageType
	Data   []byte
}

func NewMessage

func NewMessage(t MessageType, data []byte) *Message

func (*Message) Bytes

func (msg *Message) Bytes() []byte

type MessageType

type MessageType byte
const (
	MessageTypeTx MessageType = 0x1
	MessageTypeBlock
)

type NetAddr

type NetAddr string

type RPC

type RPC struct {
	From    NetAddr
	Payload io.Reader
}

type RPCDecodeFunc

type RPCDecodeFunc func(RPC) (*DecodedMessage, error)

type RPCProcessor

type RPCProcessor interface {
	ProcessMessage(*DecodedMessage) error
}

type Server

type Server struct {
	ServerOpts
	// contains filtered or unexported fields
}

func NewServer

func NewServer(opts ServerOpts) *Server

func (*Server) ProcessMessage

func (s *Server) ProcessMessage(msg *DecodedMessage) error

func (*Server) Start

func (s *Server) Start()

type ServerOpts

type ServerOpts struct {
	RPCDecodeFunc RPCDecodeFunc
	RPCProcessor  RPCProcessor
	Transports    []Transport
	BlockTime     time.Duration
	PrivateKey    *crypto.PrivateKey
}

type Transport

type Transport interface {
	Consume() <-chan RPC
	Connect(Transport) error
	SendMessage(NetAddr, []byte) error
	Broadcast([]byte) error
	Addr() NetAddr
}

type TxMapSorter

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

func NewTxMapSorter

func NewTxMapSorter(txMap map[types.Hash]*core.Transaction) *TxMapSorter

func (*TxMapSorter) Len

func (s *TxMapSorter) Len() int

func (*TxMapSorter) Less

func (s *TxMapSorter) Less(i, j int) bool

func (*TxMapSorter) Swap

func (s *TxMapSorter) Swap(i, j int)

type TxPool

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

func NewTxPool

func NewTxPool() *TxPool

func (*TxPool) Add

func (p *TxPool) Add(tx *core.Transaction) error

func (*TxPool) Flush

func (p *TxPool) Flush()

func (*TxPool) Has

func (p *TxPool) Has(hash types.Hash) bool

func (*TxPool) Len

func (p *TxPool) Len() int

func (*TxPool) Transactions

func (p *TxPool) Transactions() []*core.Transaction

Jump to

Keyboard shortcuts

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