open-standards/smart-byte/smart-byte-rs/Cargo.toml
Transaction Science c4d3a091f3 smart-byte: the cluster state machine, and its conformance vectors
smart-byte-state (new):
- the state and its hash;
- inputs;
- the frame transition;
- checkpoint-and-log persistence. Checkpoints are written atomically, and
  replay refuses a gap or a wrong hash.
- a deterministic demo workload.

smart-byte-lockstep: the cluster runs these state machines in place of the
rolling hash that stood in for the state.

smart-byte-keri-witness: exposes a controller's state and resumes a replay
from it, so the cluster extends a log one event at a time.

The CLI's `cluster simulate` runs real mints and transfers through the
supermajority commit.

smart-byte-conformance: state_vectors.json, 12 vectors. Each is a genesis
state and frames of inputs, with every input's result and every frame's
state and state hash. The founding frame uses kel-001 to kel-003 and
env-001's mint. Planted defects in the state vectors are caught on their
own vectors.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-01 06:19:03 -04:00

87 lines
2.8 KiB
TOML

[workspace]
resolver = "3"
members = [
"crates/smart-byte-core",
"crates/smart-byte-net",
"crates/smart-byte-lockstep",
"crates/smart-byte-state",
"crates/smart-byte",
"crates/smart-byte-vc",
"crates/smart-byte-did",
"crates/smart-byte-pq",
"crates/smart-byte-didcomm",
"crates/smart-byte-mdl",
"crates/smart-byte-bbs",
"crates/smart-byte-crdt",
"crates/smart-byte-keri-witness",
"crates/smart-byte-libp2p",
"crates/smart-byte-edv",
"crates/smart-byte-zk",
"crates/smart-byte-atproto",
"crates/smart-byte-nostr",
"crates/smart-byte-activitypub",
"crates/smart-byte-ilp",
"crates/smart-byte-tendermint",
"crates/smart-byte-acdc",
"crates/smart-byte-oidc4vc",
"crates/smart-byte-conformance",
]
[workspace.package]
version = "0.1.0"
edition = "2024"
rust-version = "1.97"
license = "Apache-2.0"
repository = "https://github.com/Transaction-Science/open-standards"
authors = ["Smart Byte Contributors"]
description = "Smart Byte substrate — Apache-2.0 Rust reference implementation."
[workspace.dependencies]
# Core crypto + serialization
blake3 = "1"
ed25519-dalek = { version = "2", features = ["rand_core"] }
serde = { version = "1", features = ["derive"] }
serde_bytes = "0.11"
serde_cbor = "0.11"
chrono = { version = "0.4", default-features = false, features = ["clock", "serde", "std"] }
thiserror = "2"
uuid = { version = "1", features = ["v4", "serde"] }
data-encoding = "2"
# rand is pinned to 0.8, NOT "latest". rand 0.10 dropped `rand::RngCore` and
# `rand::rngs::OsRng` (rand_core 0.10 renamed them Rng/TryRng), and more importantly
# it ships rand_core 0.10 -- while every signature crate here (ed25519-dalek 2.x,
# bls12_381, k256/p256) is built on rand_core 0.6, so a 0.10 RNG is not even the
# right TYPE to hand to `SigningKey::generate`. rand 0.8 re-exports rand_core 0.6,
# which is exactly what those crates want. The RNG generation is pinned by the
# crypto ecosystem, not by recency.
rand = "0.8"
# Networking
iroh = "1.0.0-rc.0"
iroh-blobs = "0.101"
# Runtime
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "io-util", "net"] }
anyhow = "1"
futures = "0.3"
# Workspace internals
smart-byte-core = { path = "crates/smart-byte-core" }
smart-byte-net = { path = "crates/smart-byte-net" }
smart-byte-lockstep = { path = "crates/smart-byte-lockstep" }
smart-byte-state = { path = "crates/smart-byte-state" }
smart-byte-keri-witness = { path = "crates/smart-byte-keri-witness" }
smart-byte-vc = { path = "crates/smart-byte-vc" }
smart-byte-pq = { path = "crates/smart-byte-pq" }
smart-byte-crdt = { path = "crates/smart-byte-crdt" }
smart-byte-bbs = { path = "crates/smart-byte-bbs" }
# CLI
clap = { version = "4", features = ["derive"] }
[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
panic = "abort"
strip = "symbols"