[package] name = "vls-proxy" license = "Apache-2.0" version = "0.12.0" authors = ["Devrandom ", "Ken Sedgwick "] edition = "2021" description = "A library for implementing a Lightning signer, which externalizes and secures cryptographic operations." homepage = "https://gitlab.com/lightning-signer/docs/" repository = "https://gitlab.com/lightning-signer/validating-lightning-signer" rust-version = "1.66.0" build = "build.rs" [features] default = ["grpc", "main", "debug"] grpc = ["tokio", "tokio-stream", "tonic", "prost", "async-stream", "url", "backoff"] main = ["clap", "toml", "ctrlc", "fern"] log_pretty_print = ["vls-core/log_pretty_print", "vls-frontend/log_pretty_print", "vls-protocol-signer/log_pretty_print"] debug = ["vls-core/debug", "vls-protocol-signer/debug"] system-test = ["serde_json", "tempfile", "vls-core/test_utils"] heapmon_requests = [] otlp = ["opentelemetry", "opentelemetry_sdk", "opentelemetry-otlp", "opentelemetry-semantic-conventions", "tracing-opentelemetry"] [dependencies] vls-core = { path = "../vls-core", version = "0.12.0", features = ["use_backtrace"] } vls-protocol-signer = { path = "../vls-protocol-signer", version = "0.12.0" } vls-protocol-client = { path = "../vls-protocol-client", version = "0.12.0" } vls-protocol = { path = "../vls-protocol", version = "0.12.0" } vls-frontend = { path = "../vls-frontend", version = "0.12.0" } vls-persist = { path = "../vls-persist", version = "0.12.0", default_features = false, features = ["std", "kvv", "redb-kvv"] } lightning-storage-server = { path = "../lightning-storage-server", version = "0.3.0", default-features = false } nix = "0.26" serde = "1.0" serde_json = { version = "1.0", optional = true } tempfile = { version = "3", optional = true } log = "0.4" time = "=0.3.17" fern = { version = "0.6", features = ["colored"], optional = true } # .4 doesn't compile with 1.45.2 clap = { version = "3.2", optional = true, features = ["derive"] } # match kv dep for now toml = { version = "0.5", optional = true } http = "0.2" tokio = { version = "1.27", features = ["macros", "rt-multi-thread"], optional = true } tokio-stream = { version = "0.1", optional = true } futures = { version = "0.3", default-features = false, features = ["alloc"] } hyper = "0.14" tonic = { version = "0.9", optional = true } prost = { version = "0.11", optional = true } # note that 3.2.4 increments nix dep in a non-semver way to 0.26 ctrlc = { version = "3.2.4", features = ["termination"], optional = true } triggered = "0.1" async-stream = { version = "0.3", optional = true } anyhow = "1.0" thiserror = "1.0" async-trait = "0.1" url = { version = "2.3", optional = true } as-any = "0.3" hex = "0.4" backoff = { version = "0.4", features = ["tokio"], optional = true } lru = "0.11" jsonrpsee = { version = "0.21.0", features = ["server"] } tracing = { version = "0.1.40", features = ["attributes"] } tracing-subscriber = { version = "0.3.18", default-features = false, features = ["tracing-log", "env-filter", "fmt"] } tracing-appender = "0.2.3" opentelemetry = { version = "0.21.0", features = ["trace"], optional = true } opentelemetry_sdk = { version = "0.21.2", features = ["trace", "rt-tokio"], optional = true } opentelemetry-otlp = { version = "0.14.0", optional = true } opentelemetry-semantic-conventions = { version = "0.13.0", optional = true } tracing-opentelemetry = { version = "0.22.0", optional = true } dirs = "4" tower = { version = "0.4.13" } tower-http = { version = "0.4.0", features = ["auth"] } base64 = "0.21.7" [dependencies.heapmon] version = "0.1" #path = "../../../heapmon" #git = "https://gitlab.com/lightning-signer/heapmon" #rev = "a374805e55fa0bd089ff1db18a836e330219bc62" [dependencies.txoo-bitcoind-client] version = "0.7.1" #git = "https://gitlab.com/lightning-signer/txoo" #rev = "d49b25283a5f1db675db20a19b313e5ca7456410" #branch = "main" #path = "../../txoo/bitcoind-client" [dev-dependencies] tempfile = "3" [build-dependencies] tonic-build = "0.9" [lib] name = "vls_proxy" path = "src/lib.rs" # [[bin]] # # A single-binary drop-in replacement for hsmd with an in-process VLS # # AKA cln:inplace # name = "remote_hsmd_inplace" # path = "src/inplace_main.rs" [[bin]] # A drop-in replacement for hsmd, communicating to an embedded VLS over a serial port # AKA cln:serial name = "remote_hsmd_serial" path = "src/serial_main.rs" required-features = ["main"] [[bin]] # A replacement for hsmd, listening to vlsd2 over a gRPC protocol # AKA cln:socket name = "remote_hsmd_socket" path = "src/socket_main.rs" required-features = ["grpc", "main"] [[bin]] # A signer that connects to the node using a gRPC protocol (to remote_hsmd_socket) name = "vlsd2" path = "src/vlsd2_main.rs" required-features = ["grpc", "main"] [[bin]] name = "decode-vls" path = "src/decode-vls.rs" [[test]] name = "frontend_system_test" path = "tests/frontend_system_test.rs" required-features = ["system-test"] [[test]] name = "cloud_system_test" path = "tests/cloud_system_test.rs" required-features = ["system-test"] [[example]] name = "compact_proof" path = "examples/compact_proof.rs"