carrier

package
v0.0.0-...-87ea4a5 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2022 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decide

func Decide(D map[string][][]byte)

Types

type Carrier

type Carrier struct {
	Counter uint64

	Config *util.Config

	Listeners Listeners
	Stores    Stores
	Locks     Locks

	NodeConn *net.TCPConn
	Node     *remote.Node

	Neighbours map[string]*remote.Neighbour

	// Registry of message handlers. Argument must be one of the enum types
	MessageHandlers map[message.Type]func(message.Message) error

	Suite *pairing.SuiteBn256

	F int
	N int

	Wg *sync.WaitGroup

	Quit               chan bool
	BroadcastDispenser chan message.Message
	SbsCounter         int
}

func NewCarrier

func NewCarrier(config *util.Config) *Carrier

func (*Carrier) Broadcast

func (c *Carrier) Broadcast(message message.Message)

func (*Carrier) BroadcastWorker

func (c *Carrier) BroadcastWorker()

func (*Carrier) CheckAcceptedHashStoreAndDecide

func (c *Carrier) CheckAcceptedHashStoreAndDecide()

func (*Carrier) DecodeNestedSMRDecisions

func (c *Carrier) DecodeNestedSMRDecisions(conn net.Conn)

func (*Carrier) ExecuteBroadcast

func (c *Carrier) ExecuteBroadcast(message message.Message)

For communicating with carriers

func (*Carrier) ForwardMode

func (c *Carrier) ForwardMode() bool

func (*Carrier) GetAddress

func (c *Carrier) GetAddress() string

func (*Carrier) GetCarrierToCarrierAddress

func (c *Carrier) GetCarrierToCarrierAddress() string

func (*Carrier) GetClientToCarrierAddress

func (c *Carrier) GetClientToCarrierAddress() string

func (*Carrier) GetDecisionAddress

func (c *Carrier) GetDecisionAddress() string

func (*Carrier) GetID

func (c *Carrier) GetID() string

func (*Carrier) GetKyberPK

func (c *Carrier) GetKyberPK() kyber.Point

func (*Carrier) GetKyberSK

func (c *Carrier) GetKyberSK() kyber.Scalar

func (*Carrier) GetMempoolThreshold

func (c *Carrier) GetMempoolThreshold() int

func (*Carrier) GetPKFromID

func (c *Carrier) GetPKFromID(senderID string) (kyber.Point, error)

func (*Carrier) GetStringPK

func (c *Carrier) GetStringPK() string

func (*Carrier) GetStringSK

func (c *Carrier) GetStringSK() string

func (*Carrier) GetSuite

func (c *Carrier) GetSuite() pairing.Suite

func (*Carrier) GetTsxSize

func (c *Carrier) GetTsxSize() int

func (*Carrier) HandleCarrierConn

func (c *Carrier) HandleCarrierConn(conn net.Conn)

func (*Carrier) HandleClientConn

func (c *Carrier) HandleClientConn(conn net.Conn)

func (*Carrier) HandleEchoMessage

func (c *Carrier) HandleEchoMessage(rawMessage message.Message) error

func (*Carrier) HandleIncomingConnections

func (c *Carrier) HandleIncomingConnections(l *net.TCPListener, handler func(conn net.Conn))

func (*Carrier) HandleInitMessage

func (c *Carrier) HandleInitMessage(rawMessage message.Message) error

func (*Carrier) HandleNestedSMRDecision

func (c *Carrier) HandleNestedSMRDecision(N superblock.SuperBlockSummary)

HandleNestedSMRDecision assumes that N is safe and correct

func (*Carrier) HandleRequestMessage

func (c *Carrier) HandleRequestMessage(rawMessage message.Message) error

func (*Carrier) HandleResolveMessage

func (c *Carrier) HandleResolveMessage(rawMessage message.Message) error

func (*Carrier) LaunchWorkerPool

func (c *Carrier) LaunchWorkerPool(poolSize int, task func())

func (*Carrier) Logger

func (c *Carrier) Logger()

func (*Carrier) NestedPropose

func (c *Carrier) NestedPropose(P superblock.SuperBlockSummary) error

func (*Carrier) Sign

func (c *Carrier) Sign(h string) string

func (*Carrier) Start

func (c *Carrier) Start() *sync.WaitGroup

Start listening to client requests Forward client requests We are not waiting for listeners to stop but I think it's fine

func (*Carrier) StartListener

func (c *Carrier) StartListener(address string) (*net.TCPListener, error)

func (*Carrier) Stop

func (c *Carrier) Stop()

func (*Carrier) Verify

func (c *Carrier) Verify(h string, s util.Signature) error

type Conn

type Conn struct {
	Conn    net.Conn
	Sink    chan []byte
	Address string
}

Conn is a new wrapper around net.Conn The idea is to implement a reliable connection that will detect errors and attempt to reconnect if the connection breaks down.

func Connect

func Connect(address string, sinkBufferSize int) *Conn

func (*Conn) Connect

func (c *Conn) Connect() error

func (*Conn) RunSinkConsumer

func (c *Conn) RunSinkConsumer()

func (*Conn) Write

func (c *Conn) Write(buf []byte)

type Listeners

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

type Locks

type Locks struct {
	ValueStore        *sync.RWMutex
	SignatureStore    *sync.RWMutex
	SuperBlockSummary *sync.RWMutex
	AcceptedHashStore *sync.RWMutex

	// This lock is a known bottleneck
	DecisionLock *sync.RWMutex
}

type Stores

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

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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