Skip to content

feat: add the test_vlc_net submodule to demos #19

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Nov 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,40 @@ members = [
".",
"crates/accumulator",
"crates/vlc",
"crates/hlc",
"crates/cops",
"crates/vrf",
"crates/crypto",
"crates/enclaves",
"crates/gossip",
"crates/types",
"demos/test_conflict",
"demos/coll_tx",
"demos/vlc_dag",
"demos/tee_vlc",
"demos/test_vlc_net",
]

[profile.dev]
opt-level = 1
debug = true

[profile.dev.package."*"]
opt-level = 3

[profile.release]
# debug = true
opt-level = "z"
debug = true
lto = true
strip = true
incremental = true

[profile.bench]
debug = true

[profile.artifact]
inherits = "release"

[dependencies]
anyhow = { version = "1.0.75", features = ["backtrace"] }
async-trait = "0.1.74"
Expand Down
12 changes: 12 additions & 0 deletions crates/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ The crates folder of Chronos includes core functional code crates and utility li
- 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.

## [hlc](./hlc/)

- 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](http://www.cse.buffalo.edu/tech-reports/2014-04.pdf).

## [accumulator](./accumulator/)

- A simple accumulator application.
Expand All @@ -25,6 +32,11 @@ The crates folder of Chronos includes core functional code crates and utility li
- This module provides some common utilities of TEE (Trusted Execution Environment) Enclaves.
- For examples: AWS nitro enclave, Mircosoft Azure, Intel SGX, etc.

## [gossip](./gossip/)

- 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.

## [crypto](./crypto/)

- Some common crypto utilities, signatures, verify, and hash functions for elliptic curve.
Expand Down
38 changes: 38 additions & 0 deletions crates/gossip/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
[package]
name = "gossip"
version = "0.1.0"
edition = "2021"

[dependencies]
crypto = { path = "../crypto" }
color-eyre = "0.6.2"
futures = "0.3"
ahash = "0.8"
anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] }
libp2p = { version = "0.54.1", features = [
"gossipsub",
"mdns",
"autonat",
'identify',
"noise",
"kad",
"macros",
"ping",
"tcp",
"tokio",
'upnp',
"yamux",
] }
multiaddr = "0.18"
libp2p-swarm-test = "0.4"
tokio = { version = "1.25.0", features = [
"macros",
"rt-multi-thread",
"signal",
] }
tracing = "0.1"
sha2 = "0.10.8"

[features]
mdns = []
Loading
Loading