forked from pi-node/pi-node
-
Notifications
You must be signed in to change notification settings - Fork 22
Expand file tree
/
Copy pathCargo.toml
More file actions
185 lines (157 loc) · 5.06 KB
/
Cargo.toml
File metadata and controls
185 lines (157 loc) · 5.06 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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
[package]
name = "pi-supernode-v25" # ← v25 branding
version = "25.0.0-alpha.1" # ← v25 versioning
authors = ["KOSASIH <kosasihg88@gmail.com>"]
edition = "2021"
description = "Pi Network Supernode V25 - Quantum Consensus Edition"
license = "MIT OR Apache-2.0"
repository = "https://github.com/KOSASIH/pi-supernode"
keywords = ["blockchain", "p2p", "pi-network", "v25", "quantum", "supernode", "sharding"]
categories = ["cryptography::cryptocurrencies", "network-programming"]
# Metadata untuk crates.io
[package.metadata.docs.rs]
all-features = true
rust-version = "1.75"
# V25 CORE DEPENDENCIES - QUANTUM READY
[dependencies]
# Async Runtime - Production Stable
tokio = { version = "1.36", features = ["full", "tracing", "time"] }
async-trait = "0.1"
# HTTP & RPC - Axum V2
axum = "0.7"
tower = "0.4"
tower-http = { version = "0.5", features = ["cors", "trace", "fs", "compression"] }
hyper = { version = "1.0", features = ["full"] }
http = "1.0"
# Serialization - Production Fast
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_with = "3.6"
bincode = "1.3"
# Error Handling
thiserror = "1.0"
anyhow = "1.0"
eyre = "0.6"
# CLI - Enhanced
clap = { version = "4.5", features = ["derive", "env", "cargo"] }
clap_complete = "4.5"
# Logging & Observability
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "ansi"] }
tracing-appender = "0.2"
opentelemetry = { version = "0.21", default-features = false, features = ["trace"] }
opentelemetry-otlp = { version = "0.14", features = ["grpc-sys"] }
opentelemetry-semantic-conventions = "0.13"
# Database - Dual Postgres + SQLite
sqlx = {
version = "0.7",
features = ["runtime-tokio-rustls", "postgres", "sqlite", "uuid", "chrono", "migrate"]
}
sea-orm = { version = "0.12", features = ["sqlx-postgres", "runtime-tokio-rustls", "macros"] }
sea-orm-migration = "0.12"
bb8 = "0.8"
mobc = "0.8"
# V20 Crypto (BASE) + V25 QUANTUM CRYPTO
ed25519-dalek = { version = "2.0", features = ["serde"] }
sha3 = "0.10"
blake3 = "1.5"
zeroize = { version = "1.7", features = ["derive"] }
rand = { version = "0.8", features = ["getrandom"] }
hex = "0.4"
base64 = "0.22"
bs58 = "0.5"
bech32 = "0.10"
# 🔥 V25 QUANTUM CRYPTO (NEW!)
pqcrypto-kyber1024 = "0.2" # Kyber post-quantum KEM
pqcrypto-dilithium5 = "0.2" # Dilithium post-quantum signatures
pqcrypto-falcon1024 = "0.2" # Falcon (backup)
ark-groth16 = "0.5" # ZK-SNARKs
ark-ff = "0.4" # Finite fields
ark-bn254 = "0.4" # BN254 pairing
ark-serialize = "0.4"
# Networking - Full P2P V25
reqwest = { version = "0.12", features = ["json", "rustls-tls", "gzip"] }
futures = "0.3"
tokio-stream = "0.1"
tokio-util = "0.7"
async-stream = "0.3"
# P2P - libp2p V25 (SHARDED!)
libp2p = {
version = "0.53",
default-features = false,
features = [
"tcp", "quic", "dns", "websocket", "noise", "yamux", "mplex",
"relay", "kad", "identify", "ping", "request-response",
"gossipsub", "mdns", "kademlia"
]
}
# V25 AI VALIDATION (NEW!)
tch = "0.14" # PyTorch Rust bindings
candle-core = "0.3" # Alternative ML
candle-nn = "0.3"
ndarray = "0.15"
# Data Structures - Production
dashmap = "6.0"
lru = "0.12"
smallvec = "1.13"
hashbrown = "0.14"
indexmap = "2.1"
# Time & UUID
uuid = { version = "1.7", features = ["v4", "v5", "serde", "fast"] }
chrono = { version = "0.4", features = ["serde"] }
time = "0.3"
# Metrics & Prometheus
prometheus = "0.13"
metrics = "0.22"
metrics-exporter-prometheus = "0.12"
# JSON RPC V25
jsonrpsee = { version = "0.20", features = ["server", "macros"] }
# Bridge Dependencies
ethers = "2.0"
alloy = "0.1"
solana-sdk = "2.0"
# V25 FEATURES - MODULAR!
[features]
default = ["database-postgres", "quantum-crypto", "sharding"]
database-postgres = ["sea-orm/sqlx-postgres", "sqlx/postgres"]
database-sqlite = ["sea-orm/sqlx-sqlite", "sqlx/sqlite"]
p2p-quic = ["libp2p/quic"]
rpc-full = ["jsonrpsee/server"]
bridge-ethereum = ["ethers", "alloy"]
bridge-solana = ["solana-sdk"]
observability = ["opentelemetry", "opentelemetry-otlp"]
# 🔥 V25 NEW FEATURES
quantum-crypto = ["pqcrypto-kyber1024", "pqcrypto-dilithium5", "ark-groth16"]
sharding = [] # Internal sharding logic
ai-validator = ["tch", "candle-core", "candle-nn"]
zk-proofs = ["ark-groth16", "ark-bn254"]
# Multiple Binaries - V25 Enhanced
[[bin]]
name = "pi-supernode-v25"
path = "src/main.rs"
[[bin]]
name = "pi-keygen-v25"
path = "bin/pi-keygen.rs"
[[bin]]
name = "pi-wallet-v25"
path = "bin/pi-wallet.rs"
[[bin]]
name = "pi-bridge-v25"
path = "bin/pi-bridge.rs"
[[bin]]
name = "pi-shard-monitor" # ← V25 NEW!
path = "bin/pi-shard-monitor.rs"
# Dev Dependencies
[dev-dependencies]
tokio = { version = "1", features = ["full"] }
serial_test = "3"
testcontainers = "0.15"
mockall = "0.13"
proptest = "1.4"
criterion = { version = "0.5", features = ["html_reports"] }
[[bench]]
name = "v25_quantum_bench" # ← V25 benchmarks
harness = false
[[bench]]
name = "sharding_bench"
harness = false