Bitcoin / Installation d'un nœud Lightning mainnet avec bitcoind et lnd 0.4-beta
Installation d’un noeud lightning mainnet bitcoind (au lieu de btcd) + lnd 0.4-beta 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 :
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/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/chainstate/
- ~/.bitcoin/blocks/
Lnd
Prérequis
Installation de Go et git :
sudo apt-get install golang-1.10 git
Mise à jour du PATH :
echo 'export GOPATH=~/gocode' >> $HOME/.profile
export GOPATH=~/gocode
echo 'export PATH=$PATH:$GOPATH/bin:/usr/lib/go-1.10/bin' >> $HOME/.profile
export PATH=$PATH:$GOPATH/bin:/usr/lib/go-1.10/bin
Installation de dep :
go get -u github.com/golang/dep/cmd/dep
Installation
git clone https://github.com/lightningnetwork/lnd $GOPATH/src/github.com/lightningnetwork/lnd
cd $GOPATH/src/github.com/lightningnetwork/lnd
dep ensure
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.mainnet=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
Notez la seed.
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 BTC
Vous savez comment.
Connexion à un autre nœud
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.