JSPM

  • Created
  • Published
  • Downloads 15
  • Score
    100M100P100Q106467F
  • License MIT

Spawn and control LN Docker daemons

Package Exports

  • ln-docker-daemons
  • ln-docker-daemons/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ln-docker-daemons) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

LN Docker Daemons

Spawn and run LN Docker daemons

Example:

const {authenticatedLndGrpc, getIdentity} = require('ln-service');
const {spawnLightningDocker} = require('ln-docker-daemons');

const {cert, kill, macaroon, socket} = spawnLightningDocker({});

const {lnd} = authenticatedLndGrpc({cert, macaroon, socket});

// Fetch the identity public key of the LND node
const publicKey = (await getIdentity({lnd})).public_key;

await kill({});

Environment Variables

  • DOCKER_LND_VERSION: set this to use a custom LND docker image

Example:

export DOCKER_LND_VERSION="v0.14.0-beta"

spawnBitcoindDocker

Spawn a Bitcoin Core Docker image

{
  p2p_port: <P2P Port Number>
  rpc_port: <RPC Port Number>
  zmq_block_port: <ZMQ Blocks Port Number>
  zmq_tx_port: <ZMQ Transactions Port Number>
}

@returns via cbk or Promise
{
  host: <Host String>
  kill: ({}, [cbk]) => <Kill Promise>
  rpc_pass: <RPC Password String>
  rpc_user: <RPC Username String>
}

Example:

const {spawnBitcoindDocker} = require('ln-docker-daemons');

// Launch a Bitcoind Docker image
const {kill} = spawnBitcoindDocker({
  p2p_port: 2345,
  rpc_port: 3456,
  zmq_block_port: 4567,
  zmq_tx_port: 5678,
});

// Stop the image
await kill({});

spawnLightningCluster

Spawn a cluster of nodes

{
  [lnd_configuration]: [<LND Configuration Argument String>]
  [size]: <Total Lightning Nodes Number>
}

@returns via cbk or Promise
{
  nodes: [{
    generate: ({address, [count]}) => {}
    id: <Node Public Key Hex String>
    kill: <Kill Function> ({}, cbk) => {}
    lnd: <Authenticated LND API Object>
    socket: <Node Socket String>
  }]
}

Example:

const {createChainAddress, getIdentity} = require('lightning');
const {spawnLightningCluster} = require('ln-docker-daemons');

// Launch a lightning node
const {nodes} = await spawnLightningCluster({});
const [{lnd, generate, kill}] = nodes;

const publicKey = (await getIdentity({lnd})).public_key;

// Generate some coins for the wallet
await generate({count: 500});

// Stop the image
await kill({});

spawnLightningDocker

Spawn an LND Docker

{
  chain_p2p_port: <Chain Network P2P Listen Port Number>
  chain_rpc_port: <Chain Node RPC Port Number>
  chain_zmq_block_port: <Chain Node ZMQ Blocks Port Number>
  chain_zmq_tx_port: <Chain Node ZMQ Transactions Port Number>
  generate_address: <Generate Blocks to Address String>
  lightning_p2p_port: <Lightning Network P2P Listen Port Number>
  lightning_rpc_port: <Lightning Node RPC Port Number>
  [lnd_configuration]: [<LND Configuration Argument String>]
}

@returns via cbk or Promise
{
  add_chain_peer: <Add Peer Function> ({socket}) => {}
  cert: <LND Base64 Serialized TLS Cert>
  chain_socket: <Chain P2P Socket String>
  kill: ({}, [cbk]) => <Kill LND Daemon Promise>
  ln_socket: <LN P2P Socket String>
  macaroon: <LND Base64 Serialized Macaroon String>
  public_key: <Identity Public Key Hex String>
  socket: <LND RPC Host:Port Network Address String>
}