Skip to content

Latest commit

 

History

History

crates

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Core Functional Crates

The crates folder of Chronos includes core functional code crates and utility libraries, etc.

  • This verifiable logical clock crate implements a verifiable logical clock construct.
  • The clock can be used in a peer-to-peer network to order events.
  • Any node in the network can verify the correctness of the clock.
  • This hybrid logical clock crate implements a hybrid logical clock (HLC) construct designed to combine physical and logical timestamps.
  • The clock can be used in distributed systems to efficiently order events while minimizing the reliance on synchronized physical clocks.
  • Each timestamp consists of a wall-clock time and a logical component, allowing for easy comparison and conflict resolution.
  • This crate is an implementation of the Hybrid Logical Clock.
  • This Hybrid Vector Logical Clock (HVLC) crate implements a hybrid vector clock structure that combines physical timestamps with vector clock properties.
  • HVLC uses a BTreeMap to store logical clock values for multiple nodes while maintaining a physical timestamp, enabling efficient tracking of causality and concurrent events in distributed systems.
  • Each clock instance contains:
    • A mapping table (inner) that records logical clock values for each node ID
    • A physical timestamp used to provide total ordering when logical clock comparison is insufficient
  • The implementation provides core functionalities like event ordering, clock merging, and base calculation, suitable for scenarios requiring distributed causality tracking.
  • Compared to regular vector clocks, HVLC offers better total ordering support through physical timestamps while maintaining the causal consistency properties of vector clocks.
  • It can be used to as the CRDTs(Conflict-free Replicated Data Type) algorithm in distributed scenarios for providing total ordering.
  • A simple accumulator application.
  • Each accumulator node maintains a set of strings. Upon receiving a string from a client, the node adds the string to its state, and broadcast the new state to other nodes in the network.
  • All nodes eventually converge to the same state, by merging received states into their own states.
  • A causally consistent data store inspired by COPS.
  • The data store maintains a set of key-value pairs.
  • It provides causal consistency to clients.
  • This module provides some common utilities of TEE (Trusted Execution Environment) Enclaves.
  • For examples: AWS nitro enclave, Mircosoft Azure, Intel SGX, etc.
  • This module provides the Gossip network toolkit for customizing a specified parameter.
  • It implements a basic gossip network using libp2p. It currently supports discovery via mdns and bootnodes.
  • Some common crypto utilities, signatures, verify, and hash functions for elliptic curve.
  • This module contains implementations of a verifiable random function, currently only ECVRF.
  • VRFs can be used in the consensus protocol for leader election.