A NodeJs package for LDK Node, a ready-to-go Lightning node library built using LDK and BDK.
LDK Node is a non-custodial Lightning node. Its central goal is to provide a small, simple, and straightforward interface that enables users to easily set up and run a Lightning node with an integrated on-chain wallet. While minimalism is at its core, LDK Node aims to be sufficiently modular and configurable to be useful for a variety of use cases.
The primary abstraction of the library is the Node, which can be retrieved by setting up and configuring a Builder to your liking and calling build(). Node can then be controlled via commands such as start, stop, connectOpenChannel, sendPayment, etc.:
This release covers the same API from LDK Node 0.1.0 Rust. It has support for sourcing chain data via an Esplora server, filesystem persistence, gossip sourcing via the Lightning peer-to-peer network, and configurable entropy sources for the integrated LDK and BDK-based wallets.
Please note: This release is considered experimental, and should not be run in production
Using npm:
npm i ldk-nodeUsing yarn:
yarn add ldk-nodeimport{LogLevel,Network,Config,Builder,NetAddress,Node}from'ldk-node';// ....// Your preferred `Esplora` urlconstesploraUrl=https://blockstream.info/testnet/api;letstorageDirPath=`temp`letlogDirPath=`${storageDirPath}/logs`letlisteningAddress=newNetAddress('127.0.0.1',2000)// configuration options for the nodeconstconfig=newConfig(storageDirPath,logDirPath,Network.Regtest,listeningAddress,12,12,12,12,12,LogLevel.Debug)constbuilder=newBuilder().fromConfig(config);builder.setEsploraServer(esploraUrl);// Build nodeconstnode: Node=builder.build();// Starting the nodenode.start();// Syncing the nodenode.syncWallets();// get total onChain balanacenode.totalOnchainBalanceSats()- Setting up a local Esplora instance for testing: https://bitcoin.stackexchange.com/questions/116937/how-do-i-setup-an-esplora-instance-for-local-testing/116938#116938