-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathCargo.toml
More file actions
118 lines (99 loc) · 3.33 KB
/
Cargo.toml
File metadata and controls
118 lines (99 loc) · 3.33 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
[workspace]
resolver = "2"
members = [
"crates/core",
"crates/storage",
"crates/distributed-storage",
"crates/challenge-sdk",
"crates/challenge-registry",
"crates/epoch",
"crates/bittensor-integration",
"crates/subnet-manager",
"crates/rpc-server",
"crates/p2p-consensus",
"crates/wasm-runtime-interface",
"crates/challenge-sdk-wasm",
"bins/validator-node",
"bins/utils",
"bins/platform-cli",
"bins/platform-sudo",
"tests",
]
# Note: Challenges are in separate repositories and import platform-challenge-sdk as a git dependency
# Note: WASM runtime removed - updates via git, version checked at handshake
# Note: P2P-only architecture - no centralized platform-server
# Challenge crates can be added here or as optional path/git dependencies
# Example:
# "challenges/example-challenge",
[workspace.package]
version = "0.1.0"
edition = "2021"
authors = ["Platform Network"]
license = "Apache-2.0"
[workspace.dependencies]
# Bittensor (vendored with insecure-URL fix: ws:// support + auto-reconnect)
bittensor-rs = { path = "vendor/bittensor-rs" }
# Async runtime
tokio = { version = "1.40", features = ["full", "sync", "macros", "rt-multi-thread"] }
futures = "0.3"
async-trait = "0.1"
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = "1.3"
serde_yaml = "0.9"
# Cryptography
ed25519-dalek = { version = "2.1", features = ["rand_core", "serde"] }
sha2 = "0.10"
rand = "0.8"
hex = "0.4"
sp-core = "38.1.0"
parity-scale-codec = { version = "3.7.5", features = ["derive"] }
# Storage
sled = "0.34"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Error monitoring (optional - enabled via SENTRY_DSN env var)
sentry = { version = "0.36", default-features = false, features = ["backtrace", "contexts", "tracing", "reqwest", "rustls"] }
sentry-tracing = "0.36"
# Error handling
anyhow = "1.0"
thiserror = "2.0"
# Utils
uuid = { version = "1.10", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
parking_lot = "0.12"
# CLI
clap = { version = "4.5", features = ["derive", "env"] }
# Testing
tempfile = "3.12"
# HTTP/Web (for P2P communication and challenge SDK)
reqwest = { version = "0.12", features = ["json"] }
# Additional shared deps
lz4_flex = "0.11"
base64 = "0.22"
semver = { version = "1.0", features = ["serde"] }
libp2p = { version = "0.54", features = ["tokio", "gossipsub", "kad", "identify", "noise", "yamux", "tcp", "dns", "macros", "serde"] }
wasmtime = "41.0.3"
trust-dns-resolver = "0.23.2"
url = "2.5"
# Patch for TLE/CRv4 compatibility (w3f-bls version conflict)
[patch.crates-io]
w3f-bls = { git = "https://github.com/opentensor/bls", branch = "fix-no-std" }
# Clippy lints configuration
[workspace.lints.clippy]
# Allow these patterns that are intentional in this codebase
too_many_arguments = "allow"
large_enum_variant = "allow"
type_complexity = "allow"
await_holding_lock = "warn"
collapsible_match = "allow"
collapsible_if = "allow"
# Workspace-level feature flags for challenge integration
# Individual crates can enable these by adding features in their Cargo.toml:
# [features]
# dynamic-challenges = ["libloading"]
[workspace.metadata.challenge-features]
# Enable dynamic challenge loading (crates opt-in via features)
dynamic-loading-available = true