Documentation
¶
Index ¶
- Variables
- type BLSSignature
- type FinalityEvent
- type FinalityProof
- type HybridSignature
- type HybridSigner
- type PChainProvider
- type QuantumFinality
- type QuantumSignerFallback
- type Quasar
- func (q *Quasar) CheckQuorum(signerWeight, totalWeight uint64) bool
- func (q *Quasar) ConnectPChain(p PChainProvider)
- func (q *Quasar) ConnectQuantumFallback(f QuantumSignerFallback)
- func (q *Quasar) ConnectRingtail(rc *RingtailCoordinator)
- func (q *Quasar) CreateMessage(event FinalityEvent) []byte
- func (q *Quasar) GetConfig() (threshold int, quorumNum, quorumDen uint64)
- func (q *Quasar) GetFinality(blockID ids.ID) (*QuantumFinality, bool)
- func (q *Quasar) GetFinalized(blockID ids.ID) (*QuantumFinality, bool)
- func (q *Quasar) GetHybrid() *quasar.Hybrid
- func (q *Quasar) GetRingtail() *RingtailCoordinator
- func (q *Quasar) InitializeRingtail(validators []ids.NodeID) error
- func (q *Quasar) IsRunning() bool
- func (q *Quasar) SetFinalized(blockID ids.ID, finality *QuantumFinality)
- func (q *Quasar) Start(ctx context.Context) error
- func (q *Quasar) Stats() QuasarStats
- func (q *Quasar) Stop()
- func (q *Quasar) Subscribe() <-chan *QuantumFinality
- func (q *Quasar) TotalWeight(validators []ValidatorState) uint64
- func (q *Quasar) Verify(finality *QuantumFinality) error
- type QuasarStats
- type RingtailConfig
- type RingtailCoordinator
- func (rc *RingtailCoordinator) Initialize(validators []ids.NodeID) error
- func (rc *RingtailCoordinator) IsInitialized() bool
- func (rc *RingtailCoordinator) NumParties() int
- func (rc *RingtailCoordinator) Sign(msg []byte) (Signature, error)
- func (rc *RingtailCoordinator) Stats() RingtailStats
- func (rc *RingtailCoordinator) Threshold() int
- func (rc *RingtailCoordinator) Type() SignatureType
- func (rc *RingtailCoordinator) Verify(msg []byte, sig Signature) bool
- type RingtailSignature
- type RingtailStats
- type Signature
- type SignatureType
- type Signer
- type ThresholdSigner
- type ValidatorInfo
- type ValidatorState
- type Verifier
Constants ¶
This section is empty.
Variables ¶
var ( ErrQuasarNotStarted = errors.New("quasar not started") ErrPChainNotConnected = errors.New("P-Chain not connected") ErrQChainNotConnected = errors.New("Q-Chain not connected") ErrRingtailNotConnected = errors.New("Ringtail coordinator not connected") ErrInsufficientWeight = errors.New("insufficient validator weight") ErrInsufficientSigners = errors.New("insufficient Ringtail signers") ErrFinalityFailed = errors.New("hybrid finality verification failed") ErrBLSFailed = errors.New("BLS aggregation failed") ErrRingtailFailed = errors.New("Ringtail threshold signing failed") )
var ( ErrRingtailNotInitialized = errors.New("ringtail not initialized") ErrRingtailRound1Failed = errors.New("ringtail round 1 failed") ErrRingtailRound2Failed = errors.New("ringtail round 2 failed") ErrRingtailVerifyFailed = errors.New("ringtail signature verification failed") ErrRingtailMACFailed = errors.New("ringtail MAC verification failed") )
Functions ¶
This section is empty.
Types ¶
type BLSSignature ¶ added in v1.16.56
type BLSSignature struct {
// contains filtered or unexported fields
}
BLSSignature represents an aggregated BLS signature
func NewBLSSignature ¶ added in v1.16.56
func NewBLSSignature(sig []byte, signers []ids.NodeID) *BLSSignature
func (*BLSSignature) Bytes ¶ added in v1.16.56
func (s *BLSSignature) Bytes() []byte
func (*BLSSignature) Signers ¶ added in v1.16.56
func (s *BLSSignature) Signers() []ids.NodeID
func (*BLSSignature) Type ¶ added in v1.16.56
func (s *BLSSignature) Type() SignatureType
type FinalityEvent ¶ added in v1.16.56
type FinalityEvent struct {
Height uint64
BlockID ids.ID
Validators []ValidatorState
Timestamp time.Time
}
FinalityEvent represents a P-Chain finality event
type FinalityProof ¶ added in v1.16.56
type FinalityProof struct {
BlockID ids.ID
Height uint64
Signature Signature
TotalWeight uint64
SignerWeight uint64
}
FinalityProof represents proof of block finality
type HybridSignature ¶ added in v1.16.56
type HybridSignature struct {
// contains filtered or unexported fields
}
HybridSignature combines BLS and Ringtail signatures for hybrid P/Q security
func NewHybridSignature ¶ added in v1.16.56
func NewHybridSignature(bls *BLSSignature, ringtail *RingtailSignature) *HybridSignature
func (*HybridSignature) BLS ¶ added in v1.16.56
func (s *HybridSignature) BLS() *BLSSignature
func (*HybridSignature) Bytes ¶ added in v1.16.56
func (s *HybridSignature) Bytes() []byte
func (*HybridSignature) Ringtail ¶ added in v1.16.56
func (s *HybridSignature) Ringtail() *RingtailSignature
func (*HybridSignature) Signers ¶ added in v1.16.56
func (s *HybridSignature) Signers() []ids.NodeID
func (*HybridSignature) Type ¶ added in v1.16.56
func (s *HybridSignature) Type() SignatureType
type HybridSigner ¶ added in v1.16.56
type HybridSigner interface {
Signer
// SignHybrid signs with both BLS and Ringtail in parallel
SignHybrid(msg []byte) (*HybridSignature, error)
// VerifyHybrid verifies both BLS and Ringtail signatures
VerifyHybrid(msg []byte, sig *HybridSignature) bool
}
HybridSigner combines classical and post-quantum signers
type PChainProvider ¶ added in v1.16.56
type PChainProvider interface {
GetFinalizedHeight() uint64
GetValidators(height uint64) ([]ValidatorState, error)
SubscribeFinality() <-chan FinalityEvent
}
PChainProvider provides P-Chain state and finality events
type QuantumFinality ¶ added in v1.16.56
type QuantumFinality struct {
BlockID ids.ID
PChainHeight uint64
QChainHeight uint64
BLSProof []byte // Aggregated BLS signature (96 bytes)
RingtailProof []byte // Serialized Ringtail threshold signature
SignerBitset []byte // Which validators signed BLS
RingtailSigners []ids.NodeID // Which validators participated in Ringtail
TotalWeight uint64
SignerWeight uint64
BLSLatency time.Duration
RingtailLatency time.Duration
Timestamp time.Time
}
QuantumFinality represents a block that achieved hybrid quantum finality
type QuantumSignerFallback ¶ added in v1.16.56
QuantumSignerFallback provides fallback single-signer quantum signatures
type Quasar ¶ added in v1.16.56
type Quasar struct {
// contains filtered or unexported fields
}
Quasar binds P-Chain and Q-Chain consensus into hybrid quantum finality
func (*Quasar) CheckQuorum ¶ added in v1.16.56
CheckQuorum verifies quorum is met (exported for testing)
func (*Quasar) ConnectPChain ¶ added in v1.16.56
func (q *Quasar) ConnectPChain(p PChainProvider)
ConnectPChain connects the P-Chain finality provider
func (*Quasar) ConnectQuantumFallback ¶ added in v1.16.56
func (q *Quasar) ConnectQuantumFallback(f QuantumSignerFallback)
ConnectQuantumFallback connects the quantum signer fallback
func (*Quasar) ConnectRingtail ¶ added in v1.16.56
func (q *Quasar) ConnectRingtail(rc *RingtailCoordinator)
ConnectRingtail connects the Ringtail threshold coordinator
func (*Quasar) CreateMessage ¶ added in v1.16.56
func (q *Quasar) CreateMessage(event FinalityEvent) []byte
CreateMessage creates the finality message to sign (exported for testing)
func (*Quasar) GetConfig ¶ added in v1.16.56
GetConfig returns quorum configuration (exported for testing)
func (*Quasar) GetFinality ¶ added in v1.16.56
func (q *Quasar) GetFinality(blockID ids.ID) (*QuantumFinality, bool)
GetFinality returns finality for a block
func (*Quasar) GetFinalized ¶ added in v1.16.56
func (q *Quasar) GetFinalized(blockID ids.ID) (*QuantumFinality, bool)
GetFinalized retrieves a finality record (exported for testing)
func (*Quasar) GetHybrid ¶ added in v1.16.56
GetHybrid returns the underlying hybrid engine for testing
func (*Quasar) GetRingtail ¶ added in v1.16.56
func (q *Quasar) GetRingtail() *RingtailCoordinator
GetRingtail returns the Ringtail coordinator
func (*Quasar) InitializeRingtail ¶ added in v1.16.56
InitializeRingtail initializes the Ringtail coordinator with validators
func (*Quasar) IsRunning ¶ added in v1.16.56
IsRunning returns whether the Quasar is currently running (exported for testing)
func (*Quasar) SetFinalized ¶ added in v1.16.56
func (q *Quasar) SetFinalized(blockID ids.ID, finality *QuantumFinality)
SetFinalized adds a finality record (exported for testing/benchmarking)
func (*Quasar) Stats ¶ added in v1.16.56
func (q *Quasar) Stats() QuasarStats
Stats returns quasar statistics
func (*Quasar) Subscribe ¶ added in v1.16.56
func (q *Quasar) Subscribe() <-chan *QuantumFinality
Subscribe returns channel for finality events
func (*Quasar) TotalWeight ¶ added in v1.16.56
func (q *Quasar) TotalWeight(validators []ValidatorState) uint64
TotalWeight calculates total validator weight (exported for testing)
func (*Quasar) Verify ¶ added in v1.16.56
func (q *Quasar) Verify(finality *QuantumFinality) error
Verify verifies a hybrid finality proof
type QuasarStats ¶ added in v1.16.56
type QuasarStats struct {
PChainHeight uint64
QChainHeight uint64
FinalizedBlocks int
Threshold int
QuorumNum uint64
QuorumDen uint64
Running bool
RingtailParties int
RingtailThreshold int
RingtailReady bool
}
QuasarStats contains quasar statistics
type RingtailConfig ¶ added in v1.16.56
type RingtailConfig struct {
NumParties int // Total number of parties (validators)
Threshold int // Minimum signers required (typically 2/3 + 1)
}
RingtailConfig holds configuration for Ringtail threshold signatures
type RingtailCoordinator ¶ added in v1.16.56
type RingtailCoordinator struct {
// contains filtered or unexported fields
}
RingtailCoordinator manages the threshold signing protocol
func NewRingtailCoordinator ¶ added in v1.16.56
func NewRingtailCoordinator(log log.Logger, config RingtailConfig) (*RingtailCoordinator, error)
NewRingtailCoordinator creates a new Ringtail threshold coordinator
func (*RingtailCoordinator) Initialize ¶ added in v1.16.56
func (rc *RingtailCoordinator) Initialize(validators []ids.NodeID) error
Initialize sets up the threshold scheme with validators (implements ThresholdSigner)
func (*RingtailCoordinator) IsInitialized ¶ added in v1.16.56
func (rc *RingtailCoordinator) IsInitialized() bool
IsInitialized implements ThresholdSigner interface
func (*RingtailCoordinator) NumParties ¶ added in v1.16.56
func (rc *RingtailCoordinator) NumParties() int
NumParties implements ThresholdSigner interface
func (*RingtailCoordinator) Sign ¶ added in v1.16.56
func (rc *RingtailCoordinator) Sign(msg []byte) (Signature, error)
Sign implements Signer interface - returns a RingtailSignature
func (*RingtailCoordinator) Stats ¶ added in v1.16.56
func (rc *RingtailCoordinator) Stats() RingtailStats
func (*RingtailCoordinator) Threshold ¶ added in v1.16.56
func (rc *RingtailCoordinator) Threshold() int
Threshold implements ThresholdSigner interface
func (*RingtailCoordinator) Type ¶ added in v1.16.56
func (rc *RingtailCoordinator) Type() SignatureType
Type implements Signer interface
type RingtailSignature ¶ added in v1.16.56
type RingtailSignature struct {
// contains filtered or unexported fields
}
RingtailSignature represents a threshold Ringtail signature
func NewRingtailSignature ¶ added in v1.16.56
func NewRingtailSignature(sig []byte, signers []ids.NodeID) *RingtailSignature
func (*RingtailSignature) Bytes ¶ added in v1.16.56
func (s *RingtailSignature) Bytes() []byte
func (*RingtailSignature) Signers ¶ added in v1.16.56
func (s *RingtailSignature) Signers() []ids.NodeID
func (*RingtailSignature) Type ¶ added in v1.16.56
func (s *RingtailSignature) Type() SignatureType
type RingtailStats ¶ added in v1.16.56
type RingtailStats struct {
NumParties int
Threshold int
SessionID int
Initialized bool
ActiveParties int
}
Stats returns coordinator statistics
type Signature ¶ added in v1.16.56
type Signature interface {
// Bytes returns the raw signature bytes
Bytes() []byte
// Type returns the signature algorithm type
Type() SignatureType
// Signers returns the node IDs that contributed to this signature
Signers() []ids.NodeID
}
Signature represents a cryptographic signature in the consensus layer
type SignatureType ¶ added in v1.16.56
type SignatureType uint8
SignatureType identifies the signature algorithm
const ( SignatureTypeBLS SignatureType = iota SignatureTypeRingtail SignatureTypeHybrid SignatureTypeMLDSA )
func (SignatureType) String ¶ added in v1.16.56
func (t SignatureType) String() string
type Signer ¶ added in v1.16.56
type Signer interface {
// Sign signs a message and returns the signature
Sign(msg []byte) (Signature, error)
// Type returns the signer type
Type() SignatureType
}
Signer is the interface for signing operations
type ThresholdSigner ¶ added in v1.16.56
type ThresholdSigner interface {
Signer
// Threshold returns the minimum signers required
Threshold() int
// NumParties returns the total number of parties
NumParties() int
// Initialize sets up the threshold scheme with validators
Initialize(validators []ids.NodeID) error
// IsInitialized returns whether the signer is ready
IsInitialized() bool
}
ThresholdSigner extends Signer for threshold signature schemes
type ValidatorInfo ¶ added in v1.16.56
ValidatorInfo contains validator information for consensus
type ValidatorState ¶ added in v1.16.56
type ValidatorState struct {
NodeID ids.NodeID
Weight uint64
BLSPubKey []byte // BLS public key for aggregate signatures
RingtailKey []byte // Ringtail public key share for threshold sigs
Active bool
}
ValidatorState represents a validator's current state Each validator has BOTH BLS and Ringtail keys