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

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
¿Estas seguro que si no le específicas el número máximo de conexiones entrantes te coge 8? Ahora no lo puedo probar pero yo creo que no. Si no se lo específicas te coge el máximo posible (125); estoy un 99,99% seguro. Las 8 conexiones por defecto son las salientes, pero entrantes 125.

Sobre lo la dbcache, tengo el parámetro 1000 puesto en la raspberry porque al igual que tu lo tenia en 100 y vi que si lo ponía a 1000 el nodo sincroniza más rápido. De hecho, la recomendación es:
"Recommend setting as high as possible based upon machine's available RAM."

Hmm pues puede que tengas razón... pensé que 8 era el maximo de conexiones totales, no solo el de salientes. Pero yo lo probaria de todos modos a ver si se le soluciona el problema.

El dbcache si que interesa tenerlo lo más alto posible para que sincronice más rapido, pero es que en una raspberry que solo tiene 1GB de RAM si le pones el dbcache a 1GB lo que va a pasar es que o bien el proceso crashee por un out of memory o en el caso de que tengas swap que se pase el dia volcando y leyendo del disco. Además una vez que tenemos la blockchain sincronizada ya solo va a hacer falta añadir un bloque cada 10 minutos, no necesitamos mucha velocidad con eso.

---------- Post added 29-jun-2018 at 13:13 ----------

Otra cosa, le has pasado el archivo bitcoin.conf con "txindex=1". @DEREC esto no lo pongas, ya que te obligará a reindexar toda la blockchain.

¿ Pero no lo tiene ya indexado ?
 

tastas

Madmaxista
Desde
25 Dic 2011
Mensajes
6.655
Reputación
11.931
¿Estas seguro que si no le específicas el número máximo de conexiones entrantes te coge 8? Ahora no lo puedo probar pero yo creo que no. Si no se lo específicas te coge el máximo posible (125); estoy un 99,99% seguro. Las 8 conexiones por defecto son las salientes, pero entrantes 125.
Efectivamente, si no especificas límite no tiene límite.
 

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
PD: Tambien para estos casos lo mejor es que le eche un vistazo al debug.log a ver si sale algun error que le de pistas de lo que le está pasando.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.333
Reputación
23.474
He probado lo de la RAM y limitar el nº de conexiones y nada. Tambien he consultado al ISP y dicen que no limitan las conexiones entrantes.

Creo que el tema puede venir por un conflicto entre wifi y Lan y es peor de lo que parecia por que he visto caer las conexiones hasta solo 3 o 4.

Como inicialmente la pi estaba por wifi y luego la pase a eth le quite el SSID y pasword del archivo wpasupplicant para que no conectara, pero parece que esos datos los almacena en algun otro lado por que seguia conectandose. Por tanto, tenia la PI por wifi
con IP asignada por el router y por Lan con IP estatica. No sé en que grado puede afectar esto. De momento como no sabia desctivar el wifi en la PI le he cambiado el password al router.

Voy a revisar un poco todo y seguir haciendo pruebas. Gracias por la ayuda.
 
Última edición:

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
He probado lo de la RAM y limitar el nº de conexiones y nada. Tambien he consultado al ISP y dicen que no limitan las conexiones entrantes.

Creo que el tema puede venir por un conflicto entre wifi y Lan y es peor de lo que parecia por que he visto caer las conexiones hasta solo 3 o 4.

Como inicialmente la pi estaba por wifi y luego la pase a eth le quite el SSID y pasword del archivo wpasupplicant para que no conectara, pero parece que esos datos los almacena en algun otro lado por que seguia conectandose. Por tanto, tenia la PI por wifi
con IP asignada por el router y por Lan con IP estatica. No sé en que grado puede afectar esto. De momento como no sabia desctivar el wifi en la PI le he cambiado el password al router.

Voy a revisar un poco todo y seguir haciendo pruebas. Gracias por la ayuda.
Eso no creo que te este dando problemas, si la wifi y cable tienen el mismo direccionamiento, el trágico saldrá por el cable porque tiene más prioridad.
Yo apostaría porque hay algún problema en el router o proveedor.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.333
Reputación
23.474
Eso no creo que te este dando problemas, si la wifi y cable tienen el mismo direccionamiento, el trágico saldrá por el cable porque tiene más prioridad.
Yo apostaría porque hay algún problema en el router o proveedor.
Pues espero que te equivoques :p, porque al router le he dado mas vueltas que a un pollo asaso:XX: y del ISP no espero demasiada ayuda.

De momento parece que va algo mejor la cosa, lleva 2 horas funcionando bien con 18 conexiones estables (20 max), a ver si aguanta la cosa.

Si sigue dando problemas lo puedo conectar a un wifi movil que tengo y asi
descartar cosas.
 
Última edición:

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
Pues espero que te equivoques :p, porque al router le he dado mas vueltas que a un pollo asaso:XX: y del ISP no espero demasiada ayuda.

De momento parece que va algo mejor la cosa, lleva 2 horas funcionando bien con 18 conexiones estables (20 max), a ver si aguanta la cosa.

Si sigue dando problemas lo puedo conectar a un wifi movil que tengo y asi
descartar cosas.

¿ Tienes configurado bitcoind para que arranque automaticamente en caso de caida ?

Porque si es asi se me ocurre que al no haber limitado el numero de conexiones, la raspberry no podia con tantas y bitcoind crasheaba volviendo a arrancar de nuevo, mientras que ahora habiendole puesto un maximo de conexiones, la raspberry puede con ellas y bitcoind se mantiene estable.

Echale un vistazo al debug.log o postealo por aqui que algo veremos seguramente.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.333
Reputación
23.474
¿ Tienes configurado bitcoind para que arranque automaticamente en caso de caida ?

Porque si es asi se me ocurre que al no haber limitado el numero de conexiones, la raspberry no podia con tantas y bitcoind crasheaba volviendo a arrancar de nuevo, mientras que ahora habiendole puesto un maximo de conexiones, la raspberry puede con ellas y bitcoind se mantiene estable.

Echale un vistazo al debug.log o postealo por aqui que algo veremos seguramente.
No me suena que hayamos activado el inicio automatico.

De todas formas creo que ya funciona bien. Lleva 6 horas sin caerse y no he tocado nada en el router respecto a cuando iba mal. Le he subido el limite a 50 conexiones y ahora tengo 24 activas, antes con un limite de 12 tampoco me funcionaba. Igual no os cuadra , pero sigo creyendo que era el tema del wifi, ha sido quitarlo y empezar a ir bien.
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
No me suena que hayamos activado el inicio automatico.

De todas formas creo que ya funciona bien. Lleva 6 horas sin caerse y no he tocado nada en el router respecto a cuando iba mal. Le he subido el limite a 50 conexiones y ahora tengo 24 activas, antes con un limite de 12 tampoco me funcionaba. Igual no os cuadra , pero sigo creyendo que era el tema del wifi, ha sido quitarlo y empezar a ir bien.
Genial DEREC!
Siguiente paso montar un nodo LND en la misma raspberry. En unos días empezamos
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Montar un nodo Lightning Network con la implementación LND

Antes de continuar con la instalación de LND, es necesario que el cliente Bitcoin Core este activo, sincronizado y que el puerto 9735 este abierto/redirigido a la IP de la raspberry.

Instalación

a) Loguearnos a nuestra raspberry y crear un directorio llamado ".lnd"

Código:
mkdir /home/pi/.lnd
b) Descargar el cliente desde el repositorio de LND:

Código:
wget https://github.com/lightningnetwork/lnd/releases/download/v0.5.2-beta/lnd-linux-armv7-v0.5.2-beta.tar.gz

c) 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:

Código:
wget https://github.com/lightningnetwork/lnd/releases/download/v0.5.2-beta/manifest-v0.5.2-beta.txt
wget https://github.com/lightningnetwork/lnd/releases/download/v0.5.2-beta/manifest-v0.5.2-beta.txt.sig
wget https://keybase.io/roasbeef/pgp_keys.asc
sha256sum --check manifest-v0.5.2-beta.txt --ignore-missing
gpg ./pgp_keys.asc
gpg --import ./pgp_keys.asc
gpg --verify manifest-v0.5.2-beta.txt.sig
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 b):

94568


d) Desempaquetar y descomprimir el archivo descargado:

Código:
tar -xzf lnd-linux-armv7-v0.5.2-beta.tar.gz
e) Instalación del cliente:

Código:
sudo install -m 0755 -o root -g root -t /usr/local/bin lnd-linux-armv7-v0.5.2-beta/*
f) Si la instalación ha sido correcta, al introducir el comando...

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

94569

Con estos pasos ya estaría el cliente LND instalado en nuestra raspberry.

Creación del fichero de configuración:

a) Dentro del directorio .lnd, creamos y editamos un fichero llamado lnd.conf

Código:
cd .lnd/
nano lnd.conf
b) En el escribimos las siguientes líneas modificando los campos según nuestros datos:

Código:
bitcoin.active=1
bitcoin.mainnet=1
debuglevel=info
debughtlc=false
maxpendingchannels=2
externalip=2.139.104.61
alias=ipexternadenuestrorouter
color=#1d8c09
bitcoin.node=bitcoind
bitcoind.rpcuser=elmismoqueestepuestoenbitcoinconf
bitcoind.rpcpass=elmismoqueestepuestoenbitcoinconf
bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332
bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333
Importante: Los campos "bitcoind.rpcuser" y "bitcoind.rpcpass" deben ser los mismos que configuramos en el paso 13 del post 109

c) Guardamos los cambios pulsando “Ctrl” + “x” y respondemos “y”

Ejecutar LND por primera vez

a) Ejecutamos:

Código:
lnd &
b) Nos aparecerá el siguiente mensaje:

94582

e) Nos fijamos en la siguiente línea: "Waiting for wallet encryption password. Use `lncli create` to create wallet, or `lncli unlock` to unlock already created wallet." Como es la primera vez que ejecutamos lnd, hay que crear una cartera nueva:

Código:
lncli create
f)

Nos pedirá dos veces una contraseña con la que desbloquear la wallet. Introducimos la misma en la dos ocasiones.

g) Nos preguntara si disponemos de una semilla mnemonic (para restaurar una cartera que hayamos creado en otra ocasión), respondemos "n"

h) Antes de crear la semilla para la cartera, nos preguntara si queremos encriptarla. Si no queremos encriptarla pulsamos "intro", si queremos encriptarla, escribimos una contraseña las dos veces que nos la va a pedir (no tiene que ver con la contraseña del paso f, esto es para encriptar la semilla).

i) Nos mostrara las 24 palabras que deberemos usar (junto con la contraseña del paso h, si aplica) en caso de querer restaurar la cartera. Por supuesto es importante guardar estas 24 palabras y las contraseñas que hayamos usado en estos pasos.

94585

j) En este punto, LND comenzara a sincronizar con la blockchain de nuestro cliente Bitcoin Core. Este proceso lleva unos 30 - 40 minutos y lo podemos ver con el siguiente comando:

Código:
tail -100f /home/pi/.lnd/logs/bitcoin/mainnet/lnd.log

k) Hasta que no acabe la sincronización, es recomendable no ejecutar ningún comando "lncli". Esperamos hasta que acabe.

Comentar que tambien es posible lanzar

HASTA AQUI POR AHORA. PERO CONTINUARA... ;)
 
Última edición:

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
Buen tutorial BMBNCT, gracias por ayudar a la gente a montar un nodo.

Yo simplificaria la parte del screen ya que no es necesario. Simplemente con arrancar el lnd en background añadiendo el simbolo & al final es suficiente:

Código:
lnd &
Con esos puedes cerrar la ventana/salir de la sesion sin problema. Si luego quieres ver el estado en el que se encuentra haces un tail -f al archivo de log:

Código:
tail -100f /home/bitcoin/.lnd/logs/bitcoin/mainnet/lnd.log
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Buen tutorial BMBNCT, gracias por ayudar a la gente a montar un nodo.

Yo simplificaria la parte del screen ya que no es necesario. Simplemente con arrancar el lnd en background añadiendo el simbolo & al final es suficiente:

Código:
lnd &
Con esos puedes cerrar la ventana/salir de la sesion sin problema. Si luego quieres ver el estado en el que se encuentra haces un tail -f al archivo de log:

Código:
tail -100f /home/bitcoin/.lnd/logs/bitcoin/mainnet/lnd.log
Sí. Es otra opción. Yo me acostumbré a usar screen y para ver los ultimos logs me parece quizás más cómodo.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.333
Reputación
23.474
Ya estamos en la batalla otra vez.

Creo que ya tengo la wallet creada, solo que me he metido en un problemilla:D.
He ejecutado varias veces el comando screen y ahora parece que tengo varias instancias funcionando. A ver como me sacais de aqui :D.


Código:
pi@raspberrypi:~ $ screen -r
There are several suitable screens on:
        1721.pts-0.raspberrypi  (20/07/18 20:08:39)     (Detached)
        1615.pts-0.raspberrypi  (20/07/18 20:01:50)     (Detached)
        1569.pts-0.raspberrypi  (20/07/18 20:00:00)     (Detached)
        1472.pts-0.raspberrypi  (20/07/18 19:18:31)     (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
pi@raspberrypi:~ $
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Ya estamos en la batalla otra vez.

Creo que ya tengo la wallet creada, solo que me he metido en un problemilla:D.
He ejecutado varias veces el comando screen y ahora parece que tengo varias instancias funcionando. A ver como me sacais de aqui :D.


Código:
pi@raspberrypi:~ $ screen -r
There are several suitable screens on:
        1721.pts-0.raspberrypi  (20/07/18 20:08:39)     (Detached)
        1615.pts-0.raspberrypi  (20/07/18 20:01:50)     (Detached)
        1569.pts-0.raspberrypi  (20/07/18 20:00:00)     (Detached)
        1472.pts-0.raspberrypi  (20/07/18 19:18:31)     (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
pi@raspberrypi:~ $
Puedes entrar a la que quieras así, por ejemplo a la primera:

screen -r 1721.pts-0.raspberrypi

Para cerrar cualquiera de ellas, entras y escribes 'exit'.
 
Última edición: