Skip to content

A proof-of-history (PoH) implementation using Digests trait (allowing for multiple hash functions) while maintaining easy to use API and advanced features.

License

Notifications You must be signed in to change notification settings

LithiumSource/PoH-yugen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PoH-yugen (Proof-of-History Implementation)

Author: @silene0259

Date: 2024-03-23

Description

Proof-of-History offers a realistic way of measuring time using hash functions and ticks (time intervals). PoH-yugen features advanced features like custom configuration including:

  • Interval Choosing (Ticks)
  • Max Entries (Number of Ticks Per Slot)
  • Generic Hash Functions (any that use the digest trait)
  • Appending Data Per Tick
  • Seeding
  • Other Advanced Features

Usage

use poh_yugen::{PoHConfig,PoHUsage,InitialSeed,TickEntryType};
use sha2::Sha256;

fn main() {
    let config = PoHConfig::new(Sha256::new(), 32, 100, Some(1000), true, true, TickEntryType::Data);
    let seed = InitialSeed([0; 64]);
    let mut poh = PoHUsage::new(config, seed, Some(vec![1, 2, 3]), vec![]);
    println!("{:?}", poh.state);
    println!("Initializing PoH...");
    // Initialize the PoH process
    poh.init();
}

About

A proof-of-history (PoH) implementation using Digests trait (allowing for multiple hash functions) while maintaining easy to use API and advanced features.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages