8个版本
0.2.0 | 2022年10月31日 |
---|---|
0.1.6 | 2022年10月22日 |
0.1.5 | 2022年9月6日 |
0.1.4 | 2022年7月22日 |
#9 in #lnd
每月下载量158
在2 crates中使用
84KB
690 行
Tonic LND客户端
Rust实现,使用异步gRPC库tonic_openssl
实现LND RPC客户端。
关于
警告:此crate处于早期开发阶段,可能存在未知问题!在使用主网资金之前请仔细检查!
此crate使用tonic_openssl
和prost
实现LND GRPC。除了在写作时保持最新之外(:D),它还允许使用async
。它包含供应商的*.proto
文件,因此不需要LND源代码,但接受环境变量LND_REPO_DIR
来覆盖供应商的*.proto
文件。这可以用来测试未发布的lnd
中的新功能。(实际上,使用此库的动机项目就是这样。) :))
使用方法
除了将crate添加到您的Cargo.toml
之外,无需进行任何设置。如果需要更改生成客户端的*.proto
文件,请在构建期间将环境变量LND_REPO_DIR
设置为包含克隆lnd
的目录。
这里是一个从LND(Lightning Network Daemon)获取信息的示例([getinfo](https://api.lightning.community/#getinfo)
调用)。您可以在仓库根目录找到相同的示例,方便您使用。
// This program accepts four arguments: host, port, cert file, macaroon file
#[tokio::main]
async fn main() {
let mut args = std::env::args_os();
args.next().expect("not even zeroth arg given");
let host = args
.next()
.expect("missing arguments: host, port, cert file, macaroon file");
let port = args
.next()
.expect("missing arguments: port, cert file, macaroon file");
let cert_file = args
.next()
.expect("missing arguments: cert file, macaroon file");
let macaroon_file = args.next().expect("missing argument: macaroon file");
let host: String = host.into_string().expect("host is not UTF-8");
let port: u32 = port
.into_string()
.expect("port is not UTF-8")
.parse()
.expect("port is not u32");
let cert_file: String = cert_file.into_string().expect("cert_file is not UTF-8");
let macaroon_file: String = macaroon_file
.into_string()
.expect("macaroon_file is not UTF-8");
// Connecting to LND requires only host, port, cert file, macaroon file
let mut client = tonic_openssl_lnd::connect(host, port, cert_file, macaroon_file)
.await
.expect("failed to connect");
let info = client
.lightning()
// All calls require at least empty parameter
.get_info(tonic_openssl_lnd::lnrpc::GetInfoRequest {})
.await
.expect("failed to get info");
// We only print it here, note that in real-life code you may want to call `.into_inner()` on
// the response to get the message.
println!("{:#?}", info);
}
许可证
MITNFA
依赖项
约12-23MB
约332K SLoC