Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HeliosAlgorithm ¶
type HeliosAlgorithm struct {
// contains filtered or unexported fields
}
HeliosAlgorithm implements the three-stage Helios proof of work algorithm
func NewHeliosAlgorithm ¶
func NewHeliosAlgorithm(config *HeliosConfig) *HeliosAlgorithm
NewHeliosAlgorithm creates a new Helios algorithm instance
func (*HeliosAlgorithm) Mine ¶
func (h *HeliosAlgorithm) Mine(blockHeader []byte, targetDifficulty *big.Int) (*HeliosProof, error)
Mine attempts to find a valid proof of work using the Helios algorithm
func (*HeliosAlgorithm) ValidateProof ¶
func (h *HeliosAlgorithm) ValidateProof(proof *HeliosProof, blockHeader []byte, targetDifficulty *big.Int) error
ValidateProof validates a Helios proof
type HeliosConfig ¶
type HeliosConfig struct {
// Stage weights (must sum to 100)
MemoryWeight int `json:"memory_weight"` // 40%
TimeLockWeight int `json:"timelock_weight"` // 30%
CryptoWeight int `json:"crypto_weight"` // 30%
// Memory phase parameters
MemoryBaseSize int `json:"memory_base_size"` // 64MB
MemoryScaleFactor float64 `json:"memory_scale_factor"` // 1.0
MemoryIterations int `json:"memory_iterations"` // 3
// Time-lock parameters
TimeLockBaseDuration time.Duration `json:"timelock_base_duration"` // 50ms
TimeLockScaleFactor float64 `json:"timelock_scale_factor"` // 1.0
TimeLockIterations int `json:"timelock_iterations"` // 1000
// Cryptographic parameters
CryptoKeySize int `json:"crypto_key_size"` // 32 bytes
CryptoBlockSize int `json:"crypto_block_size"` // 16 bytes
CryptoIterations int `json:"crypto_iterations"` // 10000
// Energy tracking
EnableEnergyTracking bool `json:"enable_energy_tracking"` // false initially
}
HeliosConfig holds configuration for the Helios algorithm
func DefaultHeliosConfig ¶
func DefaultHeliosConfig() *HeliosConfig
DefaultHeliosConfig returns the default configuration for Helios Optimized for 20-second block time
func TestHeliosConfig ¶
func TestHeliosConfig() *HeliosConfig
TestHeliosConfig returns a configuration for fast mining in tests
type HeliosProof ¶
type HeliosProof struct {
Nonce uint64 `json:"nonce"`
Timestamp time.Time `json:"timestamp"`
Stage1Result []byte `json:"stage1_result"` // Memory phase result
Stage2Result []byte `json:"stage2_result"` // Time-lock phase result
Stage3Result []byte `json:"stage3_result"` // Cryptographic phase result
FinalHash string `json:"final_hash"`
Difficulty *big.Int `json:"difficulty"`
EnergyUsed int64 `json:"energy_used"` // CPU cycles used
}
HeliosProof represents a complete proof of work for the Helios algorithm
Click to show internal directories.
Click to hide internal directories.