Files
darkfi/Cargo.toml
epiphany a5122d8d41 fud, dht: remove fetch_seeders() (replaced by a pubsub), cleanup Dht and DhtHandler
Instead of awaiting a `fetch_seeders()` method, there is a pubsub (see `dht.lookup()`) where seeders are send to as soon as they are found, so you can start downloading as soon as you find one seeder.

Before this, you started downloading when you fetched all seeders which increased the initial delay for all downloads.
2025-09-15 14:27:16 +02:00

366 lines
8.1 KiB
TOML

[package]
name = "darkfi"
version = "0.5.0"
homepage = "https://dark.fi"
description = "Anonymous. Uncensored. Sovereign."
authors = ["Dyne.org foundation <foundation@dyne.org>"]
repository = "https://codeberg.org/darkrenaissance/darkfi"
license = "AGPL-3.0-only"
edition = "2021"
[lib]
name = "darkfi"
doctest = false
bench = false
#[profile.release]
#debug = true
#lto = "fat"
#codegen-units = 1
[workspace]
members = [
"bin/zkas",
"bin/darkfid",
"bin/minerd",
"bin/explorer/explorerd",
"bin/drk",
"bin/fud/fu",
"bin/fud/fud",
"bin/genev/genevd",
"bin/genev/genev-cli",
"bin/darkirc",
#"bin/darkwallet",
"bin/tau/taud",
"bin/vanityaddr",
"bin/lilith",
"src/sdk",
"src/sdk/python",
#"src/serial",
#"src/serial/derive",
#"src/serial/derive-internal",
"src/contract/test-harness",
"src/contract/money",
"src/contract/dao",
"src/contract/deployooor",
"example/dchat/dchatd",
]
[dependencies]
# Hard dependencies
libc = "0.2.174"
log = "0.4.27"
thiserror = "2.0.12"
# async-runtime
async-recursion = {version = "1.1.1", optional = true}
async-trait = {version = "0.1.88", optional = true}
futures = {version = "0.3.31", optional = true}
smol = {version = "2.0.2", optional = true}
pin-project-lite = {version = "0.2.16", optional = true}
# Networking
futures-rustls = {version = "0.26.0", default-features = false, features = ["logging", "tls12", "ring"], optional = true}
# Pluggable Transports
socket2 = {version = "0.6.0", features = ["all"], optional = true}
arti-client = {version = "0.32.0", default-features = false, features = ["async-std", "compression", "error_detail", "rustls", "onion-service-client", "onion-service-service"], optional = true}
tor-error = {version = "0.32.0", optional = true}
tor-rtcompat = {version = "0.32.0", features = ["async-std", "rustls"], optional = true}
tor-hscrypto = {version = "0.32.0", optional = true}
tor-hsservice = {version = "0.32.0", optional = true}
tor-proto = {version = "0.32.0", optional = true}
tor-cell = {version = "0.32.0", optional = true}
# TLS cert utilities
ed25519-compact = {version = "2.1.1", optional = true}
rcgen = {version = "0.12.1", optional = true}
rustls-pemfile = {version = "2.2.0", optional = true}
x509-parser = {version = "0.17.0", features = ["validate", "verify"], optional = true}
# Encoding
bs58 = {version = "0.5.1", optional = true}
serde = {version = "1.0.219", features = ["derive"], optional = true}
tinyjson = {version = "2.5.1", optional = true}
httparse = {version = "1.10.1", optional = true}
semver = {version = "1.0.26", optional = true}
structopt = {version= "0.3.26", optional = true}
structopt-toml = {version= "0.5.1", optional = true}
toml = {version = "0.9.5", optional = true}
# Utilities
#darkfi-serial = {path = "src/serial", optional = true}
#darkfi-derive = {path = "src/serial/derive", optional = true}
darkfi-serial = {version = "0.5.1", optional = true}
darkfi-derive = {version = "0.5.1", optional = true}
# TODO: check chrono usage and impl our own
chrono = {version = "0.4.41", optional = true}
lazy_static = {version = "1.5.0", optional = true}
num-bigint = {version = "0.4.6", optional = true}
url = {version = "2.5.4", features = ["serde"], optional = true}
# Misc
simplelog = {version = "0.12.2", optional = true}
regex = {version = "1.11.1", optional = true}
# Crypto
rand = {version = "0.8.5", optional = true}
blake3 = {version = "1.8.2", features = ["rayon"], optional = true}
crypto_api_chachapoly = {version = "0.5.0", optional = true}
halo2_proofs = {version = "0.3.1", features = ["circuit-params"], optional = true}
halo2_gadgets = {version = "0.3.1", features = ["circuit-params"], optional = true}
# Smart contract runtime
darkfi-sdk = {path = "src/sdk", optional = true}
wasmer = {version = "6.1.0-rc.2", features = ["singlepass"], optional = true}
wasmer-compiler-singlepass = {version = "6.1.0-rc.2", optional = true}
wasmer-middlewares = {version = "6.1.0-rc.2", optional = true}
# Blockchain store
sled-overlay = {version = "0.1.9", optional = true}
# Miner
randomx = {git = "https://codeberg.org/darkrenaissance/RandomX", optional = true, rev = "91cd62809e006f1dcee31ab62160ca5dc71f4c2d"}
monero = {version = "0.21.0", optional = true}
tiny-keccak = { version = "2.0.2", features = ["keccak"], optional = true }
[dev-dependencies]
clap = {version = "4.4.11", features = ["derive"]}
halo2_proofs = {version = "0.3.1", features = ["dev-graph", "sanity-checks"]}
halo2_gadgets = "0.3.1"
plotters = "0.3.7"
easy-parallel = "3.3.1"
prettytable-rs = "0.10.0"
# Used for benchmarks
criterion = { version = "0.7.0", features = ["html_reports"] }
# -----BEGIN LIBRARY FEATURES-----
[features]
async-daemonize = ["system"]
async-serial = ["darkfi-serial/async"]
async-sdk = [
"darkfi-sdk/async",
"async-serial",
]
blockchain = [
"sled-overlay/serial",
"monero",
"num-bigint",
"tiny-keccak",
"darkfi-serial/num-bigint",
"tx",
"util",
]
validator = [
"crypto_api_chachapoly",
"lazy_static",
"randomx",
"smol",
"wasm-runtime",
]
geode = [
"blake3",
"bs58",
"futures",
"smol",
]
event-graph = [
"blake3",
"num-bigint",
"sled-overlay",
"smol",
"tinyjson",
"bs58",
"darkfi-serial",
"darkfi-serial/collections",
"darkfi-serial/hash",
"rpc",
]
p2p-nym = []
p2p-tor = [
"arti-client",
"tor-hsservice",
"tor-hscrypto",
"tor-error",
"tor-rtcompat",
"tor-proto",
"tor-cell",
]
net-defaults = [
"async-trait",
"ed25519-compact",
"futures",
"futures-rustls",
"rcgen",
"regex",
"rustls-pemfile",
"semver",
"serde",
"socket2",
"structopt",
"structopt-toml",
"url",
"x509-parser",
"darkfi-serial/url",
"async-serial",
"system",
"util",
"p2p-tor",
#"p2p-nym",
"p2p-i2p",
]
p2p-unix = []
p2p-socks5 = []
p2p-i2p = [
"p2p-socks5"
]
net = ["net-defaults"]
rpc = [
"async-trait",
"httparse",
"net",
]
system = [
"pin-project-lite",
"rand",
"smol",
]
tx = [
"blake3",
"rand",
"async-sdk",
"async-serial",
"zk",
]
util = [
"simplelog",
"tinyjson",
"darkfi-serial",
]
wasm-runtime = [
"wasmer",
"wasmer-compiler-singlepass",
"wasmer-middlewares",
"darkfi-sdk/wasm",
"blockchain",
]
zk = [
"halo2_proofs",
"halo2_gadgets",
"rand",
"async-sdk",
"zkas",
]
zkas = [
"darkfi-serial",
]
dht = [
"async-sdk",
"blake3",
"bs58",
"futures",
"num-bigint",
"serde",
"structopt",
"structopt-toml",
"smol",
"darkfi-serial",
"net",
]
# Could not get this to work. Complains manifest-key is ignored.
#[target.'cfg(target_family = "unix")'.features]
#net = ["net-defaults", "p2p-unix"]
#
#[target.'cfg(target_family = "windows")'.features]
#net = ["net-defaults"]
# -----END LIBRARY FEATURES-----
[patch.crates-io]
halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v031"}
halo2_gadgets = {git="https://github.com/parazyd/halo2", branch="v031"}
# Forked "url" crate with added P2P schemas
url = {git="https://github.com/darkrenaissance/rust-url", branch="main"}
[[bench]]
name = "zk_arith"
harness = false
path = "bench/zk_arith.rs"
[[bench]]
name = "zk_from_json"
harness = false
path = "bench/zk_from_json.rs"
[[bench]]
name = "sled"
harness = false
path = "bench/sled.rs"
# Crossbeam SkipMap vs Mutex protected HashMap.
# Uncomment to enable, and add the following to dev-dependencies:
# crossbeam-skiplist = "0.1.3"
# rand = "0.8.5"
#[[bench]]
#name = "crossbeam"
#harness = false
#path = "bench/crossbeam.rs"
# Top-level lints. Enabled optionally on a crate-level in their respective Cargo.toml files.
[workspace.lints.clippy]
#arithmetic_side_effects = "warn"
#eq_op = "warn"
#float_cmp = "warn"
# integer_division = "warn"
#large_futures = "warn"
#large_stack_arrays = "warn"
#large_stack_frames = "warn"
#lossy_float_literal = "warn"
#manual_slice_size_calculation = "warn"
#modulo_one = "warn"
#out_of_bounds_indexing = "warn"
#overflow_check_conditional = "warn"
#recursive_format_impl = "warn"
#unchecked_duration_subtraction = "warn"