validator

package
v0.2.0-alpha Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2025 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AIValidator

type AIValidator struct {
	// contains filtered or unexported fields
}

AIValidator integrates QMoE consensus into Fluentum validator nodes

func NewAIValidator

func NewAIValidator(config *AIValidatorConfig) (*AIValidator, error)

NewAIValidator creates a new AI-powered validator

func (*AIValidator) AddTransaction

func (v *AIValidator) AddTransaction(tx types.Tx) error

AddTransaction adds a transaction to the batch queue

func (*AIValidator) EstimateGasSavings

func (v *AIValidator) EstimateGasSavings(txs types.Txs) (float64, error)

EstimateGasSavings estimates gas savings for a batch of transactions

func (*AIValidator) GetAIMetrics

func (v *AIValidator) GetAIMetrics() map[string]float64

GetAIMetrics returns AI-specific metrics

func (*AIValidator) GetBatchQueueSize

func (v *AIValidator) GetBatchQueueSize() int

GetBatchQueueSize returns the current size of the batch queue

func (*AIValidator) GetConfig

func (v *AIValidator) GetConfig() *AIValidatorConfig

GetConfig returns the current configuration

func (*AIValidator) GetMetrics

func (v *AIValidator) GetMetrics() *ValidatorMetrics

GetMetrics returns current validator metrics

func (*AIValidator) GetVersionInfo

func (v *AIValidator) GetVersionInfo() map[string]string

GetVersionInfo returns version information

func (*AIValidator) IsInitialized

func (v *AIValidator) IsInitialized() bool

IsInitialized returns whether the validator is initialized

func (*AIValidator) PredictOptimalBatch

func (v *AIValidator) PredictOptimalBatch(txs types.Txs) (types.Txs, error)

PredictOptimalBatch predicts the optimal batch composition for given transactions

func (*AIValidator) ProcessBlock

func (v *AIValidator) ProcessBlock(block *types.Block) error

ProcessBlock processes a block using AI prediction and quantum signing

func (*AIValidator) ResetMetrics

func (v *AIValidator) ResetMetrics()

ResetMetrics resets all metrics to zero

func (*AIValidator) StartBatchProcessor

func (v *AIValidator) StartBatchProcessor(ctx context.Context)

StartBatchProcessor starts the batch processing goroutine

func (*AIValidator) UpdateConfig

func (v *AIValidator) UpdateConfig(config *AIValidatorConfig) error

UpdateConfig updates the validator configuration

func (*AIValidator) ValidateTransaction

func (v *AIValidator) ValidateTransaction(tx types.Tx) (bool, error)

ValidateTransaction validates a single transaction using AI

type AIValidatorConfig

type AIValidatorConfig struct {
	EnableAIPrediction   bool                   `json:"enable_ai_prediction"`
	EnableQuantumSigning bool                   `json:"enable_quantum_signing"`
	BatchSize            int                    `json:"batch_size"`
	MaxWaitTime          time.Duration          `json:"max_wait_time"`
	ConfidenceThreshold  float64                `json:"confidence_threshold"`
	GasSavingsThreshold  float64                `json:"gas_savings_threshold"`
	PluginPath           string                 `json:"plugin_path"`
	QuantumPluginPath    string                 `json:"quantum_plugin_path"`
	ModelConfig          map[string]interface{} `json:"model_config"`
}

AIValidatorConfig contains configuration for AI validator

func (*AIValidatorConfig) MinBatchSize

func (c *AIValidatorConfig) MinBatchSize() int

MinBatchSize returns the minimum batch size for processing

type Block

type Block struct {
	Height           int64     `json:"height"`
	Timestamp        time.Time `json:"timestamp"`
	Data             []byte    `json:"data"`
	ValidatorID      string    `json:"validator_id"`
	ValidatorPubKey  []byte    `json:"validator_pub_key"`
	Signature        []byte    `json:"signature"`
	PreviousHash     []byte    `json:"previous_hash"`
	Hash             []byte    `json:"hash"`
	QuantumSignature []byte    `json:"quantum_signature,omitempty"`
}

Block represents a blockchain block

type DefaultSigner

type DefaultSigner struct {
	// contains filtered or unexported fields
}

DefaultSigner provides fallback Ed25519 signing

func NewDefaultSigner

func NewDefaultSigner() (*DefaultSigner, error)

NewDefaultSigner creates a new Ed25519 signer

type HybridSignature

type HybridSignature struct {
	ClassicSignature []byte    `json:"classic_signature"`
	QuantumSignature []byte    `json:"quantum_signature"`
	Timestamp        time.Time `json:"timestamp"`
	Mode             string    `json:"mode"` // "dual", "classic", "quantum"
}

HybridSignature contains both classical and quantum signatures

type HybridSigner

type HybridSigner struct {
	// contains filtered or unexported fields
}

HybridSigner provides dual classical and quantum signing capabilities

func NewHybridSigner

func NewHybridSigner() (*HybridSigner, error)

NewHybridSigner creates a new hybrid signer

func (*HybridSigner) DisableQuantum

func (hs *HybridSigner) DisableQuantum()

DisableQuantum disables quantum signing

func (*HybridSigner) EnableQuantum

func (hs *HybridSigner) EnableQuantum()

EnableQuantum enables quantum signing

func (*HybridSigner) GetInfo

func (hs *HybridSigner) GetInfo() map[string]interface{}

GetInfo returns information about the hybrid signer

func (*HybridSigner) GetPerformanceMetrics

func (hs *HybridSigner) GetPerformanceMetrics() map[string]float64

GetPerformanceMetrics returns detailed performance metrics

func (*HybridSigner) GetStats

func (hs *HybridSigner) GetStats() *HybridSignerStats

GetStats returns the current statistics

func (*HybridSigner) IsQuantumEnabled

func (hs *HybridSigner) IsQuantumEnabled() bool

IsQuantumEnabled returns whether quantum signing is enabled

func (*HybridSigner) ResetStats

func (hs *HybridSigner) ResetStats()

ResetStats resets all statistics

func (*HybridSigner) Sign

func (hs *HybridSigner) Sign(privateKey []byte, message []byte) (*HybridSignature, error)

Sign creates a hybrid signature

func (*HybridSigner) SignAsync

func (hs *HybridSigner) SignAsync(ctx context.Context, privateKey []byte, message []byte) (*HybridSignature, error)

SignAsync creates a hybrid signature asynchronously

func (*HybridSigner) Verify

func (hs *HybridSigner) Verify(publicKey []byte, message []byte, signature *HybridSignature) (bool, error)

Verify verifies a hybrid signature

func (*HybridSigner) VerifyAsync

func (hs *HybridSigner) VerifyAsync(ctx context.Context, publicKey []byte, message []byte, signature *HybridSignature) (bool, error)

VerifyAsync verifies a hybrid signature asynchronously

type HybridSignerStats

type HybridSignerStats struct {
	ClassicSignCount   int64         `json:"classic_sign_count"`
	QuantumSignCount   int64         `json:"quantum_sign_count"`
	ClassicVerifyCount int64         `json:"classic_verify_count"`
	QuantumVerifyCount int64         `json:"quantum_verify_count"`
	TotalClassicTime   time.Duration `json:"total_classic_time"`
	TotalQuantumTime   time.Duration `json:"total_quantum_time"`
	LastReset          time.Time     `json:"last_reset"`
}

HybridSignerStats tracks performance metrics for hybrid signing

type TxAdapter

type TxAdapter struct {
	// contains filtered or unexported fields
}

TxAdapter adapts types.Tx to plugin.Transaction interface

func (TxAdapter) GetData

func (t TxAdapter) GetData() []byte

func (TxAdapter) GetHash

func (t TxAdapter) GetHash() []byte

func (TxAdapter) GetSize

func (t TxAdapter) GetSize() int

type Validator

type Validator struct {
	ID             string
	PublicKey      []byte
	PrivateKey     []byte
	SignerPlugin   plugin.SignerPlugin
	FallbackSigner *DefaultSigner
	UseQuantum     bool
	// contains filtered or unexported fields
}

Validator represents a validator node that can sign and verify blocks

func NewValidator

func NewValidator(id string, useQuantum bool) (*Validator, error)

NewValidator creates a new validator with quantum signing capability

func (*Validator) GetLastBlockInfo

func (v *Validator) GetLastBlockInfo() map[string]interface{}

GetLastBlockInfo returns information about the last signed block

func (*Validator) GetPublicKey

func (v *Validator) GetPublicKey() []byte

GetPublicKey returns the validator's public key

func (*Validator) GetPublicKeyHex

func (v *Validator) GetPublicKeyHex() string

GetPublicKeyHex returns the validator's public key as a hex string

func (*Validator) GetSignerInfo

func (v *Validator) GetSignerInfo() map[string]interface{}

GetSignerInfo returns information about the current signer

func (*Validator) ResetLastBlockInfo

func (v *Validator) ResetLastBlockInfo()

ResetLastBlockInfo resets the last block information

func (*Validator) SignBlock

func (v *Validator) SignBlock(block *Block) error

SignBlock signs a block using the appropriate signing algorithm

func (*Validator) SignBlockAsync

func (v *Validator) SignBlockAsync(ctx context.Context, block *Block) error

SignBlockAsync signs a block asynchronously

func (*Validator) SwitchToClassical

func (v *Validator) SwitchToClassical()

SwitchToClassical switches the validator to use classical signing

func (*Validator) SwitchToQuantum

func (v *Validator) SwitchToQuantum() error

SwitchToQuantum switches the validator to use quantum signing

func (*Validator) VerifyBlock

func (v *Validator) VerifyBlock(block *Block) (bool, error)

VerifyBlock verifies a block signature

func (*Validator) VerifyBlockAsync

func (v *Validator) VerifyBlockAsync(ctx context.Context, block *Block) (bool, error)

VerifyBlockAsync verifies a block signature asynchronously

type ValidatorMetrics

type ValidatorMetrics struct {
	BlocksProcessed       int64         `json:"blocks_processed"`
	TransactionsProcessed int64         `json:"transactions_processed"`
	AvgBlockTime          time.Duration `json:"avg_block_time"`
	TotalGasSaved         uint64        `json:"total_gas_saved"`
	AvgGasSavings         float64       `json:"avg_gas_savings"`
	PredictionAccuracy    float64       `json:"prediction_accuracy"`
	LastUpdate            time.Time     `json:"last_update"`

	// AI-specific metrics
	AIPredictions     int64         `json:"ai_predictions"`
	AvgPredictionTime time.Duration `json:"avg_prediction_time"`
	ModelConfidence   float64       `json:"model_confidence"`
	BatchEfficiency   float64       `json:"batch_efficiency"`
}

ValidatorMetrics tracks validator performance metrics

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL