Taller - Montar un nodo Bitcoin

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
2.507
Zanx
3.034
¿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
3.862
Zanx
5.224
¿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
2.507
Zanx
3.034
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
1.476
Zanx
1.704
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
1.830
Zanx
3.726
Ubicación
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
1.476
Zanx
1.704
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
2.507
Zanx
3.034
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
1.476
Zanx
1.704
¿ 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
1.830
Zanx
3.726
Ubicación
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
1.830
Zanx
3.726
Ubicación
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 .lnd
b) Descargar el cliente desde el repositorio de LND:

Código:
wget [URL]https://github.com/lightningnetwork/lnd/releases/download/v0.4.2-beta/lnd-linux-arm-v0.4.2-beta.tar.gz[/URL]
el foro burbuja. info acorta el enlace, aseguraros, después del comando "wget" copiar el enlace completo, tal y como aparece recuadrado en rojo en la imagen:



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 (aquí ocurre lo mismo que en el paso b), el foro acorta el enlace):

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




d) Desempaquetar y descomprimir el archivo descargado:

Código:
tar -xzf lnd-linux-arm-v0.4.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-arm-v0.4.2-beta/*
f) Si la instalación ha sido correcta, al introducir el comando...

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



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=true
maxpendingchannels=2
externalip=ipexternadenuestrorouter
alias=elaliasconelquequeramosaparecerenlared
color=#1d8c09
bitcoin.node=bitcoind
bitcoind.rpcuser=elmismoqueestepuestoenbitcoinconf
bitcoind.rpcpass=elmismoqueestepuestoenbitcoinconf
bitcoind.zmqpath=tcp://127.0.0.1:18504
autopilot.active=1
autopilot.maxchannels=15
autopilot.allocation=0.9
Importante: Los campos "bitcoind.rpcuser" y "bitcoind.rpcpass" deben ser los mismos que configuramos en el paso 13 del post 109

Las tres ultimas líneas son para activar y configurar autopilot, que es una forma sencilla de apoyar la red Lightning; de esta forma es el nodo, viendo las necesidades de la red, el que administra el porcentaje de los fondos que le digas.
Explicación de cada uno de los comandos:

El primer comando activa autopilot.
El segundo indica el maximo número de canales que podrian abrirse usando autopilot.
El tercero indica el porcentaje del saldo que quieres dedicar; 0.9 seria el 90%

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

Ejecutar LND por primera vez

a) Instalamos "screen" que nos va a permitir abrir varias sesiones con nuestro usuario "pi" dentro de la sesión principal. Así, aunque cerremos Putty, LND se seguirá ejecutando (sino, al no estar LND como proceso, al cerrar Putty, LND se cerraría también):

Código:
sudo apt-get install screen
b) Abrimos una sesión nueva escribiendo:
Código:
screen
Nos saldrá un mensaje informativo y pulsamos la tecla "espacio"

c) En esta nueva sesión lanzamos LND:

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



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; pero esto y el resto de comandos han de hacerse fuera de la terminal que hemos abierto en el paso "b)". Para salir de la terminal sin cerrar lo que dentro de ella se esta ejecutando, pulsamos la tecla "Control" y sin soltarla pulsamos primero la tecla "A", la soltamos, y luego la tecla "D", de esta forma habremos salido (que no cerrado) de la terminal. Una vez estemos fuera, creamos la nueva cartera Bitcoin en el cliente LND:

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.



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 entrando en la terminal donde se esta ejecutanto LND. Para entrar lo hacemos con el comando "screen -r" (para salir lo explico en el paso e)

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

HASTA AQUI POR AHORA. PERO CONTINUARA... ;)
 

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
2.507
Zanx
3.034
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
1.830
Zanx
3.726
Ubicación
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
1.476
Zanx
1.704
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:
[email protected]:~ $ 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.
[email protected]:~ $
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
1.830
Zanx
3.726
Ubicación
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:
[email protected]:~ $ 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.
[email protected]:~ $
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:
Arriba Pie