Documentation
¶
Index ¶
- Constants
- type BCLookup
- type BaseTransaction
- type Block
- func (b *Block) Accept(context.Context) error
- func (b *Block) Bytes() []byte
- func (b *Block) Height() uint64
- func (b *Block) ID() ids.ID
- func (b *Block) Parent() ids.ID
- func (b *Block) ParentID() ids.ID
- func (b *Block) Reject(context.Context) error
- func (b *Block) String() string
- func (b *Block) Time() time.Time
- func (b *Block) Timestamp() int64
- func (b *Block) Verify(ctx context.Context) error
- type BlockSigs
- type Factory
- type GenerateRingtailKeyArgs
- type GenerateRingtailKeyReply
- type GetBlockArgs
- type GetBlockReply
- type GetConfigArgs
- type GetConfigReply
- type GetHealthArgs
- type GetHealthReply
- type GetPendingTransactionsArgs
- type GetPendingTransactionsReply
- type PendingBlock
- type Quasar
- func (q *Quasar) AddBLSSignature(blockID ids.ID, sig *quasar.BLSSignature) error
- func (q *Quasar) AddRingtailSignature(blockID ids.ID, sig *quasar.RingtailSignature) error
- func (q *Quasar) AddValidator(validatorID string, weight uint64) error
- func (q *Quasar) Cleanup(minHeight uint64)
- func (q *Quasar) GetActiveValidators() int
- func (q *Quasar) GetQuasar() *quasar.Quasar
- func (q *Quasar) GetThreshold() int
- func (q *Quasar) InitializeDualThreshold(ctx context.Context) error
- func (q *Quasar) IsFinalized(blockID ids.ID) bool
- func (q *Quasar) SignBlock(ctx context.Context, blockID ids.ID, blockHash []byte, height uint64) (*BlockSigs, error)
- func (q *Quasar) TryFinalize(ctx context.Context, blockID ids.ID) (*quasar.AggregatedSignature, bool, error)
- type QuasarBridge
- type QuasarBridgeConfig
- type QuasarConfig
- type Service
- func (s *Service) GenerateRingtailKey(r *http.Request, args *GenerateRingtailKeyArgs, ...) error
- func (s *Service) GetBlock(r *http.Request, args *GetBlockArgs, reply *GetBlockReply) error
- func (s *Service) GetConfig(r *http.Request, args *GetConfigArgs, reply *GetConfigReply) error
- func (s *Service) GetHealth(r *http.Request, args *GetHealthArgs, reply *GetHealthReply) error
- func (s *Service) GetPendingTransactions(r *http.Request, args *GetPendingTransactionsArgs, ...) error
- func (s *Service) SignWithQuantum(r *http.Request, args *SignWithQuantumArgs, reply *SignWithQuantumReply) error
- func (s *Service) VerifyQuantumSignature(r *http.Request, args *VerifyQuantumSignatureArgs, ...) error
- type SharedMemory
- type SignWithQuantumArgs
- type SignWithQuantumReply
- type Transaction
- type TransactionPool
- type TransactionWorker
- type VM
- func (vm *VM) BuildBlock(ctx context.Context) (consensuscore.Block, error)
- func (vm *VM) Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error
- func (vm *VM) CreateHandlers(ctx context.Context) (map[string]http.Handler, error)
- func (vm *VM) CreateStaticHandlers(ctx context.Context) (map[string]http.Handler, error)
- func (vm *VM) Disconnected(ctx context.Context, nodeID ids.NodeID) error
- func (vm *VM) GetBlock(ctx context.Context, blockID ids.ID) (consensuscore.Block, error)
- func (vm *VM) GetEngine() consensusdag.Engine
- func (vm *VM) GetHybridBridge() interface{}
- func (vm *VM) GetQuasarBridge() *QuasarBridge
- func (vm *VM) HealthCheck(ctx context.Context) (interface{}, error)
- func (vm *VM) Initialize(ctx context.Context, chainCtx interface{}, db database.Database, ...) error
- func (vm *VM) ParseBlock(ctx context.Context, blockBytes []byte) (consensuscore.Block, error)
- func (vm *VM) SetHybridBridge(bridge interface{})
- func (vm *VM) SetState(ctx context.Context, state consensusinterfaces.State) error
- func (vm *VM) Shutdown(ctx context.Context) error
- func (vm *VM) StampBlock(blockID interface{}, pChainHeight uint64, message []byte) (interface{}, error)
- func (vm *VM) VerifyStamp(stamp interface{}) error
- func (vm *VM) Version(ctx context.Context) (string, error)
- type VerifyQuantumSignatureArgs
- type VerifyQuantumSignatureReply
Constants ¶
const ( // Version of the QVM Version = "1.0.0" // MaxParallelVerifications is the maximum number of parallel verifications MaxParallelVerifications = 100 // DefaultBatchSize is the default batch size for parallel processing DefaultBatchSize = 10 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseTransaction ¶ added in v1.16.56
type BaseTransaction struct {
// contains filtered or unexported fields
}
BaseTransaction provides common transaction functionality
func (*BaseTransaction) Bytes ¶ added in v1.16.56
func (tx *BaseTransaction) Bytes() []byte
Bytes returns the transaction bytes
func (*BaseTransaction) Execute ¶ added in v1.16.56
func (tx *BaseTransaction) Execute() error
Execute executes the transaction
func (*BaseTransaction) GetQuantumSignature ¶ added in v1.16.56
func (tx *BaseTransaction) GetQuantumSignature() *quantum.QuantumSignature
GetQuantumSignature returns the quantum signature
func (*BaseTransaction) ID ¶ added in v1.16.56
func (tx *BaseTransaction) ID() ids.ID
ID returns the transaction ID
func (*BaseTransaction) Timestamp ¶ added in v1.16.56
func (tx *BaseTransaction) Timestamp() time.Time
Timestamp returns the transaction timestamp
func (*BaseTransaction) Verify ¶ added in v1.16.56
func (tx *BaseTransaction) Verify() error
Verify verifies the transaction
type Block ¶ added in v1.16.56
type Block struct {
// contains filtered or unexported fields
}
Block represents a QVM block with quantum features
func (*Block) ParentID ¶ added in v1.16.56
ParentID returns the parent block ID (implements consensus Block interface)
type BlockSigs ¶ added in v1.22.80
type BlockSigs struct {
BLS *quasar.BLSSignature
Ringtail *quasar.RingtailSignature
}
BlockSigs contains both BLS and Ringtail signatures for a block. Both are produced in parallel during signing.
type GenerateRingtailKeyArgs ¶ added in v1.16.56
type GenerateRingtailKeyArgs struct{}
GenerateRingtailKeyArgs are the arguments for GenerateRingtailKey
type GenerateRingtailKeyReply ¶ added in v1.16.56
type GenerateRingtailKeyReply struct {
PublicKey string `json:"publicKey"`
Version uint32 `json:"version"`
KeySize int `json:"keySize"`
}
GenerateRingtailKeyReply is the reply for GenerateRingtailKey
type GetBlockArgs ¶ added in v1.16.56
type GetBlockArgs struct {
BlockID string `json:"blockID"`
}
GetBlockArgs are the arguments for GetBlock
type GetBlockReply ¶ added in v1.16.56
type GetBlockReply struct {
Block json.RawMessage `json:"block"`
Height uint64 `json:"height"`
Timestamp int64 `json:"timestamp"`
TxCount int `json:"txCount"`
QuantumSig bool `json:"quantumSig"`
}
GetBlockReply is the reply for GetBlock
type GetConfigArgs ¶ added in v1.16.56
type GetConfigArgs struct{}
GetConfigArgs are the arguments for GetConfig
type GetConfigReply ¶ added in v1.16.56
type GetConfigReply struct {
TxFee uint64 `json:"txFee"`
CreateAssetTxFee uint64 `json:"createAssetTxFee"`
QuantumVerificationFee uint64 `json:"quantumVerificationFee"`
MaxParallelTxs int `json:"maxParallelTxs"`
QuantumAlgorithmVersion uint32 `json:"quantumAlgorithmVersion"`
RingtailKeySize int `json:"ringtailKeySize"`
QuantumStampEnabled bool `json:"quantumStampEnabled"`
RingtailEnabled bool `json:"ringtailEnabled"`
ParallelBatchSize int `json:"parallelBatchSize"`
}
GetConfigReply is the reply for GetConfig
type GetHealthArgs ¶ added in v1.16.56
type GetHealthArgs struct{}
GetHealthArgs are the arguments for GetHealth
type GetHealthReply ¶ added in v1.16.56
type GetHealthReply struct {
Healthy bool `json:"healthy"`
Version string `json:"version"`
QuantumEnabled bool `json:"quantumEnabled"`
RingtailEnabled bool `json:"ringtailEnabled"`
PendingTxCount int `json:"pendingTxCount"`
ParallelWorkers int `json:"parallelWorkers"`
}
GetHealthReply is the reply for GetHealth
type GetPendingTransactionsArgs ¶ added in v1.16.56
type GetPendingTransactionsArgs struct {
Limit int `json:"limit"`
}
GetPendingTransactionsArgs are the arguments for GetPendingTransactions
type GetPendingTransactionsReply ¶ added in v1.16.56
type GetPendingTransactionsReply struct {
Transactions []json.RawMessage `json:"transactions"`
Count int `json:"count"`
}
GetPendingTransactionsReply is the reply for GetPendingTransactions
type PendingBlock ¶ added in v1.22.80
type PendingBlock struct {
BlockID ids.ID
BlockHash []byte
Height uint64
BLSSignatures []*quasar.BLSSignature // Classical threshold signatures (parallel)
RingtailSignatures []*quasar.RingtailSignature // Post-quantum threshold signatures (parallel)
BLSFinalized bool // BLS threshold reached
RingtailFinalized bool // Ringtail threshold reached
Finalized bool // BOTH complete = quantum finality
}
PendingBlock tracks a block awaiting dual signature finality. Both BLS AND Ringtail must reach threshold for quantum finality. Signatures are collected in parallel - either can complete first.
type Quasar ¶ added in v1.22.6
type Quasar struct {
// contains filtered or unexported fields
}
Quasar is the core Post-Quantum BFT consensus engine for Q-Chain. Like a supermassive black hole, it pulls all blocks to quantum finality using dual BLS+Ringtail threshold signatures: - BLS threshold signatures (classical security, fast path) - Ringtail threshold signatures (post-quantum, Ring-LWE based)
Blocks are NOT considered produced without BOTH thresholds being met.
func NewQuasar ¶ added in v1.22.6
func NewQuasar(cfg QuasarConfig) (*Quasar, error)
NewQuasar creates a new Quasar PQ-BFT consensus engine
func (*Quasar) AddBLSSignature ¶ added in v1.22.80
AddBLSSignature adds a BLS signature from another validator
func (*Quasar) AddRingtailSignature ¶ added in v1.22.80
AddRingtailSignature adds a Ringtail signature from another validator
func (*Quasar) AddValidator ¶ added in v1.22.80
AddValidator adds a new validator to the Quasar consensus
func (*Quasar) Cleanup ¶ added in v1.22.80
Cleanup removes finalized blocks older than the given height
func (*Quasar) GetActiveValidators ¶ added in v1.22.80
GetActiveValidators returns the count of active validators
func (*Quasar) GetThreshold ¶ added in v1.22.80
GetThreshold returns the consensus threshold
func (*Quasar) InitializeDualThreshold ¶ added in v1.22.80
InitializeDualThreshold sets up BLS and Ringtail threshold keys for a new epoch
func (*Quasar) IsFinalized ¶ added in v1.22.80
IsFinalized checks if a block has been finalized with BOTH signature types
func (*Quasar) SignBlock ¶ added in v1.22.80
func (q *Quasar) SignBlock(ctx context.Context, blockID ids.ID, blockHash []byte, height uint64) (*BlockSigs, error)
SignBlock creates both BLS and Ringtail signatures for a block in parallel. Returns both signatures; both must reach threshold for quantum finality.
func (*Quasar) TryFinalize ¶ added in v1.22.80
func (q *Quasar) TryFinalize(ctx context.Context, blockID ids.ID) (*quasar.AggregatedSignature, bool, error)
TryFinalize attempts to finalize a block if BOTH threshold signatures are collected. Quantum finality requires both BLS AND Ringtail thresholds to be met.
type QuasarBridge ¶ added in v1.22.80
type QuasarBridge = Quasar
QuasarBridge is an alias for Quasar - the hybrid P/Q consensus bridge that connects P-Chain BLS + Q-Chain Ringtail for dual signature finality
func NewQuasarBridge ¶ added in v1.22.80
func NewQuasarBridge(cfg QuasarBridgeConfig, _ interface{}) (*QuasarBridge, error)
NewQuasarBridge creates a new Quasar bridge (alias for NewQuasar) The quantumSigner parameter is reserved for future quantum signer integration
type QuasarBridgeConfig ¶ added in v1.22.80
type QuasarBridgeConfig = QuasarConfig
QuasarBridgeConfig is an alias for QuasarConfig
type QuasarConfig ¶ added in v1.22.80
QuasarConfig configures the Quasar PQ-BFT consensus
type Service ¶ added in v1.16.56
type Service struct {
// contains filtered or unexported fields
}
Service provides QVM RPC service
func (*Service) GenerateRingtailKey ¶ added in v1.16.56
func (s *Service) GenerateRingtailKey(r *http.Request, args *GenerateRingtailKeyArgs, reply *GenerateRingtailKeyReply) error
GenerateRingtailKey generates a new Ringtail key pair
func (*Service) GetBlock ¶ added in v1.16.56
func (s *Service) GetBlock(r *http.Request, args *GetBlockArgs, reply *GetBlockReply) error
GetBlock returns a block by ID
func (*Service) GetConfig ¶ added in v1.16.56
func (s *Service) GetConfig(r *http.Request, args *GetConfigArgs, reply *GetConfigReply) error
GetConfig returns the QVM configuration
func (*Service) GetHealth ¶ added in v1.16.56
func (s *Service) GetHealth(r *http.Request, args *GetHealthArgs, reply *GetHealthReply) error
GetHealth returns the health status of the QVM
func (*Service) GetPendingTransactions ¶ added in v1.16.56
func (s *Service) GetPendingTransactions(r *http.Request, args *GetPendingTransactionsArgs, reply *GetPendingTransactionsReply) error
GetPendingTransactions returns pending transactions
func (*Service) SignWithQuantum ¶ added in v1.16.56
func (s *Service) SignWithQuantum(r *http.Request, args *SignWithQuantumArgs, reply *SignWithQuantumReply) error
SignWithQuantum signs a message with quantum signature
func (*Service) VerifyQuantumSignature ¶ added in v1.16.56
func (s *Service) VerifyQuantumSignature(r *http.Request, args *VerifyQuantumSignatureArgs, reply *VerifyQuantumSignatureReply) error
VerifyQuantumSignature verifies a quantum signature
type SharedMemory ¶ added in v1.16.56
type SharedMemory interface {
}
SharedMemory provides cross-chain shared memory
type SignWithQuantumArgs ¶ added in v1.16.56
type SignWithQuantumArgs struct {
Message string `json:"message"`
PrivateKey string `json:"privateKey"`
}
SignWithQuantumArgs are the arguments for SignWithQuantum
type SignWithQuantumReply ¶ added in v1.16.56
type SignWithQuantumReply struct {
Signature string `json:"signature"`
Algorithm uint32 `json:"algorithm"`
Timestamp int64 `json:"timestamp"`
}
SignWithQuantumReply is the reply for SignWithQuantum
type Transaction ¶ added in v1.16.56
type Transaction interface {
ID() ids.ID
Bytes() []byte
Verify() error
Execute() error
GetQuantumSignature() *quantum.QuantumSignature
Timestamp() time.Time
}
Transaction represents a QVM transaction
type TransactionPool ¶ added in v1.16.56
type TransactionPool struct {
// contains filtered or unexported fields
}
TransactionPool manages pending transactions
func NewTransactionPool ¶ added in v1.16.56
func NewTransactionPool(maxSize, batchSize int, logger log.Logger) *TransactionPool
NewTransactionPool creates a new transaction pool
func (*TransactionPool) AddTransaction ¶ added in v1.16.56
func (p *TransactionPool) AddTransaction(tx Transaction) error
AddTransaction adds a transaction to the pool
func (*TransactionPool) Close ¶ added in v1.16.56
func (p *TransactionPool) Close()
Close closes the transaction pool
func (*TransactionPool) GetPendingTransactions ¶ added in v1.16.56
func (p *TransactionPool) GetPendingTransactions(limit int) []Transaction
GetPendingTransactions returns pending transactions up to the limit
func (*TransactionPool) PendingCount ¶ added in v1.16.56
func (p *TransactionPool) PendingCount() int
PendingCount returns the number of pending transactions
func (*TransactionPool) RemoveTransaction ¶ added in v1.16.56
func (p *TransactionPool) RemoveTransaction(txID ids.ID) error
RemoveTransaction removes a transaction from the pool
type TransactionWorker ¶ added in v1.16.56
type TransactionWorker struct {
// contains filtered or unexported fields
}
TransactionWorker processes transactions in parallel
func (*TransactionWorker) ProcessBatch ¶ added in v1.16.56
func (w *TransactionWorker) ProcessBatch(txs []Transaction) ([]Transaction, error)
ProcessBatch processes a batch of transactions
type VM ¶
type VM struct {
config.Config
ChainAlias string
NetworkID uint32
// contains filtered or unexported fields
}
VM implements the Q-chain Virtual Machine with quantum features
func (*VM) BuildBlock ¶
BuildBlock builds a new block with pending transactions
func (*VM) Connected ¶ added in v1.16.56
func (vm *VM) Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error
Connected notifies the VM that a validator has connected
func (*VM) CreateHandlers ¶
CreateHandlers returns HTTP handlers for the VM
func (*VM) CreateStaticHandlers ¶
CreateStaticHandlers returns static HTTP handlers
func (*VM) Disconnected ¶ added in v1.16.56
Disconnected notifies the VM that a validator has disconnected
func (*VM) GetEngine ¶ added in v1.16.56
func (vm *VM) GetEngine() consensusdag.Engine
GetEngine returns the DAG consensus engine
func (*VM) GetHybridBridge ¶ added in v1.16.56
func (vm *VM) GetHybridBridge() interface{}
GetHybridBridge returns the hybrid finality bridge for P/Q chain consensus This connects P-Chain BLS signatures with Q-Chain Ringtail for quantum finality Deprecated: Use GetQuasarBridge() for proper type safety
func (*VM) GetQuasarBridge ¶ added in v1.22.80
func (vm *VM) GetQuasarBridge() *QuasarBridge
GetQuasarBridge returns the Quasar hybrid consensus bridge This provides BLS + Ringtail dual threshold signatures for PQ finality
func (*VM) HealthCheck ¶
HealthCheck returns the health status of the VM
func (*VM) Initialize ¶
func (vm *VM) Initialize( ctx context.Context, chainCtx interface{}, db database.Database, genesisBytes []byte, upgradeBytes []byte, configBytes []byte, toEngine chan<- consensuscore.Message, fxs []*consensuscore.Fx, appSender warp.Sender, ) error
Initialize initializes the VM with the given context
func (*VM) ParseBlock ¶
ParseBlock parses a block from bytes
func (*VM) SetHybridBridge ¶ added in v1.16.56
func (vm *VM) SetHybridBridge(bridge interface{})
SetHybridBridge sets the hybrid finality bridge (called by chain manager) Deprecated: Bridge is now auto-initialized in VM.Initialize()
func (*VM) StampBlock ¶ added in v1.16.56
func (vm *VM) StampBlock(blockID interface{}, pChainHeight uint64, message []byte) (interface{}, error)
StampBlock implements QChainStamper interface for hybrid finality Uses Quasar BLS+Ringtail for dual post-quantum threshold signatures
func (*VM) VerifyStamp ¶ added in v1.16.56
VerifyStamp implements QChainStamper interface for quasar finality Supports both Quasar QuasarSignature and ML-DSA QuantumSignature
type VerifyQuantumSignatureArgs ¶ added in v1.16.56
type VerifyQuantumSignatureArgs struct {
Message string `json:"message"`
Signature json.RawMessage `json:"signature"`
}
VerifyQuantumSignatureArgs are the arguments for VerifyQuantumSignature
type VerifyQuantumSignatureReply ¶ added in v1.16.56
type VerifyQuantumSignatureReply struct {
Valid bool `json:"valid"`
Algorithm uint32 `json:"algorithm"`
}
VerifyQuantumSignatureReply is the reply for VerifyQuantumSignature