4 releases

0.1.4 Aug 10, 2023
0.1.3 Aug 6, 2023
0.1.2 Aug 6, 2023
0.1.0 Aug 3, 2023

#13 in #lnd

MIT/Apache

35KB
867 lines

#Lightning Cluster

A load balanching and caching service for production lightning nodes.

#[tokio::main]
async fn main() {
    let node1 = Node {
        pubkey: dotenvy::var("NODE1_PUBKEY").unwrap(),
        ip: dotenvy::var("NODE1_IP").unwrap(),
        port: dotenvy::var("NODE1_PORT").unwrap(),
        network: NodeNetwork::Testnet,
        lightning_impl: NodeLightningImpl::Lnd,
        client: NodeClient::Lnd(LndClient::new(
            dotenvy::var("NODE1_HOST").unwrap(),
            dotenvy::var("NODE1_CERT_PATH").unwrap(),
            dotenvy::var("NODE1_MACAROON_PATH").unwrap(),
        )),
    };

    let nodes = vec![node1];
    let cluster = cluster::Cluster::new(nodes);

    let req = ClusterAddInvoice {
        pubkey: None,
        memo: String::from("test"),
        value: 1000,
        expiry: 1000,
    };

    let invoice = cluster.add_invoice(req, None).await.unwrap();

    let get_invoice = cluster.lookup_invoice(&invoice.r_hash, None).await.unwrap();

    println!("{:?}", get_invoice);
}

Dependencies

~15–32MB
~466K SLoC