LNSwap Documentation
  • 👋Welcome
  • 🚀Widget Quick Start
  • 📘Swap Provider's Guide
    • 1️⃣Prepare Operating System
    • 2️⃣Install Nodes
    • 3️⃣Deploy Client
    • 4️⃣Deploy Dashboard
  • ⌨️Bridge Runner's Guide
    • 1️⃣Prepare Server
    • 2️⃣Install Nodes
    • 3️⃣Deploy Backend
    • 4️⃣Deploy Frontend
  • Links
    • Discord
    • Twitter
    • Github
Powered by GitBook
On this page
  • Node Setup
  • Bitcoin
  • Lightning
  • Stacks
  1. Bridge Runner's Guide

Install Nodes

PreviousPrepare ServerNextDeploy Backend

Last updated 3 years ago

Node Setup

LN-STX Bridge requires 3 nodes to function.

  • Bitcoin full node, unpruned and with tx-index enabled.

  • LND lightning node

  • Stacks blockchain node

In the future it could be possible to run the bridge with a pruned node or by utilizing an external Stacks Node API but currently the most stable method is hosting all required nodes on the same server.

Bitcoin

There are many ways to run a bitcoin node and even other implementations but this bridge uses the default reference implementation.

For security and verification purposes no download links are provided here. Instead it's recommended to visit the , preferably and always verify that the software downloaded is the one signed by bitcoin-core maintainers by checking the signatures.

// add bitcoin.conf
vim ~/.bitcoin/bitcoin.conf
testnet=0
server=1
daemon=1
txindex=1
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333
rpcbind=127.0.0.1
rpcallowip=127.0.0.1/32

// unpack and run bitcoind
tar zxvf bitcoin-22.0-x86_64-linux-gnu.tar.gz
cd bitcoin-22.0/
bitcoind 

Lightning

LND is one of many lightning implementations. There are plans to swap LND in the future with c-lightning but currently since it provides built-in hold invoice support it is the Lightning Network implementation that is being used in the bridge.

// add lnd.conf
vim ~/.lnd/lnd.conf
[Application Options]
externalip=xx.xx.xx.xx // public IP of your server
listen=localhost:9735
alias=<your optional alias>

// only if you have installed tor and want to run your lightning node on tor
[tor] 
tor.active=1
tor.v3=1

// unpack and run lnd
tar zxvf lnd-linux-amd64-v0.12.0-beta.tar.gz
cd lnd-linux-amd64-v0.12.0-beta
vim startlnd.sh
nohup ./lnd --bitcoin.active --bitcoin.mainnet --accept-keysend \
       --bitcoin.node=bitcoind &
chmod +x startlnd.sh
./startlnd.sh

Remember to track logs and node status throughout the activity.

For instance you need to manually create or import a seed for LND. You can do so with lncli create or lncli unlock commands.

Stacks

A full stacks node with websocket access is required for the bridge to function. In the future there may be other providers so this requirement is removed but as of now, stacks node is needed.

// install docker-compose
VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | jq .name -r)
DESTINATION=/usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m) -o $DESTINATION
sudo chmod 755 $DESTINATION

// clone stacks-blockchain container
git clone https://github.com/stacks-network/stacks-blockchain-docker && cd ./stacks-blockchain-docker

cp sample.env .env

./manage.sh mainnet pull
./manage.sh mainnet up

Once all nodes are started, it can take some hours until Bitcoin node synchronizes and reaches the chain tip. Stacks node can take multiple days. Be patient and regularly check with the below commands until all nodes are synchronized.

bitcoin-cli getblockchaininfo

curl -sL localhost:3999/v2/info | jq .

Visit releases page and download the latest supported version (as of now, v0.12.0-beta)

There's a quite straightforward way to jump-start it as detailed in this .

⌨️
2️⃣
official website
github repository
LND github repository
repository