Bitcoin / Installation d'un nœud Lightning testnet bitcoind/lnd

|

Installation d’un nœud lightning bitcoind (au lieu de btcd) + lnd sous Ubuntu 16.04.3 server

Pour n’oublier aucune étape, je suis parti d’une machine virtuelle avec une installation vierge et à jour de la distribution. Rien d’autre n’a été installé hormis les groupes logiciels :

  • standard system utilities
  • OpenSSH server

Bitcoind

Installation

sudo apt-add-repository ppa:bitcoin/bitcoin
# appyer sur entrée pour accepter l'avertissement
sudo apt-get update
sudo apt-get install bitcoind

Configuration

mkdir ~/.bitcoin

Création du fichier ~/.bitcoin/bitcoin.conf :

testnet=1
txindex=1
server=1
daemon=1
zmqpubrawblock=tcp://127.0.0.1:18501
zmqpubrawtx=tcp://127.0.0.1:18501
rpcuser=mon_login
rpcpassword=mon_password

Lancement et synchronisation de la blockchain

On peut désormais lancer bitcoind et attendre que la chaîne se synchronise.

bitcoind

On peut suivra l’avancement de la synchro via :

tail -f ~/.bitcoin/testnet3/debug.log

On peut aussi récupérer la blockchain d’un autre bitcoind déjà synchronisé. Il s’agit des répertoires suivants :

  • ~/.bitcoin/testnet3/chainstate/
  • ~/.bitcoin/testnet3/blocks/

Lnd

Prérequis

Installation de Go et git :

sudo apt-get install golang-1.9 git

Mise à jour du PATH :

echo 'export GOPATH=~/gocode' >> $HOME/.profile
export GOPATH=~/gocode
echo 'export PATH=$PATH:$GOPATH/bin:/usr/lib/go-1.9/bin' >> $HOME/.profile
export PATH=$PATH:$GOPATH/bin:/usr/lib/go-1.9/bin

Installation de Glide :

go get -u github.com/Masterminds/glide

Installation

git clone https://github.com/lightningnetwork/lnd $GOPATH/src/github.com/lightningnetwork/lnd
cd $GOPATH/src/github.com/lightningnetwork/lnd
glide install
go install . ./cmd/...

Configuration

mkdir ~/.lnd

Création d’un fichier ~/.lnd/lnd.conf :

[Application Options]
debuglevel=info
debughtlc=true
maxpendingchannels=10
externalip=mon_ip_externe:9735
listen=localhost:9735
alias=mon node lightning

[Bitcoin]
bitcoin.active=1
bitcoin.node=bitcoind
bitcoin.testnet=1

Pas besoin de préciser les paramètres de connexion à bitcoind, lnd va automatiquement les récupérer depuis ~/.bitcoin/bitcoin.conf.

On doit d’assurer que le port 9735 est bien accessible depuis internet (redirection de port à mettre en place si nécessaire).

Lancement

lnd

Création d’un wallet Bitcoin (on doit choisir un mot de passe) :

lncli create

Si on relance lnd par la suite, il faudra déverrouiller le wallet via :

lncli unlock

Génération d’une adresse Bitcoin

lncli newaddress np2wkh

Bien noter cette adresse car elle ne sera pas affichée ultérieurement.

Alimenter l’adresse en tBTC (testnet bitcoins)

Via ce faucet par exemple : https://testnet.manu.backend.hamburg/faucet

Connexion à un autre nœud

On peut trouver des adresses de nœuds sur https://explorer.acinq.co

lncli connect 03f113414ebdc6c1fb0f33c99cd5a1d09dd79e7fdf2468cf1fe1af6674361695d2@51.15.213.104:9735

Création d’un channel

On alloue dans cet exemple 300000 satoshis au nouveau channel.

lncli openchannel 02464bfaaae78b98268a6a6d7e8f6a110c60dd1293811d6029b11ee9edb4bbf869 --local_amt 300000

A partir d’ici, on peut effectuer des paiements, se connecter à d’autres nœuds, ouvrir de nouveaux channels etc.

Ressources