Documentation
¶
Index ¶
- Variables
- func NewAttestationHandler(vm *VM) http.Handler
- func NewOracleHandler(vm *VM) http.Handler
- type Attestation
- type AttestationConfig
- type AttestationDB
- func (adb *AttestationDB) AddPendingAttestation(att *Attestation) error
- func (adb *AttestationDB) Close()
- func (adb *AttestationDB) GetAttestation(attID ids.ID) (*Attestation, error)
- func (adb *AttestationDB) GetAttestationCount() uint64
- func (adb *AttestationDB) GetPendingAttestations(limit int) ([]*Attestation, error)
- func (adb *AttestationDB) MarkAttestationAccepted(attID ids.ID) error
- type AttestationHandler
- type AttestationListResponse
- type AttestationRequest
- type AttestationResult
- type AttestationSubmitRequest
- type AttestationSubmitResponse
- type AttestationType
- type Block
- func (b *Block) Accept() error
- func (b *Block) BlockHeight() uint64
- func (b *Block) BlockTimestamp() time.Time
- func (b *Block) Bytes() ([]byte, error)
- func (b *Block) ID() ids.ID
- func (b *Block) Parent() ids.ID
- func (b *Block) Reject() error
- func (b *Block) Status() choices.Status
- func (b *Block) Verify() error
- type GPUProofInfo
- type Genesis
- type Health
- type OracleHandler
- type OracleInfo
- type OracleListResponse
- type OracleRegisterResponse
- type OracleRegistry
- func (or *OracleRegistry) Close()
- func (or *OracleRegistry) GetAllOracles() []*OracleInfo
- func (or *OracleRegistry) GetOracle(oracleID string) (*OracleInfo, error)
- func (or *OracleRegistry) GetOracleCount() int
- func (or *OracleRegistry) GetOraclesByFeed(feedType string) ([]*OracleInfo, error)
- func (or *OracleRegistry) RegisterOracle(oracle *OracleInfo) error
- func (or *OracleRegistry) RemoveOracle(oracleID string) error
- func (or *OracleRegistry) UpdateOracleReputation(oracleID string, delta int64) error
- type SignatureVerifier
- func (sv *SignatureVerifier) VerifyBLSAggregateSignature(message []byte, aggregateSignature []byte, publicKeys [][]byte) error
- func (sv *SignatureVerifier) VerifyTEESignature(quote []byte, signature []byte, trustedKeys []string) error
- func (sv *SignatureVerifier) VerifyThresholdSignature(message []byte, signatures [][]byte, signerIDs []string) error
- type TEEInfo
- type VM
- func (vm *VM) AppGossip(ctx context.Context, nodeID ids.NodeID, msg []byte) error
- func (vm *VM) AppRequest(ctx context.Context, nodeID ids.NodeID, requestID uint32, deadline time.Time, ...) error
- func (vm *VM) AppRequestFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error
- func (vm *VM) AppResponse(ctx context.Context, nodeID ids.NodeID, requestID uint32, response []byte) error
- func (vm *VM) BuildBlock(ctx context.Context) (snowman.Block, error)
- func (vm *VM) Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error
- func (vm *VM) CreateHandlers(context.Context) (map[string]http.Handler, error)
- func (vm *VM) CrossChainAppRequest(ctx context.Context, chainID ids.ID, requestID uint32, deadline time.Time, ...) error
- func (vm *VM) CrossChainAppRequestFailed(ctx context.Context, chainID ids.ID, requestID uint32) error
- func (vm *VM) CrossChainAppResponse(ctx context.Context, chainID ids.ID, requestID uint32, response []byte) error
- func (vm *VM) Disconnected(ctx context.Context, nodeID ids.NodeID) error
- func (vm *VM) GetBlock(ctx context.Context, blkID ids.ID) (snowman.Block, error)
- func (vm *VM) HealthCheck(ctx context.Context) (interface{}, error)
- func (vm *VM) Initialize(ctx context.Context, chainCtx *snow.Context, db database.Database, ...) error
- func (vm *VM) LastAccepted(ctx context.Context) (ids.ID, error)
- func (vm *VM) ParseBlock(ctx context.Context, blockBytes []byte) (snowman.Block, error)
- func (vm *VM) SetPreference(ctx context.Context, blkID ids.ID) error
- func (vm *VM) SetState(ctx context.Context, state snow.State) error
- func (vm *VM) Shutdown(ctx context.Context) error
- func (vm *VM) SubmitAttestation(att *Attestation) error
- func (vm *VM) Version(ctx context.Context) (string, error)
Constants ¶
This section is empty.
Variables ¶
var (
Version = &version.Semantic{
Major: 1,
Minor: 0,
Patch: 0,
}
)
Functions ¶
func NewAttestationHandler ¶
NewAttestationHandler creates a new attestation handler
func NewOracleHandler ¶
NewOracleHandler creates a new oracle handler
Types ¶
type Attestation ¶
type Attestation struct {
ID ids.ID `json:"id"`
Type AttestationType `json:"type"`
SourceID string `json:"sourceId"` // Oracle ID, TEE ID, etc.
Data []byte `json:"data"` // The attested data
Timestamp int64 `json:"timestamp"`
Signatures [][]byte `json:"signatures"` // Threshold signatures
SignerIDs []string `json:"signerIds"` // IDs of signers
Proof []byte `json:"proof"` // ZK proof or TEE quote
Metadata []byte `json:"metadata"` // Additional metadata
// Aggregated signature support
AggregatedSignature *aggregated.AggregatedSignature `json:"aggregatedSignature,omitempty"`
}
Attestation represents a signed attestation
func (*Attestation) ComputeID ¶
func (a *Attestation) ComputeID() ids.ID
ComputeID computes the ID of an attestation
type AttestationConfig ¶
type AttestationConfig struct {
// Threshold signature configuration
SignatureThreshold int `json:"signatureThreshold"`
MaxSigners int `json:"maxSigners"`
// Oracle configuration
OracleRegistryEnabled bool `json:"oracleRegistryEnabled"`
// TEE configuration
TEEVerificationEnabled bool `json:"teeVerificationEnabled"`
TrustedEnclaveKeys []string `json:"trustedEnclaveKeys"`
// GPU proof configuration
GPUProofVerificationEnabled bool `json:"gpuProofVerificationEnabled"`
// Aggregated signature configuration
AggregatedSignatureConfig *aggregated.SignatureConfig `json:"aggregatedSignatureConfig,omitempty"`
}
AttestationConfig contains VM configuration
type AttestationDB ¶
type AttestationDB struct {
// contains filtered or unexported fields
}
AttestationDB manages attestation storage
func NewAttestationDB ¶
NewAttestationDB creates a new attestation database
func (*AttestationDB) AddPendingAttestation ¶
func (adb *AttestationDB) AddPendingAttestation(att *Attestation) error
AddPendingAttestation adds an attestation to the pending pool
func (*AttestationDB) Close ¶
func (adb *AttestationDB) Close()
Close closes the attestation database
func (*AttestationDB) GetAttestation ¶
func (adb *AttestationDB) GetAttestation(attID ids.ID) (*Attestation, error)
GetAttestation retrieves an attestation by ID
func (*AttestationDB) GetAttestationCount ¶
func (adb *AttestationDB) GetAttestationCount() uint64
GetAttestationCount returns the total number of accepted attestations
func (*AttestationDB) GetPendingAttestations ¶
func (adb *AttestationDB) GetPendingAttestations(limit int) ([]*Attestation, error)
GetPendingAttestations returns pending attestations up to limit
func (*AttestationDB) MarkAttestationAccepted ¶
func (adb *AttestationDB) MarkAttestationAccepted(attID ids.ID) error
MarkAttestationAccepted moves an attestation from pending to accepted
type AttestationHandler ¶
type AttestationHandler struct {
// contains filtered or unexported fields
}
AttestationHandler handles attestation-related HTTP requests
type AttestationListResponse ¶
type AttestationListResponse struct {
Attestations []*Attestation `json:"attestations"`
Count int `json:"count"`
}
type AttestationRequest ¶
type AttestationRequest struct {
RequestID ids.ID `json:"requestId"`
Type AttestationType `json:"type"`
DataToSign []byte `json:"dataToSign"`
RequiredSigs int `json:"requiredSigs"`
Deadline time.Time `json:"deadline"`
}
AttestationRequest represents a request for attestation
type AttestationResult ¶
type AttestationResult struct {
RequestID ids.ID `json:"requestId"`
Attestation *Attestation `json:"attestation"`
Success bool `json:"success"`
Error string `json:"error,omitempty"`
}
AttestationResult represents the result of an attestation
type AttestationType ¶
type AttestationType uint8
AttestationType represents the type of attestation
const ( AttestationTypeOracle AttestationType = iota AttestationTypeTEE AttestationTypeGPU AttestationTypeCustom )
type Block ¶
type Block struct {
ParentID ids.ID `json:"parentId"`
Height uint64 `json:"height"`
Timestamp int64 `json:"timestamp"`
Attestations []*Attestation `json:"attestations"`
// Cached values
ID_ ids.ID
// contains filtered or unexported fields
}
Block represents a block in the attestation chain
func (*Block) BlockTimestamp ¶
Timestamp returns the block timestamp
type GPUProofInfo ¶
type GPUProofInfo struct {
ID string `json:"id"`
ComputeType string `json:"computeType"` // FFT, ML inference, etc.
ProofSystem string `json:"proofSystem"` // Groth16, PLONK, etc.
VerifyingKey []byte `json:"verifyingKey"`
CircuitHash []byte `json:"circuitHash"`
}
GPUProofInfo represents GPU computation proof info
type Genesis ¶
type Genesis struct {
Timestamp int64 `json:"timestamp"`
InitialOracles []*OracleInfo `json:"initialOracles,omitempty"`
InitialAttestations []*Attestation `json:"initialAttestations,omitempty"`
}
Genesis represents genesis data
func ParseGenesis ¶
ParseGenesis parses genesis bytes
type Health ¶
type Health struct {
DatabaseHealthy bool `json:"databaseHealthy"`
AttestationCount uint64 `json:"attestationCount"`
LastBlockHeight uint64 `json:"lastBlockHeight"`
PendingBlockCount int `json:"pendingBlockCount"`
RegisteredOracles int `json:"registeredOracles,omitempty"`
}
Health represents VM health status
type OracleHandler ¶
type OracleHandler struct {
// contains filtered or unexported fields
}
OracleHandler handles oracle-related HTTP requests
type OracleInfo ¶
type OracleInfo struct {
ID string `json:"id"`
Name string `json:"name"`
PublicKey []byte `json:"publicKey"`
Endpoint string `json:"endpoint"`
Feeds []string `json:"feeds"` // Types of data this oracle provides
Reputation uint64 `json:"reputation"`
JoinedAt int64 `json:"joinedAt"`
}
OracleInfo represents oracle information
type OracleListResponse ¶
type OracleListResponse struct {
Oracles []*OracleInfo `json:"oracles"`
Count int `json:"count"`
}
type OracleRegisterResponse ¶
type OracleRegistry ¶
type OracleRegistry struct {
// contains filtered or unexported fields
}
OracleRegistry manages registered oracles
func NewOracleRegistry ¶
NewOracleRegistry creates a new oracle registry
func (*OracleRegistry) GetAllOracles ¶
func (or *OracleRegistry) GetAllOracles() []*OracleInfo
GetAllOracles returns all registered oracles
func (*OracleRegistry) GetOracle ¶
func (or *OracleRegistry) GetOracle(oracleID string) (*OracleInfo, error)
GetOracle retrieves an oracle by ID
func (*OracleRegistry) GetOracleCount ¶
func (or *OracleRegistry) GetOracleCount() int
GetOracleCount returns the total number of registered oracles
func (*OracleRegistry) GetOraclesByFeed ¶
func (or *OracleRegistry) GetOraclesByFeed(feedType string) ([]*OracleInfo, error)
GetOraclesByFeed returns oracles that provide a specific feed type
func (*OracleRegistry) RegisterOracle ¶
func (or *OracleRegistry) RegisterOracle(oracle *OracleInfo) error
RegisterOracle registers a new oracle
func (*OracleRegistry) RemoveOracle ¶
func (or *OracleRegistry) RemoveOracle(oracleID string) error
RemoveOracle removes an oracle from the registry
func (*OracleRegistry) UpdateOracleReputation ¶
func (or *OracleRegistry) UpdateOracleReputation(oracleID string, delta int64) error
UpdateOracleReputation updates an oracle's reputation score
type SignatureVerifier ¶
type SignatureVerifier struct {
// contains filtered or unexported fields
}
SignatureVerifier verifies threshold signatures
func NewSignatureVerifier ¶
func NewSignatureVerifier(threshold int, log logging.Logger) *SignatureVerifier
NewSignatureVerifier creates a new signature verifier
func (*SignatureVerifier) VerifyBLSAggregateSignature ¶
func (sv *SignatureVerifier) VerifyBLSAggregateSignature( message []byte, aggregateSignature []byte, publicKeys [][]byte, ) error
VerifyBLSAggregateSignature verifies BLS aggregate signatures
func (*SignatureVerifier) VerifyTEESignature ¶
func (sv *SignatureVerifier) VerifyTEESignature( quote []byte, signature []byte, trustedKeys []string, ) error
VerifyTEESignature verifies TEE attestation signatures
func (*SignatureVerifier) VerifyThresholdSignature ¶
func (sv *SignatureVerifier) VerifyThresholdSignature( message []byte, signatures [][]byte, signerIDs []string, ) error
VerifyThresholdSignature verifies threshold ECDSA signatures (CGGMP21 style)
type TEEInfo ¶
type TEEInfo struct {
ID string `json:"id"`
EnclaveID string `json:"enclaveId"`
MeasurementHash []byte `json:"measurementHash"`
PublicKey []byte `json:"publicKey"`
Platform string `json:"platform"` // SGX, TrustZone, etc.
Version string `json:"version"`
}
TEEInfo represents TEE information
type VM ¶
type VM struct {
// contains filtered or unexported fields
}
VM implements the Attestation Chain VM
func (*VM) AppRequest ¶
func (*VM) AppRequestFailed ¶
func (*VM) AppResponse ¶
func (*VM) BuildBlock ¶
BuildBlock builds a new block
func (*VM) CreateHandlers ¶
CreateHandlers returns the VM handlers
func (*VM) CrossChainAppRequest ¶
func (*VM) CrossChainAppRequestFailed ¶
func (*VM) CrossChainAppResponse ¶
func (*VM) HealthCheck ¶
HealthCheck performs a health check
func (*VM) Initialize ¶
func (vm *VM) Initialize( ctx context.Context, chainCtx *snow.Context, db database.Database, genesisBytes []byte, upgradeBytes []byte, configBytes []byte, toEngine chan<- common.Message, fxs []*vms.Fx, appSender common.AppSender, ) error
Initialize initializes the VM
func (*VM) ParseBlock ¶
ParseBlock parses a block from bytes
func (*VM) SetPreference ¶
Additional interface implementations
func (*VM) SubmitAttestation ¶
func (vm *VM) SubmitAttestation(att *Attestation) error
SubmitAttestation submits a new attestation