-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathCargo.toml
More file actions
155 lines (128 loc) · 4.62 KB
/
Copy pathCargo.toml
File metadata and controls
155 lines (128 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
[package]
name = "quanta"
version = "3.2.15-alpha"
edition = "2021"
description = "QUANTA - Quantum-resistant blockchain with Falcon signatures"
[lib]
name = "quanta"
path = "src/lib.rs"
[[bin]]
name = "quanta"
path = "src/main.rs"
[[bin]]
name = "gen_faucet_wallets"
path = "src/bin/gen_faucet_wallets.rs"
[[bin]]
name = "quanta-benchmark"
path = "src/bin/benchmark.rs"
[[bin]]
name = "bridge_indexer"
path = "src/bin/bridge_indexer.rs"
[[bin]]
name = "get_testnet_hash"
path = "src/bin/get_testnet_hash.rs"
[dependencies]
# Post-Quantum Cryptography - Falcon signatures
# pqcrypto-falcon: used ONLY for key generation (keypair()). Signing and
# verification now use falcon-rust exclusively so all paths produce the
# canonical blob format [raw_sig || hash] that verify_signature_strict expects.
# PINNED: Exact version required for deterministic key generation across nodes.
pqcrypto-falcon = "=0.3.0"
pqcrypto-traits = "0.3"
# falcon-rust: pure-Rust Falcon-512 — signing, verification, and WASM wallet.
# All signing paths now use this library to guarantee byte-identical output
# with the browser WASM wallet. Cross-library public keys are compatible.
falcon-rust = "0.1"
# [NEW] Quanta 2.0 Consensus: AlephBFT + Falcon-512
# aleph-bft: Asynchronous BFT consensus engine (pure Rust).
aleph-bft = "0.45"
pqcrypto-dilithium = "0.3"
# SHA3 hashing (quantum-resistant)
sha3 = "0.10"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
# Database persistence
sled = "0.34"
# Post-Quantum Encryption for wallets (Kyber KEM)
pqcrypto-kyber = "0.8"
chacha20poly1305 = "0.10"
argon2 = "0.5"
# Networking
tokio = { version = "1.35", features = ["full"] }
axum = "0.7"
tower = "0.4"
tower-http = { version = "0.5", features = ["cors"] }
bincode = "1.3" # Binary serialization for P2P messages
futures = "0.3"
async-trait = "0.1"
uuid = { version = "1.6", features = ["v4"] }
reqwest = { version = "0.11", default-features = false, features = [
"json",
"rustls-tls",
] } # For RPC client (rustls — no OpenSSL required)
# WebSocket
axum-extra = { version = "0.9", features = ["typed-header"] }
tokio-tungstenite = "0.21"
# Thread safety
parking_lot = "0.12"
tokio-util = { version = "0.7", features = ["compat"] } # For CancellationToken and futures::io compat
once_cell = "1.19" # For lazy static initialization
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Utilities
hex = "0.4"
chrono = "0.4"
zeroize = { version = "1.7", features = ["derive"] }
rand = "0.8"
thiserror = "1.0"
# PERFORMANCE OPTIMIZATIONS (POST-QUANTUM OPTIMIZATIONS)
rayon = "1.8" # Parallel signature verification (3s → 0.5s validation)
zstd = "0.13" # Block compression (2 MB → 0.5 MB network transfer)
lru = "0.12" # Signature verification cache (skip re-verification)
bloomfilter = "1.0" # O(1) mempool duplicate detection (PQC: avoids iterating large txs)
num_cpus = "1.16" # Tuned rayon thread pool (matches physical cores for PQC verification)
# CLI
clap = { version = "4.4", features = ["derive"] }
rpassword = "7.3"
# Configuration
config = "0.14"
toml = "0.8"
# TLS/Security — PQC Transport Encryption
# CHANGED v3.1.0-alpha (2026-08-20): Upgraded to rustls 0.23 with aws-lc-rs backend
# which provides X25519MLKEM768 hybrid PQC key exchange (RFC 10024).
# This is what Cloudflare, Chrome, and Firefox use in production.
# aws-lc-rs requires cmake at build time (added to Dockerfile).
tokio-rustls = "0.26"
rustls = { version = "0.23", features = ["prefer-post-quantum"] }
rustls-pemfile = "2.0"
# rcgen: self-signed certificate generation for P2P TLS identity
# Each node generates an ephemeral cert at startup. The cert is only
# used to establish an encrypted channel; the REAL identity verification
# is done by our Falcon-512 handshake above the TLS layer.
rcgen = "0.13"
# HD Wallet (BIP32/39)
bip39 = "2.0"
hmac = "0.12"
dashmap = "6.1.0"
tower_governor = "0.8.0"
# System info for benchmark reports
sysinfo = "0.30"
codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive"] }
libp2p = { version = "0.56.0", features = ["tokio", "tcp", "quic", "gossipsub", "kad", "macros", "tls", "yamux", "request-response"] }
futures-rustls = "0.26.0"
libp2p-request-response = "0.29.0"
# For tests
[dev-dependencies]
tempfile = "3.8"
tokio-test = "0.4"
[profile.release]
opt-level = 3
lto = true
# Single codegen unit ensures deterministic binary output across identical builds.
codegen-units = 1
# Disable incremental compilation — required for byte-for-byte reproducible
# binaries. Incremental caches are machine-specific and must never be used
# in consensus-node release builds.
incremental = false