Documentation
¶
Index ¶
- type CertRequestBuffer
- func (c *CertRequestBuffer) Add(ctx context.Context, request *certification.BlockCertificationRequest, ...) (QuorumStatus, []*certification.BlockCertificationRequest, error)
- func (c *CertRequestBuffer) Clear(ctx context.Context, partition types.PartitionID, shard types.ShardID)
- func (c *CertRequestBuffer) IsConsensusReceived(partition types.PartitionID, shard types.ShardID, tb QuorumInfo) QuorumStatus
- type ConsensusManager
- type Node
- type Observability
- type PartitionNet
- type QuorumInfo
- type QuorumStatus
- type Subscriptions
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(m metric.Meter) (*CertRequestBuffer, error)
NewCertificationRequestBuffer create new certification nodeRequest buffer
func (*CertRequestBuffer) Add ¶
func (c *CertRequestBuffer) Add(ctx context.Context, request *certification.BlockCertificationRequest, tb QuorumInfo) (QuorumStatus, []*certification.BlockCertificationRequest, error)
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 in order to receive new nodeRequest (ie to start collecting requests for the next round).
func (*CertRequestBuffer) Clear ¶
func (c *CertRequestBuffer) Clear(ctx context.Context, partition types.PartitionID, shard types.ShardID)
Clear clears node request in one shard - this must be called when the shard's Certification Request for a round has been processed in order for the buffer to accept requests for the next round.
func (*CertRequestBuffer) IsConsensusReceived ¶
func (c *CertRequestBuffer) IsConsensusReceived(partition types.PartitionID, shard types.ShardID, tb QuorumInfo) QuorumStatus
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 *certification.CertificationResponse
ShardInfo(partition types.PartitionID, shard types.ShardID) (*storage.ShardInfo, error)
// Run consensus algorithm
Run(ctx context.Context) error
}
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
func New ¶
func New( peer *network.Peer, pNet PartitionNet, cm ConsensusManager, observe Observability, ) (*Node, error)
New creates a new instance of the root chain node
type Observability ¶
type PartitionNet ¶
type QuorumInfo ¶
type QuorumStatus ¶
type QuorumStatus uint8
const ( QuorumUnknown QuorumStatus = iota QuorumInProgress QuorumAchieved QuorumNotPossible )
func (QuorumStatus) String ¶
func (qs QuorumStatus) String() string
type Subscriptions ¶
type Subscriptions struct {
// contains filtered or unexported fields
}
func NewSubscriptions ¶
func NewSubscriptions(sender func(ctx context.Context, msg any, receivers ...peer.ID) error, obs Observability) (*Subscriptions, error)
func (*Subscriptions) Send ¶
func (s *Subscriptions) Send(ctx context.Context, cr *certification.CertificationResponse)
func (*Subscriptions) Subscribe ¶
func (s *Subscriptions) Subscribe(partition types.PartitionID, shard types.ShardID, nodeId string) error
Click to show internal directories.
Click to hide internal directories.