Documentation
¶
Index ¶
- type BroadcastFinalizer
- func (b *BroadcastFinalizer) BroadcastFinality(ctx context.Context, vertexID ids.ID) error
- func (b *BroadcastFinalizer) GetFinalityStatus(vertexID ids.ID) FinalityStatus
- func (b *BroadcastFinalizer) GetNovaFrontier() set.Set[ids.ID]
- func (b *BroadcastFinalizer) HealthCheck(ctx context.Context) (Health, error)
- func (b *BroadcastFinalizer) PruneFrontier(before time.Time) int
- func (b *BroadcastFinalizer) ReceiveFinality(ctx context.Context, vertexID ids.ID, nodeID ids.NodeID) error
- func (b *BroadcastFinalizer) RecordFinalization(ctx context.Context, vertexID ids.ID) error
- func (b *BroadcastFinalizer) RegisterVertex(ctx context.Context, vertexID ids.ID, dependencies []ids.ID) error
- type FinalityStatus
- type Finalizer
- type Health
- type NovaEvent
- type NovaMetrics
- type Parameters
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BroadcastFinalizer ¶
type BroadcastFinalizer struct {
// contains filtered or unexported fields
}
BroadcastFinalizer implements network-wide finality broadcasting (Previously part of Avalanche's finalization mechanism)
The broadcast finalizer creates "nova explosions" - when a vertex achieves local finality, it broadcasts this achievement across the network, creating a cascade of finality confirmations.
func NewBroadcastFinalizer ¶
func NewBroadcastFinalizer(nodeID ids.NodeID, validators set.Set[ids.NodeID], params Parameters) *BroadcastFinalizer
NewBroadcastFinalizer creates a new broadcast finalizer
func (*BroadcastFinalizer) BroadcastFinality ¶
BroadcastFinality broadcasts finality to network peers
func (*BroadcastFinalizer) GetFinalityStatus ¶
func (b *BroadcastFinalizer) GetFinalityStatus(vertexID ids.ID) FinalityStatus
GetFinalityStatus returns finality status of a vertex
func (*BroadcastFinalizer) GetNovaFrontier ¶
func (b *BroadcastFinalizer) GetNovaFrontier() set.Set[ids.ID]
GetNovaFrontier returns the current nova frontier
func (*BroadcastFinalizer) HealthCheck ¶
func (b *BroadcastFinalizer) HealthCheck(ctx context.Context) (Health, error)
HealthCheck returns finalizer health
func (*BroadcastFinalizer) PruneFrontier ¶
func (b *BroadcastFinalizer) PruneFrontier(before time.Time) int
PruneFrontier removes old vertices from the frontier
func (*BroadcastFinalizer) ReceiveFinality ¶
func (b *BroadcastFinalizer) ReceiveFinality(ctx context.Context, vertexID ids.ID, nodeID ids.NodeID) error
ReceiveFinality processes finality announcement from peer
func (*BroadcastFinalizer) RecordFinalization ¶
RecordFinalization records local finalization of a vertex
func (*BroadcastFinalizer) RegisterVertex ¶
func (b *BroadcastFinalizer) RegisterVertex(ctx context.Context, vertexID ids.ID, dependencies []ids.ID) error
RegisterVertex registers a vertex for finality tracking
type FinalityStatus ¶
type FinalityStatus struct {
VertexID ids.ID
LocalFinality bool // Locally finalized
NetworkFinality bool // Network-wide finality achieved
NovaTime time.Time // When nova event occurred
Confirmations int // Number of peer confirmations
Dependencies []ids.ID // Required dependencies
Witnesses set.Set[ids.NodeID] // Nodes that confirmed finality
}
FinalityStatus represents the finality state of a vertex
func (*FinalityStatus) IsNova ¶
func (f *FinalityStatus) IsNova() bool
IsNova returns true if the vertex has achieved nova state
type Finalizer ¶
type Finalizer interface {
// RegisterVertex registers a vertex for finality tracking
RegisterVertex(ctx context.Context, vertexID ids.ID, dependencies []ids.ID) error
// RecordFinalization records local finalization of a vertex
RecordFinalization(ctx context.Context, vertexID ids.ID) error
// BroadcastFinality broadcasts finality to network peers
BroadcastFinality(ctx context.Context, vertexID ids.ID) error
// ReceiveFinality processes finality announcement from peer
ReceiveFinality(ctx context.Context, vertexID ids.ID, nodeID ids.NodeID) error
// GetFinalityStatus returns finality status of a vertex
GetFinalityStatus(vertexID ids.ID) FinalityStatus
// GetNovaFrontier returns the current nova frontier
GetNovaFrontier() set.Set[ids.ID]
// HealthCheck returns finalizer health
HealthCheck(ctx context.Context) (Health, error)
}
Finalizer represents nova-based DAG finalization (Previously part of Avalanche consensus finalization)
Nova represents the bright explosion of finality - when consensus is achieved across the network, vertices experience a "nova" event that irreversibly commits them to the chain's history.
type Health ¶
type Health struct {
Healthy bool
NovaRate float64 // Nova events per second
PendingVertices int // Vertices awaiting nova
LastNovaTime time.Time
NetworkCoherence float64 // Network-wide finality coherence
}
Health represents nova finalizer health
type NovaEvent ¶
type NovaEvent struct {
VertexID ids.ID
NovaTime time.Time
Witnesses []ids.NodeID
NovaHeight uint64 // Height at which nova occurred
NovaScore uint64 // Consensus score at nova
}
NovaEvent represents a finality explosion event
type NovaMetrics ¶
type NovaMetrics struct {
NovaEvents uint64
LocalFinalizations uint64
BroadcastsSent uint64
BroadcastsRecvd uint64
AverageNovaTime time.Duration // Time from local to network finality
}
NovaMetrics tracks nova finalization performance
type Parameters ¶
type Parameters struct {
QuorumThreshold float64 // Fraction of validators needed for nova
BroadcastTimeout time.Duration // Timeout for broadcast confirmations
RetryInterval time.Duration // Interval between broadcast retries
MaxRetries int // Maximum broadcast retries
}
Parameters configures the broadcast finalizer