/ Cargo.toml
Cargo.toml
  1  [package]
  2  name = "alphaos"
  3  version = "0.3.0"
  4  authors = [ "The Alpha Team <hello@alpha.org>" ]
  5  description = "A decentralized operating system"
  6  homepage = "https://alpha.org"
  7  repository = "https://github.com/ProvableHQ/alphaos"
  8  keywords = [
  9    "alpha",
 10    "cryptography",
 11    "blockchain",
 12    "decentralized",
 13    "zero-knowledge"
 14  ]
 15  categories = [ "cryptography", "cryptography::cryptocurrencies", "os" ]
 16  license = "Apache-2.0"
 17  edition = "2021"
 18  rust-version = "1.75.0" # Attention - Change the MSRV in rust-toolchain and in .circleci/config.yml as well
 19  
 20  [workspace]
 21  members = [
 22    "account",
 23    "cli",
 24    "display",
 25    "node",
 26    "node/bft",
 27    "node/bft/events",
 28    "node/bft/ledger-service",
 29    "node/bft/storage-service",
 30    "node/cdn",
 31    "node/consensus",
 32    "node/metrics",
 33    "node/network",
 34    "node/rest",
 35    "node/router",
 36    "node/router/messages",
 37    "node/sync",
 38    "node/sync/communication-service",
 39    "node/sync/locators",
 40    "node/tcp",
 41    "utilities",
 42  ]
 43  
 44  [workspace.dependencies.alphastd]
 45  path = "../acdc-core"
 46  package = "acdc-std"
 47  default-features = false
 48  
 49  [workspace.dependencies.alphavm]
 50  path = "../alphavm"
 51  #git = "https://github.com/ProvableHQ/alphavm.git"
 52  #rev = "d8e736636dd"
 53  version = "=0.3.0"
 54  default-features = false
 55  
 56  [workspace.dependencies.anyhow]
 57  version = "1.0"
 58  
 59  [workspace.dependencies.async-trait]
 60  version = "0.1"
 61  
 62  [workspace.dependencies.axum]
 63  version = "0.8"
 64  
 65  [workspace.dependencies.axum-extra]
 66  version = "0.10"
 67  
 68  [workspace.dependencies.base64]
 69  version = "0.22"
 70  
 71  [workspace.dependencies.bincode]
 72  version = "1"
 73  
 74  [workspace.dependencies.built]
 75  version = "0.8"
 76  features = ["git2"]
 77  
 78  [workspace.dependencies.bytes]
 79  version = "1"
 80  
 81  [workspace.dependencies.clap]
 82  version = "4.5"
 83  default-features = false
 84  features = [ "std" ]
 85  
 86  [workspace.dependencies.colored]
 87  version = "3"
 88  
 89  [workspace.dependencies.crossterm]
 90  version = "0.29"
 91  
 92  [workspace.dependencies.futures]
 93  version = "0.3"
 94  
 95  [workspace.dependencies.futures-util]
 96  version = "0.3"
 97  
 98  [workspace.dependencies.locktick]
 99  version = "0.4"
100  
101  [workspace.dependencies.lru]
102  version = "0.16"
103  
104  [workspace.dependencies.num_cpus]
105  version = "1"
106  
107  [workspace.dependencies.once_cell]
108  version = "1"
109  
110  [workspace.dependencies.proptest]
111  version = "=1.6.0" # Remove this once we upgrade to rand 0.9
112  
113  [workspace.dependencies.rayon]
114  version = "1"
115  
116  [workspace.dependencies.thiserror]
117  version = "2"
118  
119  [workspace.dependencies.time]
120  version = "0.3"
121  
122  [workspace.dependencies.tokio]
123  version = "1.48"
124  
125  [workspace.dependencies.tokio-util]
126  version = "0.7"
127  
128  [workspace.dependencies.http]
129  version = "1"
130  
131  [workspace.dependencies.itertools]
132  version = "0.14"
133  
134  [workspace.dependencies.indexmap]
135  version = "2"
136  default-features = false
137  
138  [workspace.dependencies.serde]
139  version = "1"
140  default-features = false
141  
142  [workspace.dependencies.serde_json]
143  version = "1"
144  
145  [workspace.dependencies.reqwest]
146  version = "0.11"
147  features = [ "json" ]
148  
149  [workspace.dependencies.parking_lot]
150  version = "0.12"
151  
152  [workspace.dependencies.rand]
153  version = "0.8"
154  default-features = false
155  
156  [workspace.dependencies.rand_chacha]
157  version = "0.3"
158  default-features = false
159  
160  [workspace.dependencies.rand_distr]
161  version = "0.4"
162  
163  [workspace.dependencies.tracing]
164  version = "0.1"
165  default-features = false
166  
167  [workspace.dependencies.tracing-test]
168  version = "0.2"
169  
170  [workspace.dependencies.tracing-subscriber]
171  # TODO remove this once colored logs work again in a newer version
172  # See: https://github.com/tokio-rs/tracing/issues/3378
173  version = "=0.3.19"
174  
175  [workspace.dependencies.test-strategy]
176  version = "0.4"
177  
178  [workspace.dependencies.test-log]
179  version = "0.2"
180  
181  [workspace.dependencies.alphaos-account]
182  path = "account"
183  version = "=0.3.0"
184  
185  [workspace.dependencies.alphaos-cli]
186  path = "cli"
187  version = "=0.3.0"
188  
189  [workspace.dependencies.alphaos-display]
190  path = "display"
191  version = "=0.3.0"
192  
193  [workspace.dependencies.alphaos-node]
194  path = "node"
195  version = "=0.3.0"
196  
197  [workspace.dependencies.alphaos-node-bft]
198  path = "node/bft"
199  version = "=0.3.0"
200  
201  [workspace.dependencies.alphaos-node-bft-events]
202  path = "node/bft/events"
203  version = "=0.3.0"
204  
205  [workspace.dependencies.alphaos-node-bft-storage-service]
206  path = "node/bft/storage-service"
207  version = "=0.3.0"
208  
209  [workspace.dependencies.alphaos-node-bft-ledger-service]
210  path = "node/bft/ledger-service"
211  version = "=0.3.0"
212  default-features = false
213  
214  [workspace.dependencies.alphaos-node-consensus]
215  path = "node/consensus"
216  version = "=0.3.0"
217  
218  [workspace.dependencies.alphaos-node-cdn]
219  path = "node/cdn"
220  version = "=0.3.0"
221  
222  [workspace.dependencies.alphaos-node-metrics]
223  path = "node/metrics"
224  version = "=0.3.0"
225  
226  [workspace.dependencies.alphaos-node-network]
227  path = "node/network"
228  version = "=0.3.0"
229  
230  [workspace.dependencies.alphaos-node-router]
231  path = "node/router"
232  version = "=0.3.0"
233  
234  [workspace.dependencies.alphaos-node-router-messages]
235  path = "node/router/messages"
236  version = "=0.3.0"
237  
238  [workspace.dependencies.alphaos-node-rest]
239  path = "node/rest"
240  version = "=0.3.0"
241  
242  [workspace.dependencies.alphaos-node-sync]
243  path = "node/sync"
244  version = "=0.3.0"
245  
246  [workspace.dependencies.alphaos-node-sync-communication-service]
247  path = "node/sync/communication-service"
248  version = "=0.3.0"
249  
250  [workspace.dependencies.alphaos-node-sync-locators]
251  path = "node/sync/locators"
252  version = "=0.3.0"
253  
254  [workspace.dependencies.alphaos-node-tcp]
255  path = "node/tcp"
256  version = "=0.3.0"
257  
258  [workspace.dependencies.alphaos-utilities]
259  path = "utilities"
260  version = "=0.3.0"
261  
262  [[bin]]
263  name = "alphaos"
264  path = "alphaos/main.rs"
265  
266  [features]
267  default = [ "alphaos-cli/metrics", "alphaos-node-metrics", "alphaos-node/metrics", "alphaos-node-cdn/metrics" ]
268  history = [ "alphaos-node/history" ]
269  telemetry = [ "alphaos-node/telemetry" ]
270  # Section 11: Compile-time security features
271  mainnet = ["alphaos-node-consensus/mainnet"]
272  network-upgrades = ["alphaos-node-consensus/network-upgrades"]
273  cuda = [
274    "alphaos-account/cuda",
275    "alphaos-cli/cuda",
276    "alphaos-node/cuda",
277    "alphaos-node-bft/cuda",
278    "alphaos-node-cdn/cuda",
279    "alphaos-node-consensus/cuda",
280    "alphaos-node-rest/cuda",
281    "alphaos-node-router/cuda",
282    "alphaos-node-sync/cuda"
283  ]
284  locktick = [
285    "dep:locktick",
286    "alphaos-node/locktick",
287    "alphaos-node-bft/locktick",
288    "alphaos-node-consensus/locktick",
289    "alphaos-node-metrics/locktick",
290    "alphaos-node-rest/locktick",
291    "alphaos-node-router/locktick",
292    "alphaos-node-sync/locktick",
293    "alphaos-node-tcp/locktick",
294    "alphavm/locktick"
295  ]
296  serial = [
297    "alphaos-cli/serial",
298    "alphaos-node/serial",
299    "alphaos-node-bft/serial",
300    "alphaos-node-consensus/serial",
301    "alphaos-node-metrics/serial",
302    "alphaos-node-rest/serial",
303    "alphaos-node-router/serial",
304    "alphaos-node-sync/serial",
305    "alphavm/serial"
306  ]
307  test_targets = [ "alphaos-cli/test_targets" ]
308  test_consensus_heights = [ "alphaos-cli/test_consensus_heights" ]
309  test_network = [ "alphaos-cli/test_network" ]
310  tokio_console = [ "alphaos-cli/tokio_console", "locktick" ]
311  
312  [dependencies.clap]
313  workspace = true
314  features = [ "derive" ]
315  
316  [dependencies.locktick]
317  version = "0.4"
318  optional = true
319  
320  [dependencies.alphaos-account]
321  workspace = true
322  
323  [dependencies.alphaos-cli]
324  workspace = true
325  
326  [dependencies.alphaos-node]
327  workspace = true
328  
329  [dependencies.alphaos-node-bft]
330  workspace = true
331  
332  [dependencies.alphaos-node-cdn]
333  workspace = true
334  
335  [dependencies.alphaos-node-consensus]
336  workspace = true
337  
338  [dependencies.alphaos-node-metrics]
339  workspace = true
340  optional = true
341  
342  [dependencies.alphaos-node-router]
343  workspace = true
344  
345  [dependencies.alphaos-node-rest]
346  workspace = true
347  
348  [dependencies.alphaos-node-sync]
349  workspace = true
350  
351  [dependencies.alphaos-node-tcp]
352  workspace = true
353  
354  [dependencies.alphavm]
355  workspace = true
356  
357  [target.'cfg(all(target_os = "linux", target_arch = "x86_64"))'.dependencies]
358  tikv-jemallocator = "0.6"
359  
360  [dependencies.tracing]
361  workspace = true
362  
363  [build-dependencies.built]
364  version = "0.8"
365  features = [ "git2" ]
366  
367  [build-dependencies.toml]
368  version = "0.9"
369  
370  [build-dependencies.walkdir]
371  version = "2"
372  
373  [profile.release]
374  opt-level = 3
375  lto = "thin"
376  incremental = true
377  # uncomment the 2 lines below when building with the locktick feature
378  debug = "line-tables-only"
379  strip = "none"
380  
381  [profile.bench]
382  opt-level = 3
383  debug = false
384  rpath = false
385  lto = "thin"
386  incremental = true
387  debug-assertions = false
388  
389  [profile.dev]
390  opt-level = 2
391  lto = "off"
392  incremental = true
393  
394  [profile.test]
395  opt-level = 2
396  lto = "thin"
397  incremental = true
398  debug = true
399  debug-assertions = true
400  
401  [package.metadata.cargo-machete]
402  ignored = [
403    "alphaos-account", # Needed for cuda feature
404    "alphaos-node", # Needed for metrics feature
405    "alphaos-node-bft", # Needed for cuda and locktick features
406    "alphaos-node-cdn", # Needed for cuda and locktick features
407    "alphaos-node-consensus", # Needed for cuda and locktick features
408    "alphaos-node-tcp", # Needed for locktick feature
409    "alphaos-node-rest", # Needed for cuda and locktick features
410    "alphaos-node-sync", # Needed for cuda and locktick features
411    "alphaos-node-router", # Needed for cuda and locktick features
412    "alphaos-node-metrics", # Needed for locktick feature
413  ]