-
Notifications
You must be signed in to change notification settings - Fork 18
/
Cargo.toml
64 lines (55 loc) · 2.18 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
[package]
authors = [
"Martin Habovštiak <[email protected]>",
"Aiden McClelland <[email protected]>",
]
description = "Finer-grained permission management for bitcoind."
edition = "2018"
name = "btc-rpc-proxy"
version = "0.4.0"
[lib]
name = "btc_rpc_proxy"
path = "src/lib.rs"
[[bin]]
name = "btc_rpc_proxy"
path = "src/main.rs"
[package.metadata.configure_me]
spec = "config_spec.toml"
[features]
default = ["debug_logs", "systemd"]
debug_logs = ["slog/max_level_debug"]
systemd = ["systemd_socket/enable_systemd"]
[dependencies]
anyhow = "1.0.38"
async-channel = "1.5.1"
base32 = "0.4.0"
base64 = "0.13.0"
bitcoin = { version = "0.26.0", features = ["use-serde"] }
configure_me = { version = "0.4.0" }
futures = "0.3.12"
hex = "0.4.2"
http = "0.2.3"
hyper = { version = "0.14.4", features = ["client", "server", "stream", "http1", "tcp"] }
itertools = "0.10.0"
lazy_static = "1.4.0"
linear-map = { version = "1.2.0", features = ["serde_impl"] }
serde = { version = "1.0.117", features = ["derive"] }
serde_json = "1.0.59"
slog = "2.7.0"
slog-async = "2.6.0"
slog-term = "2.6.0"
socks = "0.3.3"
tokio = { version = "1.0.2", features = ["full"] }
thiserror = "1.0.22"
systemd_socket = { version = "0.1.2", default-features = false, features = ["tokio"] }
[build-dependencies]
configure_me_codegen = "0.4.3"
[package.metadata.deb]
assets = [
["target/release/btc_rpc_proxy", "usr/bin/btc_rpc_proxy", "755"],
["target/man/btc_rpc_proxy.1", "usr/bin/btc_rpc_proxy", "644"],
]
extended-description = """
This is a proxy made specifically for `bitcoind` to allow finer-grained control of permissions. It enables you to specify several users and for each user the list of RPC calls he's allowed to make.
This is useful because `bitcoind` allows every application with password to make possibly harmful calls like stopping the daemon or spending from wallet (if enabled). If you have several applications, you can provide the less trusted ones a different password and permissions than the others using this project.
There's another interesting advantage: since this is written in Rust, it might serve as a filter for **some** malformed requests which might be exploits. But I don't recommend relying on it!"""