[workspace] default-members = [".", "rpc", "cli"] members = [".", "rpc", "cli"] [package] name = "lnp_node" description = "LNP node" version = "0.9.1" authors = ["Dr. Maxim Orlovsky "] license = "MIT" keywords = ["bitcoin", "bifi", "lightning-network", "smart-contracts", "lnp"] edition = "2021" rust-version = "1.59.0" readme = "README.md" build = "build.rs" exclude = [".github", "Dockerfile", ".dockerignore", "contrib", "doc"] [lib] name = "lnp_node" [[bin]] name = "lnpd" required-features = ["server"] [[bin]] name = "peerd" required-features = ["server"] [[bin]] name = "watchd" required-features = ["server"] [[bin]] name = "routed" required-features = ["server"] [[bin]] name = "channeld" required-features = ["server"] [[bin]] name = "signd" required-features = ["server"] [dependencies] # LNP/BP crates amplify = "3.14.1" strict_encoding = { version = "0.9.0-rc.2", features = ["miniscript"] } bitcoin_scripts = "0.9.0" bitcoin_blockchain = "0.9.0" descriptor-wallet = { version = "0.9.0", features = ["keygen", "miniscript", "electrum", "sign", "construct"] } lnpbp = "0.9.0" lnp-core = "0.9.1" lnp_rpc = { version = "0.9.1", path = "./rpc" } internet2 = { version = "0.9.0", features = ["keygen"] } microservices = { version = "0.9.0", default-features = false, features = ["node", "peer"] } # Bitcoin bitcoin = { version = "0.29.2", features = ["rand"] } miniscript = "9.0.0" electrum-client = "0.12.0" lightning-invoice = "0.21.0" # OS serde = "1" serde_json = "1" chrono = "0.4" nix = "0.24" log = { version = "0.4", features = ["max_level_trace", "release_max_level_debug"] } env_logger = "0.7" clap = { version = "~3.2.23", optional = true, features = ["env", "derive"] } settings = { version = "0.10", package = "config", optional = true } configure_me = { version = "0.4", optional = true } dotenv = { version = "0.15", optional = true } colored = "2.0.0" shellexpand = { version = "2", optional = true } rpassword = { version = "5.0.1", optional = true } # IPC zmq = { package = "zmq2", version = "0.5.0" } [dev-dependencies] strict_encoding_test = "0.9.0" [build-dependencies] amplify = "3.13.0" lnpbp = "0.9.0" bitcoin = "0.29.2" lightning-invoice = "0.21.0" lnp-core = "0.9.1" lnp_rpc = { version = "0.9.1", path = "./rpc" } internet2 = "0.9.0" microservices = { version = "0.9.0", default-features = false, features = ["peer", "shell"] } clap = { version = "~3.2.23", features = ["env", "derive"] } clap_complete = "~3.2.5" log = { version = "0.4", features = ["max_level_trace", "release_max_level_debug"] } shellexpand = "2" configure_me_codegen = "0.4" # Recommended set of features: # 1. Standalone node: `server` (=`node`+`shell`) # 2. Cli to remote node: `cli` (auto includes `shell` and `integration`) # 3. Mobile app talking to a server: `client` # 4. Mobile app with embedded node: `embedded` (auto includes `client` + `node`) # 5. Simple cli utility app: `shell` [features] default = ["server", "bolt", "bifrost"] all = ["server", "tor"] # "rgb" bolt = ["lnp-core/bolt", "lnp_rpc/bolt"] bifrost = ["lnp-core/bifrost", "lnp_rpc/bifrost"] # Server is a standalone application that runs daemons. # Required for all apps that can be launched from command-line shell as binaries # (i.e. both servers and cli) server = ["microservices/server", "microservices/cli", "dotenv", "clap", "settings", "configure_me", "amplify/parse_arg", "shellexpand", "rpassword"] # Embedded is an app that contains embedded node and that talks to it through # integration layer embedded = ["microservices/embedded"] tor = ["microservices/tor", "internet2/tor"] [package.metadata.configure_me] spec = "config_spec.toml"