content: [workspace]
  resolver = "2"
  members = [
      "crates/*",
      "shared/*",
  ]
  
  [workspace.dependencies]
  ab-archiving = { version = "0.1.0", path = "../crates/shared/ab-archiving", default-features = false }
  ab-client-api = { version = "0.0.1", path = "../crates/node/ab-client-api" }
  ab-client-proof-of-time = { version = "0.0.1", path = "../crates/node/ab-client-proof-of-time" }
  ab-cli-utils = { version = "0.0.1", path = "../crates/shared/ab-cli-utils" }
  ab-core-primitives = { version = "0.1.0", path = "../crates/shared/ab-core-primitives", default-features = false }
  ab-data-retrieval = { version = "0.1.0", path = "../crates/shared/ab-data-retrieval", default-features = false }
  ab-direct-io-file = { version = "0.0.1", path = "../crates/shared/ab-direct-io-file" }
  ab-erasure-coding = { path = "../crates/shared/ab-erasure-coding", default-features = false }
  ab-farmer-components = { version = "0.1.0", path = "../crates/farmer/ab-farmer-components" }
  ab-proof-of-space = { version = "0.1.0", path = "../crates/shared/ab-proof-of-space", default-features = false }
  ab-proof-of-time = { version = "0.1.0", path = "../crates/shared/ab-proof-of-time" }
  actix-web = { version = "4.9.0", default-features = false }
  anyhow = "1.0.89"
  array-bytes = "6.2.3"
  async-lock = "3.4.0"
  async-nats = "0.37.0"
  async-oneshot = "0.5.9"
  async-trait = "0.1.83"
  backoff = "0.4.0"
  base58 = "0.2.0"
  blake2 = { version = "0.10.6", default-features = false }
  blake3 = { version = "1.5.4", default-features = false }
  blst = "0.3.13"
  bytes = { version = "1.7.2", default-features = false }
  bytesize = "1.3.0"
  cc = "1.1.23"
  clap = "4.5.18"
  core_affinity = "0.8.1"
  criterion = { version = "0.6.0", default-features = false }
  derive_more = { version = "1.0.0", default-features = false }
  ed25519-zebra = { version = "4.1.0", default-features = false }
  event-listener = "5.3.1"
  event-listener-primitives = "2.0.1"
  fdlimit = "0.3.0"
  frame-executive = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  frame-support = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  frame-system = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  frame-system-rpc-runtime-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  fs2 = "0.4.3"
  fs4 = "0.9.1"
  futures = "0.3.31"
  futures-timer = "3.0.3"
  hex = { version = "0.4.3", default-features = false }
  hex-literal = "0.4.1"
  hwlocality = "1.0.0-alpha.6"
  jsonrpsee = "0.24.5"
  libp2p = { version = "0.54.2", git = "https://github.com/autonomys/rust-libp2p", rev = "04c2e649b1f5482b8c3466b0fdbd1815b3126a48", default-features = false }
  libp2p-swarm-test = { version = "0.5.0", git = "https://github.com/autonomys/rust-libp2p", rev = "04c2e649b1f5482b8c3466b0fdbd1815b3126a48" }
  log = { version = "0.4.22", default-features = false }
  memmap2 = "0.9.5"
  mimalloc = "0.1.43"
  multihash = "0.19.1"
  nohash-hasher = "0.2.0"
  num_cpus = "1.16.0"
  ouroboros = "0.18.4"
  pallet-balances = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  pallet-runtime-configs = { version = "0.1.0", path = "crates/pallet-runtime-configs", default-features = false }
  pallet-subspace = { version = "0.1.0", path = "crates/pallet-subspace", default-features = false }
  pallet-sudo = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  pallet-timestamp = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  pallet-transaction-fees = { version = "0.1.0", path = "crates/pallet-transaction-fees", default-features = false }
  pallet-transaction-payment = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  pallet-transaction-payment-rpc = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  pallet-utility = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  parity-scale-codec = { version = "3.7.5", default-features = false }
  parking_lot = "0.12.2"
  pin-project = "1.1.5"
  prometheus = { version = "0.13.0", default-features = false }
  prometheus-client = "0.22.3"
  rand = { version = "0.8.5", default-features = false }
  rand_chacha = { version = "0.3.1", default-features = false }
  rayon = "1.10.0"
  rclite = "0.3.0"
  rust-kzg-blst = { git = "https://github.com/grandinetech/rust-kzg", rev = "6c8fcc623df3d7e8c0f30951a49bfea764f90bf4", default-features = false }
  sc-basic-authorship = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-chain-spec = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-cli = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sc-client-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-consensus = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-consensus-subspace = { version = "0.1.0", path = "crates/sc-consensus-subspace" }
  sc-consensus-subspace-rpc = { version = "0.1.0", path = "crates/sc-consensus-subspace-rpc" }
  sc-executor = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sc-informant = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-network = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-network-gossip = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-network-sync = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sc-network-transactions = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sc-proof-of-time = { version = "0.1.0", path = "crates/sc-proof-of-time" }
  sc-rpc = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-rpc-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-service = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sc-storage-monitor = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sc-subspace-sync-common = { version = "0.1.0", path = "shared/sc-subspace-sync-common", default-features = false }
  sc-tracing = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-transaction-pool = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-transaction-pool-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sc-utils = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  scale-info = { version = "2.11.6", default-features = false }
  schnellru = "0.2.4"
  schnorrkel = { version = "0.11.4", default-features = false }
  serde = { version = "1.0.225", default-features = false }
  serde_json = "1.0.133"
  sp-api = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-block-builder = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-blockchain = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-consensus = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  sp-consensus-subspace = { version = "0.1.0", path = "crates/sp-consensus-subspace", default-features = false }
  sp-core = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-genesis-builder = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-inherents = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-io = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-offchain = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-runtime = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-state-machine = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-timestamp = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-transaction-pool = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sp-version = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35", default-features = false }
  sppark = { version = "0.1.8", git = "https://github.com/autonomys/sppark", rev = "b2a181eb99c8200f1a604f04122551ea39fbf63f" }
  ss58-registry = "1.51.0"
  static_assertions = "1.1.0"
  subspace-metrics = { version = "0.1.0", path = "shared/subspace-metrics" }
  subspace-networking = { version = "0.1.0", path = "crates/subspace-networking" }
  subspace-proof-of-space-gpu = { version = "0.1.0", path = "shared/subspace-proof-of-space-gpu" }
  subspace-rpc-primitives = { version = "0.1.0", path = "crates/subspace-rpc-primitives" }
  subspace-runtime = { version = "0.1.0", path = "crates/subspace-runtime" }
  subspace-runtime-primitives = { version = "0.1.0", path = "crates/subspace-runtime-primitives", default-features = false }
  subspace-service = { version = "0.1.0", path = "crates/subspace-service" }
  subspace-verification = { version = "0.1.0", path = "crates/subspace-verification", default-features = false }
  substrate-build-script-utils = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  substrate-prometheus-endpoint = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  substrate-wasm-builder = { git = "https://github.com/subspace/polkadot-sdk", rev = "d7b75f3d002f5f9bcd04da31cc8197d3a733de35" }
  tempfile = "3.13.0"
  thiserror = { version = "2.0.0", default-features = false }
  thread-priority = "1.1.0"
  tokio = "1.40.0"
  tokio-stream = "0.1.16"
  tracing = { version = "0.1.40", default-features = false }
  tracing-subscriber = "0.3.18"
  ulid = "1.1.3"
  unsigned-varint = "0.8.0"
  void = "1.0.2"
  zeroize = "1.8.1"
  
  # The list of dependencies below (which can be both direct and indirect dependencies) are crates
  # that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of
  # their debug info might be missing) or to require to be frequently recompiled. We compile these
  # dependencies with `opt-level=3` even in "dev" mode in order to make "dev" mode more usable.
  # The majority of these crates are cryptographic libraries.
  #
  # This list is ordered alphabetically.
  [profile.dev.package]
  ab-archiving = { opt-level = 3 }
  ab-farmer-components = { opt-level = 3 }
  ab-proof-of-space = { opt-level = 3 }
  ab-proof-of-time = { opt-level = 3 }
  bitvec = { opt-level = 3 }
  blake2 = { opt-level = 3 }
  blake3 = { opt-level = 3 }
  blake2b_simd = { opt-level = 3 }
  blst = { opt-level = 3 }
  rust-kzg-blst = { opt-level = 3 }
  chacha20 = { opt-level = 3 }
  chacha20poly1305 = { opt-level = 3 }
  cranelift-codegen = { opt-level = 3 }
  cranelift-wasm = { opt-level = 3 }
  crc32fast = { opt-level = 3 }
  crossbeam-deque = { opt-level = 3 }
  crypto-mac = { opt-level = 3 }
  curve25519-dalek = { opt-level = 3 }
  ed25519-dalek = { opt-level = 3 }
  flate2 = { opt-level = 3 }
  futures-channel = { opt-level = 3 }
  hash-db = { opt-level = 3 }
  hashbrown = { opt-level = 3 }
  hmac = { opt-level = 3 }
  httparse = { opt-level = 3 }
  integer-sqrt = { opt-level = 3 }
  keccak = { opt-level = 3 }
  libm = { opt-level = 3 }
  libsecp256k1 = { opt-level = 3 }
  mio = { opt-level = 3 }
  nalgebra = { opt-level = 3 }
  num-bigint = { opt-level = 3 }
  parking_lot = { opt-level = 3 }
  parking_lot_core = { opt-level = 3 }
  percent-encoding = { opt-level = 3 }
  primitive-types = { opt-level = 3 }
  reed-solomon-simd = { opt-level = 3 }
  ring = { opt-level = 3 }
  rustls = { opt-level = 3 }
  sha2 = { opt-level = 3 }
  sha3 = { opt-level = 3 }
  smallvec = { opt-level = 3 }
  snow = { opt-level = 3 }
  substrate-bip39 = { opt-level = 3 }
  twox-hash = { opt-level = 3 }
  x25519-dalek = { opt-level = 3 }
  yamux = { opt-level = 3 }
  zeroize = { opt-level = 3 }
  
  [profile.release]
  # Substrate runtime requires unwinding.
  panic = "unwind"
  
  [profile.production]
  inherits = "release"
  lto = "fat"
  
  [patch.crates-io]
  # TODO: Remove once https://github.com/KokaKiwi/rust-hex/pull/58 is released (0.4.4+)
  hex = { git = "https://github.com/KokaKiwi/rust-hex", rev = "98b1ee36cac1533ae71662a2a7c54d68768ac1e8" }
  # Patch away `libp2p-identity` in our dependency tree with the git version.
  # For details see: https://github.com/autonomys/rust-libp2p/blob/04c2e649b1f5482b8c3466b0fdbd1815b3126a48/Cargo.toml#L140-L145
  libp2p-identity = { git = "https://github.com/autonomys/rust-libp2p", rev = "04c2e649b1f5482b8c3466b0fdbd1815b3126a48" }
  