rootchain

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2024 License: AGPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CertRequestBuffer

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

func NewCertificationRequestBuffer

func NewCertificationRequestBuffer() *CertRequestBuffer

NewCertificationRequestBuffer create new certification nodeRequest buffer

func (*CertRequestBuffer) Add

Add request to certification store. Per node id first valid request is stored. Rest are either duplicate or equivocating and in both cases error is returned. Clear or Reset in order to receive new nodeRequest

func (*CertRequestBuffer) Clear

func (c *CertRequestBuffer) Clear(id types.SystemID)

Clear clears node request in one partition

func (*CertRequestBuffer) IsConsensusReceived

IsConsensusReceived has partition with id reached consensus

func (*CertRequestBuffer) Reset

func (c *CertRequestBuffer) Reset()

Reset removed all incoming nodeRequest from all stores

type ConsensusManager

type ConsensusManager interface {
	// RequestCertification accepts certification requests with proof of quorum or no-quorum.
	RequestCertification(ctx context.Context, cr consensus.IRChangeRequest) error
	// CertificationResult read the channel to receive certification results
	CertificationResult() <-chan *types.UnicityCertificate
	// GetLatestUnicityCertificate get the latest certification for partition (maybe should/can be removed)
	GetLatestUnicityCertificate(id types.SystemID) (*types.UnicityCertificate, error)
	// Run consensus algorithm
	Run(ctx context.Context) error
}

type Node

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

func New

New creates a new instance of the root chain node

func (*Node) Run

func (v *Node) Run(ctx context.Context) error

type Observability

type Observability interface {
	Meter(name string, opts ...metric.MeterOption) metric.Meter
	Tracer(name string, options ...trace.TracerOption) trace.Tracer
	Logger() *slog.Logger
}

type PartitionNet

type PartitionNet interface {
	Send(ctx context.Context, msg any, receivers ...peer.ID) error
	ReceivedChannel() <-chan any
}

type QuorumStatus

type QuorumStatus uint8
const (
	QuorumInProgress QuorumStatus = iota
	QuorumAchieved
	QuorumNotPossible
)

type Subscriptions

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

func NewSubscriptions

func NewSubscriptions(m metric.Meter) *Subscriptions

func (*Subscriptions) Get

func (s *Subscriptions) Get(id types.SystemID) []string

func (*Subscriptions) ResponseSent

func (s *Subscriptions) ResponseSent(id types.SystemID, nodeId string)

func (*Subscriptions) Subscribe

func (s *Subscriptions) Subscribe(id types.SystemID, nodeId string)

Jump to

Keyboard shortcuts

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