Taller - Montar un nodo Bitcoin y LND (Actualizado a Marzo 2019)

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
Como pequeña mejora recomendaria el uso de fallocate en vez de usar dd.

El resultado es el mismo pero muchísimo mas rápido.

Por ejemplo: sudo fallocate -l 2G /mnt/hdd/swapfile
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.361
Reputación
23.694
Prueba con:

sudo dd if=/dev/zero of=/home/pi/.bitcoin/swap/swap.file bs=1M count=2148

Sí te funciona lo corrijo. Eso sí que puede que haya sido fallo mio.

Ahora si que va, ya he terminado con el paso 4 :D
 

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
@bmbnct alguna idea de por que me da este error ?


bitcoin@raspberrypi:~ $ lncli --lnddir=/home/bitcoin/.lnd_testnet create
Input wallet password:
Confirm wallet password:

Do you have an existing cipher seed mnemonic you want to use? (Enter y/n): n

Your cipher seed can optionally be encrypted.
Input your passphrase you wish to encrypt it (or press enter to proceed without a cipher seed passphrase):

Generating fresh cipher seed...

[lncli] unable to generate seed: rpc error: code = Internal desc = connection error: desc = "transport: authentication handshake failed: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "raspberrypi")"
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
@bmbnct alguna idea de por que me da este error ?


bitcoin@raspberrypi:~ $ lncli --lnddir=/home/bitcoin/.lnd_testnet create
Input wallet password:
Confirm wallet password:

Do you have an existing cipher seed mnemonic you want to use? (Enter y/n): n

Your cipher seed can optionally be encrypted.
Input your passphrase you wish to encrypt it (or press enter to proceed without a cipher seed passphrase):

Generating fresh cipher seed...

[lncli] unable to generate seed: rpc error: code = Internal desc = connection error: desc = "transport: authentication handshake failed: x509: certificate signed by unknown authority (possibly because of "x509: ECDSA verification failure" while trying to verify candidate authority certificate "raspberrypi")"
¿Puedes mostrar los archivos bitcoin.conf y lnd.conf? (oculta los user/pass de RPC si quieres)

Otra pregunta, estas, en el mismo nodo, ejecutando lnd en la mainnet y en testnet?
Si sigue siendo así, recuerdo que en ambas redes, el puerto que usaba era el mismo (9735) y deberías, en una de las dos, cambiarlo por otro.
 
Última edición:

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
¿Puedes mostrar los archivos bitcoin.conf y lnd.conf? (oculta los user/pass de RPC si quieres)

Otra pregunta, estas, en el mismo nodo, ejecutando lnd en la mainnet y en testnet?
Si sigue siendo así, recuerdo que en ambas redes, el puerto que usaba era el mismo (9735) y deberías, en una de las dos, cambiarlo por otro.

Ya está solucionado. El problema era que al lncli hay que pasarle el rpcserver. No se por que motivo no lo pilla directamente del lnd.conf (que es de donde me los pilla el lnd al arrancar)

Respondiendo a tu pregunta, tengo en la raspberry corriendo dos nodos bitcoin (uno en mainnet y otro en testnet) y dos nodos lnd (main y test)

El motivo es que quiero programar una web que reciba pagos LN y para las pruebas casi mejor uso la testnet.
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Ya está solucionado. El problema era que al lncli hay que pasarle el rpcserver. No se por que motivo no lo pilla directamente del lnd.conf (que es de donde me los pilla el lnd al arrancar)

Respondiendo a tu pregunta, tengo en la raspberry corriendo dos nodos bitcoin (uno en mainnet y otro en testnet) y dos nodos lnd (main y test)

El motivo es que quiero programar una web que reciba pagos LN y para las pruebas casi mejor uso la testnet.
Yo para arrancar LND ejecuto simplemente lnd. No le paso ningún parámetro. Todo lo coge de lnd.conf

Has mirado BTCpay? Soporta Lightning Network, con la comodidad de que genera automáticamente el código QR del invoice, los productos...
 
Última edición:

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
Yo para arrancar LND ejecuto simplemente lnd. No le paso ningún parámetro. Todo lo coge de lnd.conf

Has mirado BTCpay? Soporta Lightning Network, con la comodidad de que genera automáticamente el código QR del invoice, los productos...

El primer lnd que arranques en una maquina no necesita parametros porque por defecto lo pilla de ~/.lnd/lnd.conf

Pero si quieres correr un segundo nodo, en mi caso porque va en testnet, necesitas pasarle el lnddir y el configfile (debe ser un bug que pasandole el lnddir no pille de ahi dentro el lnd.conf y pille en cambio el lnd.conf de ~/.lnd, abriré un issue por si acaso)

Y luego el problema que tenia era con el lncli que le pasaba el lnddir y con eso era suficiente para que pillara el lnd.conf adecuado pero sin embargo no pilla el rpcserver del fichero de conf y hay que pasarselo tambien.

Lo de BTCPay no lo he probado pero ya que estoy prefiero fiarme de mi propio nodo siempre que pueda.
 

silverwindow

Madmaxista
Desde
6 May 2011
Mensajes
25.724
Reputación
37.579
No seria posible que los que teneis un nodo LN en funcionamiento colgarais una imagen SD que ya este todo configurado?

Luego ya solo cambiando un par de parametros del disco externo,y algunas indicaciones para descargar la BC y el indice en el HDD ya estaria no?
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
El primer lnd que arranques en una maquina no necesita parametros porque por defecto lo pilla de ~/.lnd/lnd.conf

Pero si quieres correr un segundo nodo, en mi caso porque va en testnet, necesitas pasarle el lnddir y el configfile (debe ser un bug que pasandole el lnddir no pille de ahi dentro el lnd.conf y pille en cambio el lnd.conf de ~/.lnd, abriré un issue por si acaso)

Y luego el problema que tenia era con el lncli que le pasaba el lnddir y con eso era suficiente para que pillara el lnd.conf adecuado pero sin embargo no pilla el rpcserver del fichero de conf y hay que pasarselo tambien.

Lo de BTCPay no lo he probado pero ya que estoy prefiero fiarme de mi propio nodo siempre que pueda.
Ok! Sera por eso, dos nodos en la misma maquina nunca he tenido.

Sobre BTCPay, miralo, es un procesador de pagos de código abierto, que necesita tener un nodo LN, no te fías de terceros.
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
PASO 5 - ACTUALIZACION DEL SISTEMA E INSTALACION DEL CLIENTE BITCOIN CORE

- ACTUALIZACION DEL SISTEMA

Este paso es recomendable realizarlo cada dos meses, por ejemplo, para mantener el sistema operativo actualizado; se realiza con un par de comandos:

a) Descargar la lista actualizada de paquetes disponibles:

sudo apt-get update



b) Actualizar los paquetes instalados en nuestro sistema; pulsamos "Y" cuando nos pregunte si queremos actualizar (este paso tarda un rato en completarse):

sudo apt-get upgrade




- INSTALACION DEL CLIENTE BITCOIN CORE

Para instalar el cliente de Bitcoin:

a) Descargar el cliente desde bitcoin.org:

Código:
wget https://bitcoin.org/bin/bitcoin-core-0.17.1/bitcoin-0.17.1-arm-linux-gnueabihf.tar.gz

b) Comprobar que el archivo que nos hemos descargado no esta corrupto o manipulado mediante la suma de comprobación (checksum). Para ello introducir uno a uno los siguientes comandos (aquí ocurre lo mismo que en el paso a), el foro acorta el enlace):

Código:
wget https://bitcoin.org/bin/bitcoin-core-0.17.1/SHA256SUMS.asc
wget https://bitcoin.org/laanwj-releases.asc
sha256sum --check SHA256SUMS.asc --ignore-missing
gpg ./laanwj-releases.asc
gpg --import ./laanwj-releases.asc
gpg --verify SHA256SUMS.asc
Ampliar la pantalla del Putty, y comprobar que lo recuadrado en rojo es igual; si lo es, el archivo es correcto (lo habitual un 99,99% de las veces), sino, empezar de nuevo en el paso a):

94554


c) Desempaquetar y descomprimir el archivo descargado:

Código:
tar -xvf bitcoin-0.17.1-arm-linux-gnueabihf.tar.gz
d) Instalación del cliente:

Código:
sudo install -m 0755 -o root -g root -t /usr/local/bin bitcoin-0.17.1/bin/*
e) Si la instalación ha sido correcta, al introducir el comando...

Código:
bitcoind --version
... nos saldrá lo siguiente:

94556

LISTO, YA TENEMOS EL CLIENTE BITCOIN CORE INSTALADO EN LA RASPBERRY!
 
Última edición:

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.361
Reputación
23.694
Creo que ya tengo el paso 5.

He tenido problemillas con las descargas. A pesar de estar la PI conectada al wifi parecia que no tena acceso a internet. He reseteado el modem y la he conectado por eth en lugar de por wifi (que es donde quedara al final) y ha ido todo bien.
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Sí accedes a la raspberry por wifi y sin embargo no sales a internet, tendrás que revisar dentro del paso 4, los parámetros:

interface wlan0

static ip_address=192.168.1.254/24

static routers=192.168.1.1

static domain_name_servers=1.1.1.1

Sobre todo que "static routers" sea la IP de tu router. O sino prueba a añadir otro DNS más en "static domain_name_servers", el que estés usando con eth0 o uno de Google por ejemplo:

static domain_name_servers=1.1.1.1 8.8.8.8
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.361
Reputación
23.694
Sí accedes a la raspberry por wifi y sin embargo no sales a internet, tendrás que revisar dentro del paso 4, los parámetros:

interface wlan0

static ip_address=192.168.1.254/24

static routers=192.168.1.1

static domain_name_servers=1.1.1.1

Sobre todo que "static routers" sea la IP de tu router. O sino prueba a añadir otro DNS más en "static domain_name_servers", el que estés usando con eth0 o uno de Google por ejemplo:

static domain_name_servers=1.1.1.1 8.8.8.8

Puede que si hubiera un error, de todas formas lo he dejado para que conecte por cable solamente que es como va a estar.
 

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
Parece ser que el txindex no es necesario con lnd. Lo curioso es que con c-lightning nunca fue necesario y ahora acabo de leer un mensaje de roasbeef (principal desarrollador de lnd) donde dice que tampoco es necesario en lnd. No se si se refiere a la ultima version o si es que en realidad nunca fue necesario.

---------- Post added 18-jun-2018 at 22:42 ----------

Remove txindex requirement for full nodes by wpaulino · Pull Request #751 · lightningnetwork/lnd · GitHub

---------- Post added 18-jun-2018 at 22:43 ----------

Remove txindex requirement for full nodes by wpaulino · Pull Request #751 · lightningnetwork/lnd · GitHub
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Con c-lightning que fue la primera que probé en mainnet, no era necesario.
Pero con LND, que la probé en el mismo nodo sin txindex, si lo era (al menos en febrero-marzo), recuerdo que no se confirmaba el saldo y hacia cosas raras; buscando en foros leí que se recomendaba activar txindex, cuando lo hice funciono todo ok. Ahora LND esta más depurada y según el enlace que mandas no parece ser necesario (lo cual me da una alegría porque me facilita el siguiente paso de este hilo ).

Aquí indica que es opcional, pero el nodo va más rápido si se hace (activar txindex es habilitar en el nodo un indice para actuar como explorador de bloques para LND):
lnd/INSTALL.md at master · lightningnetwork/lnd · GitHub

Note that adding --txindex is optional, as it will take longer to sync the node, but then lnd will generally operate faster as it can hit the index directly, rather than scanning blocks or BIP 158 filters for relevant items.
 
Última edición: