Documentation
¶
Overview ¶
Package quasar provides GPU-accelerated NTT operations for Ringtail consensus. This bridges the lux/lattice/gpu package to enable GPU acceleration of lattice operations in the Ringtail threshold signature protocol.
GPU acceleration provides 40x+ speedup for NTT operations on Apple Silicon and NVIDIA GPUs via MLX (which handles Metal/CUDA/CPU fallback automatically).
Architecture:
luxcpp/lattice (C++ GPU) → lux/lattice/gpu (Go CGO) → Quasar consensus
This enables consistent GPU acceleration across:
- Ringtail threshold signatures
- ML-DSA post-quantum signatures
- FHE operations (via luxcpp/fhe which reuses luxcpp/lattice)
Index ¶
- Variables
- type BLSSignature
- type Config
- type ConfigBuilder
- func (b *ConfigBuilder) Build() (Config, error)
- func (b *ConfigBuilder) MustBuild() Config
- func (b *ConfigBuilder) WithAlpha(alpha float64) *ConfigBuilder
- func (b *ConfigBuilder) WithBeta(virtuous, rogue int) *ConfigBuilder
- func (b *ConfigBuilder) WithFinalityChannelSize(size int) *ConfigBuilder
- func (b *ConfigBuilder) WithK(k int) *ConfigBuilder
- func (b *ConfigBuilder) WithNumParties(n int) *ConfigBuilder
- func (b *ConfigBuilder) WithPollInterval(d time.Duration) *ConfigBuilder
- func (b *ConfigBuilder) WithQueryTimeout(d time.Duration) *ConfigBuilder
- func (b *ConfigBuilder) WithQuorum(num, denom uint64) *ConfigBuilder
- func (b *ConfigBuilder) WithThreshold(threshold int) *ConfigBuilder
- type CoreParams
- type FinalityEvent
- type FinalityProof
- type GPUNTTAccelerator
- func (g *GPUNTTAccelerator) Backend() string
- func (g *GPUNTTAccelerator) BatchNTTForward(r *ring.Ring, polys []ring.Poly) error
- func (g *GPUNTTAccelerator) BatchNTTInverse(r *ring.Ring, polys []ring.Poly) error
- func (g *GPUNTTAccelerator) ClearCache()
- func (g *GPUNTTAccelerator) IsEnabled() bool
- func (g *GPUNTTAccelerator) NTTForward(r *ring.Ring, poly ring.Poly) error
- func (g *GPUNTTAccelerator) NTTInverse(r *ring.Ring, poly ring.Poly) error
- func (g *GPUNTTAccelerator) PolyMul(r *ring.Ring, a, b, out ring.Poly) error
- func (g *GPUNTTAccelerator) Stats() GPUNTTStats
- type GPUNTTStats
- 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 QuorumParams
- 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 RuntimeConfig
- type Signature
- type SignatureType
- type Signer
- type ThresholdParams
- type ThresholdSigner
- type ValidatorInfo
- type ValidatorState
- type Verifier
Constants ¶
This section is empty.
Variables ¶
var ( ErrInvalidK = errors.New("K must be positive") ErrInvalidAlpha = errors.New("alpha must be in (0, 1]") ErrInvalidBeta = errors.New("beta must be positive and <= K") ErrInvalidThreshold = errors.New("threshold must be >= 2 and <= parties") ErrInvalidQuorum = errors.New("quorum numerator must be <= denominator") ErrInvalidTimeout = errors.New("timeout must be positive") ErrInvalidInterval = errors.New("polling interval must be positive") )
Configuration errors
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 Config ¶ added in v1.22.79
type Config struct {
Core CoreParams
Threshold ThresholdParams
Quorum QuorumParams
Runtime RuntimeConfig
}
Config is the complete Quasar consensus configuration. Use ConfigBuilder for fluent construction.
func DefaultConfig ¶ added in v1.22.79
func DefaultConfig() Config
DefaultConfig returns a production-ready configuration. Call DefaultConfig().WithNumParties(n) to set validator count.
type ConfigBuilder ¶ added in v1.22.79
type ConfigBuilder struct {
// contains filtered or unexported fields
}
ConfigBuilder enables fluent Config construction with validation.
func NewConfigBuilder ¶ added in v1.22.79
func NewConfigBuilder() *ConfigBuilder
NewConfigBuilder creates a builder starting from defaults.
func (*ConfigBuilder) Build ¶ added in v1.22.79
func (b *ConfigBuilder) Build() (Config, error)
Build validates and returns the configuration.
func (*ConfigBuilder) MustBuild ¶ added in v1.22.79
func (b *ConfigBuilder) MustBuild() Config
MustBuild validates and returns the configuration, panicking on error. Use only in tests or when configuration is known to be valid.
func (*ConfigBuilder) WithAlpha ¶ added in v1.22.79
func (b *ConfigBuilder) WithAlpha(alpha float64) *ConfigBuilder
WithAlpha sets the quorum fraction.
func (*ConfigBuilder) WithBeta ¶ added in v1.22.79
func (b *ConfigBuilder) WithBeta(virtuous, rogue int) *ConfigBuilder
WithBeta sets both BetaVirtuous and BetaRogue.
func (*ConfigBuilder) WithFinalityChannelSize ¶ added in v1.22.79
func (b *ConfigBuilder) WithFinalityChannelSize(size int) *ConfigBuilder
WithFinalityChannelSize sets the finality channel buffer size.
func (*ConfigBuilder) WithK ¶ added in v1.22.79
func (b *ConfigBuilder) WithK(k int) *ConfigBuilder
WithK sets the sample size.
func (*ConfigBuilder) WithNumParties ¶ added in v1.22.79
func (b *ConfigBuilder) WithNumParties(n int) *ConfigBuilder
WithNumParties sets the validator count and computes 2/3+1 threshold.
func (*ConfigBuilder) WithPollInterval ¶ added in v1.22.79
func (b *ConfigBuilder) WithPollInterval(d time.Duration) *ConfigBuilder
WithPollInterval sets the polling interval.
func (*ConfigBuilder) WithQueryTimeout ¶ added in v1.22.79
func (b *ConfigBuilder) WithQueryTimeout(d time.Duration) *ConfigBuilder
WithQueryTimeout sets the query timeout.
func (*ConfigBuilder) WithQuorum ¶ added in v1.22.79
func (b *ConfigBuilder) WithQuorum(num, denom uint64) *ConfigBuilder
WithQuorum sets the quorum fraction as numerator/denominator.
func (*ConfigBuilder) WithThreshold ¶ added in v1.22.79
func (b *ConfigBuilder) WithThreshold(threshold int) *ConfigBuilder
WithThreshold sets an explicit threshold (overrides default 2/3+1).
type CoreParams ¶ added in v1.22.79
type CoreParams struct {
// K is the sample size for each consensus query round.
// Typical values: 20-25 for production networks.
K int
// Alpha is the quorum threshold as a fraction of K.
// A response is accepted if >= ceil(K * Alpha) validators agree.
// Must be in (0.5, 1] for Byzantine fault tolerance.
// Typical value: 0.8 (80% of sample must agree).
Alpha float64
// BetaVirtuous is the number of consecutive successful polls
// required to finalize a virtuous (non-conflicting) decision.
// Higher values increase latency but improve consistency.
// Typical value: 15-20.
BetaVirtuous int
// BetaRogue is the number of consecutive successful polls
// required to finalize a rogue (conflicting) decision.
// Should be >= BetaVirtuous.
// Typical value: 20-25.
BetaRogue int
}
CoreParams defines the fundamental Snow consensus parameters. These are protocol-critical and must match across all validators.
func DefaultCoreParams ¶ added in v1.22.79
func DefaultCoreParams() CoreParams
DefaultCoreParams returns production-ready core parameters.
func (CoreParams) AlphaThreshold ¶ added in v1.22.79
func (p CoreParams) AlphaThreshold() int
AlphaThreshold returns the minimum agreements needed for quorum.
func (CoreParams) Validate ¶ added in v1.22.79
func (p CoreParams) Validate() error
Validate checks CoreParams invariants.
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 GPUNTTAccelerator ¶ added in v1.22.76
type GPUNTTAccelerator struct {
// contains filtered or unexported fields
}
GPUNTTAccelerator provides GPU-accelerated NTT operations for Ringtail. It wraps the lux/lattice/gpu package which uses MLX for Metal/CUDA/CPU backend.
func GetGPUAccelerator ¶ added in v1.22.76
func GetGPUAccelerator() (*GPUNTTAccelerator, error)
GetGPUAccelerator returns the global GPU NTT accelerator instance. The accelerator is lazily initialized on first call.
func NewGPUNTTAccelerator ¶ added in v1.22.76
func NewGPUNTTAccelerator() (*GPUNTTAccelerator, error)
NewGPUNTTAccelerator creates a new GPU NTT accelerator. It auto-detects available GPU backends (Metal on macOS, CUDA on Linux).
func (*GPUNTTAccelerator) Backend ¶ added in v1.22.76
func (g *GPUNTTAccelerator) Backend() string
Backend returns the name of the active GPU backend.
func (*GPUNTTAccelerator) BatchNTTForward ¶ added in v1.22.76
BatchNTTForward performs forward NTT on multiple polynomials in parallel. This is the primary use case for GPU acceleration - batch operations.
func (*GPUNTTAccelerator) BatchNTTInverse ¶ added in v1.22.76
BatchNTTInverse performs inverse NTT on multiple polynomials in parallel.
func (*GPUNTTAccelerator) ClearCache ¶ added in v1.22.76
func (g *GPUNTTAccelerator) ClearCache()
ClearCache clears the GPU NTT context cache.
func (*GPUNTTAccelerator) IsEnabled ¶ added in v1.22.76
func (g *GPUNTTAccelerator) IsEnabled() bool
IsEnabled returns whether GPU acceleration is available.
func (*GPUNTTAccelerator) NTTForward ¶ added in v1.22.76
NTTForward performs forward NTT on a polynomial using GPU acceleration. Falls back to CPU if GPU is not available.
func (*GPUNTTAccelerator) NTTInverse ¶ added in v1.22.76
NTTInverse performs inverse NTT on a polynomial using GPU acceleration. Falls back to CPU if GPU is not available.
func (*GPUNTTAccelerator) PolyMul ¶ added in v1.22.76
PolyMul performs polynomial multiplication using GPU-accelerated NTT. This multiplies polynomials a and b, storing result in out.
func (*GPUNTTAccelerator) Stats ¶ added in v1.22.76
func (g *GPUNTTAccelerator) Stats() GPUNTTStats
Stats returns current GPU NTT accelerator statistics.
type GPUNTTStats ¶ added in v1.22.76
Stats returns GPU accelerator statistics.
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 QuorumParams ¶ added in v1.22.79
type QuorumParams struct {
// Numerator and Denominator define the minimum weight fraction.
// Quorum is met when SignerWeight/TotalWeight >= Numerator/Denominator.
// For BFT: typically 2/3 (Numerator=2, Denominator=3).
Numerator uint64
Denominator uint64
}
QuorumParams defines weight-based quorum requirements.
func DefaultQuorumParams ¶ added in v1.22.79
func DefaultQuorumParams() QuorumParams
DefaultQuorumParams returns 2/3 quorum (67% of weight required).
func (QuorumParams) IsMet ¶ added in v1.22.79
func (p QuorumParams) IsMet(signerWeight, totalWeight uint64) bool
IsMet returns true if signerWeight meets quorum given totalWeight.
func (QuorumParams) RequiredWeight ¶ added in v1.22.79
func (p QuorumParams) RequiredWeight(totalWeight uint64) uint64
RequiredWeight returns minimum weight needed for quorum given totalWeight.
func (QuorumParams) Validate ¶ added in v1.22.79
func (p QuorumParams) Validate() error
Validate checks QuorumParams invariants.
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 RuntimeConfig ¶ added in v1.22.79
type RuntimeConfig struct {
// PollInterval is the delay between consensus query rounds.
// Lower values decrease latency but increase network load.
// Typical value: 100-500ms.
PollInterval time.Duration
// QueryTimeout is the maximum time to wait for query responses.
// Must be > PollInterval.
// Typical value: 2-5s.
QueryTimeout time.Duration
// FinalityChannelSize is the buffer size for the finality event channel.
FinalityChannelSize int
// MaxConcurrentQueries limits parallel outstanding queries.
// 0 means unlimited.
MaxConcurrentQueries int
}
RuntimeConfig holds tunable runtime parameters. These affect performance and liveness but not consensus safety.
func DefaultRuntimeConfig ¶ added in v1.22.79
func DefaultRuntimeConfig() RuntimeConfig
DefaultRuntimeConfig returns production-ready runtime configuration.
func (RuntimeConfig) Validate ¶ added in v1.22.79
func (c RuntimeConfig) Validate() error
Validate checks RuntimeConfig invariants.
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 ThresholdParams ¶ added in v1.22.79
type ThresholdParams struct {
// NumParties is the total number of signing parties (validators).
// Must be >= 3 for threshold signatures.
NumParties int
// Threshold is the minimum signers required (t in t-of-n).
// For BFT: typically 2/3 + 1.
// Must be >= 2 and <= NumParties.
Threshold int
}
ThresholdParams defines t-of-n threshold signature configuration.
func DefaultThresholdParams ¶ added in v1.22.79
func DefaultThresholdParams(numParties int) ThresholdParams
DefaultThresholdParams returns 2/3+1 threshold for n parties.
func (ThresholdParams) Validate ¶ added in v1.22.79
func (p ThresholdParams) Validate() error
Validate checks ThresholdParams invariants.
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