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 Factory
- type GenerateRingtailKeyArgs
- type GenerateRingtailKeyReply
- type GetBlockArgs
- type GetBlockReply
- type GetConfigArgs
- type GetConfigReply
- type GetHealthArgs
- type GetHealthReply
- type GetPendingTransactionsArgs
- type GetPendingTransactionsReply
- 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) (enginecore.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) (enginecore.Block, error)
- func (vm *VM) GetEngine() consensusdag.Engine
- 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) (enginecore.Block, error)
- func (vm *VM) SetState(ctx context.Context, state consensusinterfaces.State) error
- func (vm *VM) Shutdown(ctx context.Context) 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 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 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) 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<- common.Message, fxs []*enginecore.Fx, appSender enginecore.AppSender, ) error
Initialize initializes the VM with the given context
func (*VM) ParseBlock ¶
ParseBlock parses a block from bytes
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