[package] name = "darkfi" version = "0.4.1" homepage = "https://dark.fi" description = "Anonymous. Uncensored. Sovereign." authors = ["Dyne.org foundation "] repository = "https://github.com/darkrenaissance/darkfi" license = "AGPL-3.0-only" edition = "2021" [lib] name = "darkfi" doctest = false #[profile.release] #debug = true #lto = "fat" #codegen-units = 1 [workspace] members = [ "bin/zkas", #"bin/darkfid", "bin/darkfid2", "bin/darkfi-mmproxy", #"bin/drk", #"bin/faucetd", #"bin/fud/fu", #"bin/fud/fud", "bin/genev/genevd", "bin/genev/genev-cli", "bin/darkirc", "bin/tau/taud", #"bin/tau/tau-cli", "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/consensus", "src/contract/deployooor", #"example/dchat", ] [dependencies] # Hard dependencies libc = "0.2.150" log = "0.4.20" thiserror = "1.0.50" # async-runtime async-recursion = {version = "1.0.5", optional = true} async-trait = {version = "0.1.74", optional = true} futures = {version = "0.3.29", optional = true} smol = {version = "1.3.0", optional = true} pin-project-lite = {version = "0.2.13", optional = true} # Networking async-rustls = {version = "0.4.1", features = ["dangerous_configuration"], optional = true} # Pluggable Transports socket2 = {version = "0.5.5", features = ["all"], optional = true} arti-client = {version = "0.11.0", default-features = false, features = ["async-std", "error_detail", "rustls", "onion-service-client"], optional = true} tor-error = {version = "0.5.4", optional = true} tor-rtcompat = {version = "0.9.5", features = ["async-std", "rustls"], optional = true} tor-hscrypto = {version = "0.3.4", optional = true} # TLS cert utilities ed25519-compact = {version = "2.0.4", optional = true} rcgen = {version = "0.11.3", optional = true} rustls-pemfile = {version = "2.0.0-alpha.1", optional = true} x509-parser = {version = "0.15.1", features = ["validate", "verify"], optional = true} # Encoding bs58 = {version = "0.5.0", optional = true} serde = {version = "1.0.192", features = ["derive"], optional = true} tinyjson = {version = "2.5.1", optional = true} semver = {version = "1.0.20", optional = true} structopt = {version= "0.3.26", optional = true} structopt-toml = {version= "0.5.1", optional = true} toml = {version = "0.8.8", optional = true} # Big float high precision arithmetics dashu = {version = "0.4.0", optional = true} num-bigint = {version = "0.4.4", optional = true} # Utilities # TODO: check chrono usage and impl our own chrono = {version = "0.4.31", optional = true} darkfi-serial = {path = "src/serial", optional = true} darkfi-derive = {path = "src/serial/derive", optional = true} lazy_static = {version = "1.4.0", optional = true} url = {version = "2.4.1", features = ["serde"], optional = true} # Misc simplelog = {version = "0.12.1", optional = true} # Crypto rand = {version = "0.8.5", optional = true} blake3 = {version = "1.5.0", features = ["rayon"], optional = true} crypto_api_chachapoly = {version = "0.5.0", optional = true} halo2_proofs = {version = "0.3.0", features = ["circuit-params"], optional = true} halo2_gadgets = {version = "0.3.0", features = ["circuit-params"], optional = true} # Smart contract runtime darkfi-sdk = {path = "src/sdk", optional = true} wasmer = {version = "4.2.3", optional = true} wasmer-compiler-singlepass = {version = "4.2.3", optional = true} wasmer-middlewares = {version = "4.2.3", optional = true} # Wallet management rusqlite = {version = "0.29.0", features = ["sqlcipher"], optional = true} libsqlite3-sys = {version = "0.26.0", features = ["sqlcipher"], optional = true} # Blockchain store sled = {version = "0.34.7", optional = true} sled-overlay = {version = "0.0.8", optional = true} # Miner randomx = {git = "https://github.com/darkrenaissance/RandomX", optional = true} [dev-dependencies] clap = {version = "4.4.7", features = ["derive"]} halo2_proofs = {version = "0.3.0", features = ["dev-graph", "sanity-checks"]} halo2_gadgets = "0.3.0" plotters = "0.3.5" easy-parallel = "3.3.1" prettytable-rs = "0.10.0" # -----BEGIN LIBRARY FEATURES----- [features] async-daemonize = ["system"] async-serial = ["darkfi-serial/async"] async-sdk = [ "darkfi-sdk/async", "async-serial", ] blockchain = [ "blake3", "sled", "sled-overlay", "num-bigint", "async-sdk", "async-serial", "tx", "util", "zk", "zkas", ] validator = [ "async-trait", "blake3", "crypto_api_chachapoly", "dashu", "halo2_proofs", "lazy_static", "num-bigint", "rand", "randomx", "smol", "sled", "url", "async-sdk", "async-serial", "blockchain", "net", "rpc", "system", "tx", "util", "wallet", "wasm-runtime", "zk", "zkas", ] geode = [ "blake3", "futures", "smol", ] event-graph = [ "async-trait", "async-recursion", "blake3", "num-bigint", "rand", "sled", "sled-overlay", "smol", "tinyjson", "darkfi-serial", "darkfi-serial/collections", "darkfi-serial/hash", "net", "system", "util", ] p2p-unix = [] p2p-tcp = ["socket2"] p2p-tor = ["arti-client", "tor-hscrypto", "tor-error", "tor-rtcompat", "libsqlite3-sys"] p2p-nym = [] net = [ "async-rustls", "async-trait", "ed25519-compact", "futures", "rand", "rcgen", "rustls-pemfile", "semver", "smol", "serde", "structopt", "structopt-toml", "url", "x509-parser", "darkfi-serial", "darkfi-serial/url", "async-serial", "system", "util", "p2p-tcp", "p2p-tor", #"p2p-nym", "p2p-unix", ] rpc = [ "async-trait", "rand", "smol", "tinyjson", "url", "net", "system", "util", ] system = [ "pin-project-lite", "rand", "smol", ] tx = [ "blake3", "rand", "async-sdk", "async-serial", "zk", ] util = [ "simplelog", "tinyjson", "darkfi-serial", ] wallet = [ "rusqlite", "smol", ] wasm-runtime = [ "wasmer", "wasmer-compiler-singlepass", "wasmer-middlewares", "darkfi-sdk", "darkfi-serial", "blockchain", "util", "zk", "zkas", ] zk = [ "halo2_proofs", "halo2_gadgets", "rand", "async-serial", "async-sdk", "zkas", ] zkas = [ "darkfi-serial", ] # -----END LIBRARY FEATURES----- [patch.crates-io] halo2_proofs = {git="https://github.com/parazyd/halo2", branch="v4"} halo2_gadgets = {git="https://github.com/parazyd/halo2", branch="v4"} # arti-client = {git="https://gitlab.torproject.org/tpo/core/arti", rev="029eac8fe7f51e5bbaf65d9c8355cd7504668b9a"} # tor-hscrypto = {git="https://gitlab.torproject.org/tpo/core/arti", rev="029eac8fe7f51e5bbaf65d9c8355cd7504668b9a"} # tor-error = {git="https://gitlab.torproject.org/tpo/core/arti", rev="029eac8fe7f51e5bbaf65d9c8355cd7504668b9a"} blake2b_simd = {git="https://github.com/parazyd/blake2_simd", branch="impl-common"}