[go: up one dir, main page]

Implement LxrMiningSignature Type

Summary

Implement the core LxrMiningSignature type as defined in the specification.

Background

The LxrMiningSignature is a new signature type that requires proof-of-work to create, enabling mining-based participation in the Accumulate network.

Requirements

  • Define LxrMiningSignature structure in protocol/signatures.yml
  • Implement signature interface methods
  • Include mining account field for namespace isolation
  • Implement hash computation with LXRHash

Implementation Details

type LxrMiningSignature struct {
    // Mining proof fields
    MinerADI        *url.URL
    Nonce           uint64
    CandidateHash   [32]byte
    
    // Context fields
    MiningAccount   *url.URL  // App namespace
    TransactionData []byte
    BlockHash       [32]byte
    Timestamp       uint64
    
    // Configuration
    BaselineTarget  [32]byte
    TableSize       uint32
    
    // Standard signature fields
    PublicKey       []byte
    Signature       []byte
}

Acceptance Criteria

  • Signature type defined in YAML schema
  • Generated code includes new type
  • Interface methods implemented (Verify, Hash, Metadata, etc.)
  • Mining hash calculation includes MiningAccount for isolation
  • Unit tests for signature verification
  • Integration with existing signature validation

Dependencies

  • Depends on: #3666 (KeyPage Schema)

Related

  • Epic: &37
  • Specification: 32-lxr-mining.md