/ Cargo.toml
Cargo.toml
  1  [workspace]
  2  resolver = "2"
  3  members = [
  4   "crates/adnet",
  5   "crates/adnet-runtime",
  6   "crates/adnet-ipc",
  7   "crates/adnet-ipc-integration",
  8   "crates/adnet-consensus",
  9   "crates/adnet-network",
 10   "crates/adnet-storage",
 11   "crates/adnet-api",
 12   "crates/adnet-mempool",
 13   "crates/adnet-prover",
 14   "crates/adnet-validator",
 15   "crates/adnet-monitoring",
 16   "crates/adnet-e2e",
 17   "crates/adnet-rewards",
 18   "crates/adnet-peerdas",
 19   "crates/adnet-kani-proofs",
 20   "crates/adnet-api-service",
 21  ]
 22  default-members = [
 23   "crates/adnet",
 24   "crates/adnet-runtime",
 25   "crates/adnet-ipc",
 26   "crates/adnet-ipc-integration",
 27   "crates/adnet-consensus",
 28   "crates/adnet-network",
 29   "crates/adnet-storage",
 30   "crates/adnet-api",
 31   "crates/adnet-mempool",
 32   "crates/adnet-prover",
 33   "crates/adnet-validator",
 34   "crates/adnet-monitoring",
 35   "crates/adnet-rewards",
 36  ]
 37  
 38  [workspace.package]
 39  version = "0.3.0"
 40  authors = ["ALPHA/DELTA Network"]
 41  edition = "2024"
 42  license = "Apache-2.0"
 43  rust-version = "1.87"
 44  repository = "https://code.ac-dc.network/Alpha-Delta-Network/adnet"
 45  
 46  [workspace.dependencies]
 47  # Internal crates
 48  adnet-runtime = { path = "crates/adnet-runtime" }
 49  adnet-ipc = { path = "crates/adnet-ipc" }
 50  adnet-consensus = { path = "crates/adnet-consensus" }
 51  adnet-network = { path = "crates/adnet-network" }
 52  adnet-storage = { path = "crates/adnet-storage" }
 53  adnet-api = { path = "crates/adnet-api" }
 54  adnet-mempool = { path = "crates/adnet-mempool" }
 55  adnet-prover = { path = "crates/adnet-prover" }
 56  adnet-validator = { path = "crates/adnet-validator" }
 57  adnet-e2e = { path = "crates/adnet-e2e" }
 58  adnet-monitoring = { path = "crates/adnet-monitoring" }
 59  adnet-rewards = { path = "crates/adnet-rewards" }
 60  adnet-peerdas = { path = "crates/adnet-peerdas" }
 61  
 62  # Nova IPA standalone verifier (no VM deps)
 63  nova-verifier = { path = "../alphavm/nova-verifier" }
 64  
 65  # VM algorithms (for circuit costs)
 66  alphavm-algorithms = { path = "../alphavm/algorithms" }
 67  deltavm-algorithms = { path = "../deltavm/algorithms" }
 68  
 69  # ALPHA chain dependencies
 70  alphavm = { path = "../alphavm" }
 71  alphaos-node = { path = "../alphaos/node" }
 72  alphaos-node-consensus = { path = "../alphaos/node/consensus" }
 73  alphaos-cli = { path = "../alphaos/cli" }
 74  alphaos-account = { path = "../alphaos/account" }
 75  alphaos-utilities = { path = "../alphaos/utilities" }
 76  acdc-std = { path = "../acdc-core", default-features = false, features = ["profiler"] }
 77  alphastd = { package = "acdc-std", path = "../acdc-core", default-features = false }  # Renamed for compatibility
 78  
 79  # DELTA chain dependencies
 80  deltavm = { path = "../deltavm" }
 81  deltaos-node = { path = "../deltaos/node" }
 82  deltaos-node-consensus = { path = "../deltaos/node/consensus" }
 83  deltaos-cli = { path = "../deltaos/cli" }
 84  deltaos-account = { path = "../deltaos/account" }
 85  deltaos-utilities = { path = "../deltaos/utilities" }
 86  deltaos-node-oracle = { path = "../deltaos/node/oracle" }
 87  
 88  # Core utilities
 89  acdc-core = { path = "../acdc-core" }
 90  
 91  # Async runtime
 92  tokio = { version = "1.42", features = ["full", "tracing", "rt-multi-thread", "macros", "signal"] }
 93  
 94  # CLI
 95  clap = { version = "4.5", features = ["derive", "env"] }
 96  
 97  # Serialization
 98  serde = { version = "1.0", features = ["derive"] }
 99  serde_json = "1.0"
100  toml = "0.8"
101  
102  # Logging
103  tracing = "0.1"
104  tracing-subscriber = { version = "0.3", features = ["env-filter"] }
105  
106  # err handling
107  anyhow = "1.0"
108  thiserror = "2.0"
109  
110  # Cryptography
111  rand = "0.8"
112  sha2 = "0.10"
113  hex = "0.4"
114  smallvec = { version = "1.15", features = ["union"] }
115  blst = "0.3"
116  ed25519-dalek = { version = "2", features = ["std", "rand_core"] }
117  
118  # Async traits
119  async-trait = "0.1"
120  
121  # Async channels
122  async-channel = "2.0"
123  
124  # db (must match alphavm's rocksdb version)
125  rocksdb = { version = "0.21", default-features = false, features = ["lz4"] }
126  
127  # Binary serialisation
128  bincode = "2"
129  
130  # P2P networking
131  libp2p-identity = { version = "0.2", features = ["peerid"] }
132  
133  # Web server
134  axum = "0.7"
135  utoipa = { version = "4", features = ["axum_extras"] }
136  tower = "0.5"
137  tower-http = { version = "0.6", features = ["cors", "trace"] }
138  
139  # HTTP client
140  reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
141  
142  
143  # Arkworks dependencies (for ZK proof verification in adnet-api)
144  ark-bn254 = { git = "https://github.com/arkworks-rs/algebra" }
145  ark-serialize = { git = "https://github.com/arkworks-rs/algebra" }
146  folding-schemes = { git = "https://github.com/privacy-scaling-explorations/folding-schemes", package = "folding-schemes" }
147  
148  # Arkworks patch section — redirects crates.io packages to git versions required by
149  # alphavm-nova (a path dep). Nova uses custom forks with the 'constraints' feature
150  # and other modifications not in stable crates.io releases.
151  # This section mirrors alphavm's [patch.crates-io] to ensure compatible resolution.
152  [patch.crates-io]
153  ark-groth16 = { git = "https://github.com/arkworks-rs/groth16", rev = "b3b4a15" }
154  ark-ff = { git = "https://github.com/arkworks-rs/algebra" }
155  ark-ec = { git = "https://github.com/arkworks-rs/algebra" }
156  ark-serialize = { git = "https://github.com/arkworks-rs/algebra" }
157  ark-poly = { git = "https://github.com/arkworks-rs/algebra" }
158  ark-relations = { git = "https://github.com/arkworks-rs/snark" }
159  ark-snark = { git = "https://github.com/arkworks-rs/snark" }
160  ark-crypto-primitives = { git = "https://github.com/flyingnobita/crypto-primitives", rev = "f559264" }
161  ark-r1cs-std = { git = "https://github.com/flyingnobita/r1cs-std_yelhousni", rev = "b4bab0c" }
162  ark-std = { git = "https://github.com/arkworks-rs/std" }
163  ark-poly-commit = { git = "https://github.com/arkworks-rs/poly-commit" }
164  ark-bn254 = { git = "https://github.com/arkworks-rs/algebra" }
165  ark-grumpkin = { git = "https://github.com/arkworks-rs/algebra" }
166  ark-pallas = { git = "https://github.com/arkworks-rs/algebra" }
167  ark-bls12-377 = { git = "https://github.com/arkworks-rs/algebra" }
168  ark-bw6-761 = { git = "https://github.com/arkworks-rs/algebra" }
169  ark-vesta = { git = "https://github.com/arkworks-rs/algebra" }
170  
171  [profile.release]
172  opt-level = 3
173  lto = "thin"
174  codegen-units = 16
175  panic = "abort"
176  strip = true
177  
178  [profile.dev]
179  opt-level = 0
180  debug = true
181  
182  [workspace.lints.rust]
183  # Allow cfg(kani) used in bounded model-checking proof modules.
184  # Kani uses a non-standard cfg flag not registered with cargo check-cfg.
185  unexpected_cfgs = { level = "allow", check-cfg = ['cfg(kani)'] }