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

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
1.2 Montar un nodo Lightning Network con la implementación LND compilandolo desde fuentes y teniendo la posibilidad de actualizarlo al ultimo commit

1.- Lo primero que debemos hacer es descargar la versión 1.10 de Go, que sera necesario para compilar lnd. Se realiza siguiendo estos pasos:

- Borramos versiones preinstaladas que podamos tener de Go:

Código:
sudo apt remove golang*
sudo apt-get autoremove
- Descargamos y descomprimimos Go:

Código:
wget https://dl.google.com/go/go1.12.1.linux-armv6l.tar.gz
sudo tar -C /usr/local -xzf go1.12.1.linux-armv6l.tar.gz
- Editamos el archivo ".bashrc":

Código:
nano .bashrc
- Añadimos al final de archivo las siguientes lineas y guardamos:

Código:
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export PATH=$PATH:/usr/local/go/bin
- Cargamos el path a la sesion actual para no tener que salir de la sesion y volver a entrar:

Código:
source .bashrc
- Para comprobar que todo a ido bien, introducimos el comando:

Código:
go version
y deberia mostrar la siguiente linea: "go version go1.12.1 linux/arm"

2.- Instalar git:

Código:
sudo apt-get install git -y
3.- Descargar, descomprimir, compilar e instalar LND. Las siguientes lineas id pegandolas cuando la anterior haya acabado, y la ultima la de "make..." tarda un rato en acabar, recomendaría abrir un screen y ejecutarla ahí para evitar que si se cierra la sesión la compilación quede a medias.

Código:
go get -d github.com/lightningnetwork/lnd
cd $GOPATH/src/github.com/lightningnetwork/lnd
make && make install
4.- En el caso de que ya tuvieramos lnd instalado siguiendo el post numero 145 (Burbuja.info - Foro de economía - Ver Mensaje Individual - Taller - Montar un nodo Bitcoin) de este hilo, deberiamos eliminarla:

Código:
cd  /usr/local/bin
sudo rm -rf lnd
sudo rm -rf lncli
5.- De esta forma ya estaría instalado LND al ultimo commit disponible. Si pasado un tiempo, queremos actualizarlo. Se hace parando lnd y ejecutando lo siguiente:

Código:
cd $GOPATH/src/github.com/lightningnetwork/lnd
git pull
make && make install
 
Última edición:

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Por que instalas go manualmente en vez de usar el repositorio de ubuntu ?
Porque lo probé y no me funcionó. Quizas hice algo mal, ¿a ti te funcionó bien?

Recuerdo que en Ubuntu me resultó, tambien una pesadilla instalar la versión 1.10 de go, que es la que pide lnd. En Ubuntu me funcionó con "sudo snap install --classic go"
 

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
En el nodo que tengo actualmente en la raspberry tengo instalados los binarios, no tengo los fuentes. La primera vez que instale un nodo lnd lo hice en una VM desde los fuentes pero la verdad es que no recuerdo si instalé go manualmente o no.

Voy a probar ahora en la raspberry a ver.

---------- Post added 27-sep-2018 at 15:58 ----------

Vale, ya veo cual es el problema.

En raspbian, el sistema de paquetes tiene la version 1.7 de go

Para lnd hace falta la 1.9 aunque se recomienda la 1.10

En Ubuntu, el sistema de paquetes ya viene con la 1.10 por lo que ahi no habria problema.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.357
Reputación
23.651
Ya he instalado lnd 5. Parece que esta sincronizando, lo dejare asi lo que haga falta.

Me daba este error :loadConfig: debug-htlc mode cannot be used on bitcoin mainnet.

He tenido que quitar el "debughtlc" para que arrancara.

Lo que comentas de compilar desde fuentes ¿para que vale exactamente?, no acabo de verlo.

A ver si este finde me meto con lo de ZAP, tiene buena pinta.

Al final he conseguido que funcione el script de raspibolt 8:8:

 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Ya he instalado lnd 5. Parece que esta sincronizando, lo dejare asi lo que haga falta.

Me daba este error :loadConfig: debug-htlc mode cannot be used on bitcoin mainnet.

He tenido que quitar el "debughtlc" para que arrancara.

Lo que comentas de compilar desde fuentes ¿para que vale exactamente?, no acabo de verlo.

A ver si este finde me meto con lo de ZAP, tiene buena pinta.

Al final he conseguido que funcione el script de raspibolt 8:8:

Upps error mio. Si, debughtlc ya no se soporta en lnd 0.5. Mañana lo corrijo en el hilo que ahora esto desde el móvil.

Compilar desde fuentes te permite poder actualizar lnd sin esperar a la siguiente versión compilada. Por ejemplo ahora mismo el último commit (¿alguien sabe como se traduce commit al castellano?) es de hace dos dias:


GitHub - lightningnetwork/lnd: Lightning Network Daemon

Y sin embargo la versión 0.5 de LND salio hace nueve.

De todas formas hay que andarse con ojo, ya que a veces las versiones no oficiales pueden traer fallos. Es interesante actualizar si ves que trae una mejora que quieras aplicar sin esperar a la versión final.

Ahora que me fijo, no tienes ningún canal aun abierto!!
 
Última edición:

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
Un commit es un cambio o añadido que se hace a un archivo y se sube al repositorio. Yo no lo traduciria.

Ya hay 34 commits respecto a la ultima release (0.5) basicamente son mejoras, correcciones de errores y nuevas funcionalidades. Cuando se considera que se han hecho cambios suficientes y relevantes y se consideran estables se saca una nueva release.

Aqui se pueden ver los commits que se han hecho desde la release 0.5: Comparing v0.5-beta...master · lightningnetwork/lnd · GitHub

Compilarlo por ti mismo te permite estar a la ultima sin tener que esperar a que saquen una nueva release. Pero tambien hay que tener en cuenta que puede ser inestable.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.357
Reputación
23.651
He estado enredando un poquito este finde, pese a las dudas, de momento no he roto nada. :D

Esto es lo que he hecho:

- He probado en core comandos varios. Los mas utiles o al menos los que intuia para que eran.

- He enviado una transaccion desde mi monedero a core y vuelta.

- He creado una direccion nueva en lnd y he transferido saldo desde core. Ahi lnd se ha empezado a mover y me ha
creado canales ( bueno, solo 1:mad:). Aqui ya veia mi nodo desde los exploradores. El que solo me cree un canal
¿sera por el saldo bajo? (200.000 sat)

- He trasteado un poquito en lnd con comandos faciles, balance, saldos, canales...

- Ya puestos, me he decidido a gastar dinerito. Lo primero que he encontrado es una pagina de tragaperras o:) . He
comprado 50 tiradas por 7500 sat. Le das al boton te sale el invoice, lo copio y aqui me he atascado. Me ha
costado construir el pago por que lo hacia con sendpayment, luego me he dado cuenta que con payinvoice es mas facil.
Creo que el pago no ha tardado ni 1 segundo y ¿fee 0?

Código:
pi ~ ฿ lncli listpayments
{
    "payments": [
        {
            "payment_hash": "a4c1669bcd9aaaf5514d0131f2d0004f5b3f00b829f29ab0ddce6336166ff24e",
            "value": "7585",
            "creation_date": "1538414521",
            "path": [
                "02529db69fd2ebd3126fb66fafa234fc3544477a23d509fe93ed229bb0e92e4fb8",
                "039f01ad62e5208940faff11d0bbc997582eafad7642aaf53de6a5f6551ab73400"
            ],
            "fee": "0",
            "payment_preimage": "a4f4157041a89979e23fcae8cfef0eb440d32bb7791373544c655826bdeb0cce"
- He jugado 25 tiradas y como veia que me arruinaba he probado a sacar el resto. Muy facil, la pagina te generaba el
comando con la cantidad exacta, lo pegas en la consola, te genera el invoice. lo pegas en la web y listo.


Me quedan un par de dudas.

- ¿que saldo hay que meter para que te genere 8-10 canales? De momento he metido solo 10€ porque no veo del todo
claro que backup necesito para recuperar todo al 100% (con canales y todo o al menos la pasta), no se si solo con las
seed valdria.

- Antes de hacer el primer pago el balance ha aumentado en ~ 3500 sat ¿de donde sale esto? Parece que coincidia con el
commit fee. Entiendo que es comision para cerrar los canales onchain, pero ¿no la deberia de restar?

El tema de los saldos y balances es un poco confuso una vez has movido saldo. Si le pides el balance te aparece mucho menos de lo que tienes

Código:
pi ~ ฿ lncli walletbalance
{
    "total_balance": "20371",
    "confirmed_balance": "20371",
    "unconfirmed_balance": "0"

Sile pides chanels ya se parece mas a la realidad, ahi esta el commit fee que comentaba.


Código:
pi ~ ฿ lncli listchannels
{
    "channels": [
        {
            "active": true,
            "remote_pubkey": "02529db69fd2ebd3126fb66fafa234fc3544477a23d509fe93ed229bb0e92e4fb8",
            "channel_point": "e189e7b96abd5e28b3adb96ae30b08dc7d7fecad27446ed094701c48bea239e4:1",
            "chan_id": "597928716942901249",
            "capacity": "188100",
            "local_balance": "182034",
            "remote_balance": "2569",
            "commit_fee": "3497",
            "commit_weight": "724",
            "fee_per_kw": "4830",
            "unsettled_balance": "0",
            "total_satoshis_sent": "7585",
            "total_satoshis_received": "5016",
            "num_updates": "17",
            "pending_htlcs": [
            ],
            "csv_delay": 144,
            "private": false
        }
    ]
}
Y en invoices, hay dos, cuando yo solo he hecho el segundo ¿?

Código:
pi ~ ฿ lncli listinvoices
{
    "invoices": [
        {
            "memo": "",
            "receipt": null,
            "r_preimage": "yM3qhjxkBs+gHU7yE/jYyeb0BLO2OOaKITo1TQ2dNDg=",
            "r_hash": "k9cUYwB9Q7K4Sa+UUZYyTZBHt4fIulHiZGo2JUaE6M0=",
            "value": "0",
            "settled": false,
            "creation_date": "1538414831",
            "settle_date": "0",
            "payment_request": "lnbc1pdmyk80pp5j0t3gccq04pm9wzf4729r93jfkgy0du8eza9rcnydgmz235yarxsdqqcqzys947sksef8zqeyks92cjt2rsst6w6vv5pjhpmkgyqp80j9nnydvqkxdqu5a2aqjfr6dpf26wmdumfsgrctp97a03vsvq0v7pqpqmz46cq85pw9e",
            "description_hash": null,
            "expiry": "3600",
            "fallback_addr": "",
            "cltv_expiry": "144",
            "route_hints": [
            ],
            "private": false,
            "add_index": "1",
            "settle_index": "0",
            "amt_paid": "0",
            "amt_paid_sat": "0",
            "amt_paid_msat": "0"
        },
        {
            "memo": "",
            "receipt": null,
            "r_preimage": "sETj3Ir6oIvsolhsiGqAVuH5Au5LQpGQzc4i0NMMVH8=",
            "r_hash": "DPMmnPAOZb4uIsPBvIRcSgM+3J51iz8WlIM2aRfLo/g=",
            "value": "5016",
            "settled": true,
            "creation_date": "1538415020",
            "settle_date": "1538415042",
            "payment_request": "lnbc50160n1pdmykdvpp5pnejd88spejmut3zc0qmepzufgpnahy7wk9n7955svmxj97t50uqdqqcqzysxqrfcsnus4f02pmza33wpxl4hpv4jfezxfmq8hxaxfycc822h5gvzej9m9p9rg7sa46umsq3vhs0et0mqm7hlt6hlhxfszkuasd9s6l2cdr2sqyakt0e",
            "description_hash": null,
            "expiry": "10000",
            "fallback_addr": "",
            "cltv_expiry": "144",
            "route_hints": [
            ],
            "private": false,
            "add_index": "2",
            "settle_index": "1",
            "amt_paid": "5016000",
            "amt_paid_sat": "5016",
            "amt_paid_msat": "5016000"
        }
    ],
    "last_index_offset": "2",
    "first_index_offset": "1"
 
Última edición:

ninfireblade

Madmaxista
Desde
18 Jul 2008
Mensajes
3.319
Reputación
4.786
Me quedan un par de dudas.

- ¿que saldo hay que meter para que te genere 8-10 canales? De momento he metido solo 10€ porque no veo del todo
claro que backup necesito para recuperar todo al 100% (con canales y todo o al menos la pasta), no se si solo con las
seed valdria.

- Antes de hacer el primer pago el balance ha aumentado en ~ 3500 sat ¿de donde sale esto? Parece que coincidia con el
commit fee. Entiendo que es comision para cerrar los canales onchain, pero ¿no la deberia de restar?

El tema de los saldos y balances es un poco confuso una vez has movido saldo. Si le pides el balance te aparece mucho menos de lo que tienes

Código:
pi ~ ฿ lncli walletbalance
{
    "total_balance": "20371",
    "confirmed_balance": "20371",
    "unconfirmed_balance": "0"

Sile pides chanels ya se parece mas a la realidad, ahi esta el commit fee que comentaba.


Código:
pi ~ ฿ lncli listchannels
{
    "channels": [
        {
            "active": true,
            "remote_pubkey": "02529db69fd2ebd3126fb66fafa234fc3544477a23d509fe93ed229bb0e92e4fb8",
            "channel_point": "e189e7b96abd5e28b3adb96ae30b08dc7d7fecad27446ed094701c48bea239e4:1",
            "chan_id": "597928716942901249",
            "capacity": "188100",
            "local_balance": "182034",
            "remote_balance": "2569",
            "commit_fee": "3497",
            "commit_weight": "724",
            "fee_per_kw": "4830",
            "unsettled_balance": "0",
            "total_satoshis_sent": "7585",
            "total_satoshis_received": "5016",
            "num_updates": "17",
            "pending_htlcs": [
            ],
            "csv_delay": 144,
            "private": false
        }
    ]
}
Y en invoices, hay dos, cuando yo solo he hecho el segundo ¿?

Código:
pi ~ ฿ lncli listinvoices
{
    "invoices": [
        {
            "memo": "",
            "receipt": null,
            "r_preimage": "yM3qhjxkBs+gHU7yE/jYyeb0BLO2OOaKITo1TQ2dNDg=",
            "r_hash": "k9cUYwB9Q7K4Sa+UUZYyTZBHt4fIulHiZGo2JUaE6M0=",
            "value": "0",
            "settled": false,
            "creation_date": "1538414831",
            "settle_date": "0",
            "payment_request": "lnbc1pdmyk80pp5j0t3gccq04pm9wzf4729r93jfkgy0du8eza9rcnydgmz235yarxsdqqcqzys947sksef8zqeyks92cjt2rsst6w6vv5pjhpmkgyqp80j9nnydvqkxdqu5a2aqjfr6dpf26wmdumfsgrctp97a03vsvq0v7pqpqmz46cq85pw9e",
            "description_hash": null,
            "expiry": "3600",
            "fallback_addr": "",
            "cltv_expiry": "144",
            "route_hints": [
            ],
            "private": false,
            "add_index": "1",
            "settle_index": "0",
            "amt_paid": "0",
            "amt_paid_sat": "0",
            "amt_paid_msat": "0"
        },
        {
            "memo": "",
            "receipt": null,
            "r_preimage": "sETj3Ir6oIvsolhsiGqAVuH5Au5LQpGQzc4i0NMMVH8=",
            "r_hash": "DPMmnPAOZb4uIsPBvIRcSgM+3J51iz8WlIM2aRfLo/g=",
            "value": "5016",
            "settled": true,
            "creation_date": "1538415020",
            "settle_date": "1538415042",
            "payment_request": "lnbc50160n1pdmykdvpp5pnejd88spejmut3zc0qmepzufgpnahy7wk9n7955svmxj97t50uqdqqcqzysxqrfcsnus4f02pmza33wpxl4hpv4jfezxfmq8hxaxfycc822h5gvzej9m9p9rg7sa46umsq3vhs0et0mqm7hlt6hlhxfszkuasd9s6l2cdr2sqyakt0e",
            "description_hash": null,
            "expiry": "10000",
            "fallback_addr": "",
            "cltv_expiry": "144",
            "route_hints": [
            ],
            "private": false,
            "add_index": "2",
            "settle_index": "1",
            "amt_paid": "5016000",
            "amt_paid_sat": "5016",
            "amt_paid_msat": "5016000"
        }
    ],
    "last_index_offset": "2",
    "first_index_offset": "1"

- Estas usando el autopilot para abrir canales. Depende de la configuracion que tengas puesta te usara mas o menos saldo para abrir canales e ira abriendo canales hasta que se agote ese saldo. Hay un tamaño minimo por defecto que no recuerdo cual es, pero por lo que comentas y por el saldo bajo que manejas ese es el motivo por el que solo te abre uno. Puedes abrir tambien canales manualmente y poner la cantidad que quieras.

- El commit fee es exactamente eso, la fee para cerrar el canal. Date cuenta que la transaccion para cerrar el canal ya esta creada y la tienen los dos nodos, cuando uno de los dos quiera cerrar no tiene mas que hacerla publica. Esa fee la negocian los dos nodos y se actualiza periodicamente ya que las comisiones en la red de bitcoin van variando. Por tanto cuando miras el balance del canal tienes la cantidad con la que has creado el canal menos el commit fee (y menos lo que ya hayas enviado y mas lo que hayas recibido obviamente)

- Tienes dos balances, uno en tu wallet onchain que puedes ver con lncli walletbalance y otro offchain que es el que tienes en canales abiertos que puedes ver con lncli channelbalance

- Tienes 2 invoices porque has creado 2, no le des mas vueltas (con lncli addinvoice) La primera no esta pagada (settled:false) y la segunda si.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.357
Reputación
23.651
- Estas usando el autopilot para abrir canales. Depende de la configuracion que tengas puesta te usara mas o menos saldo para abrir canales e ira abriendo canales hasta que se agote ese saldo. Hay un tamaño minimo por defecto que no recuerdo cual es, pero por lo que comentas y por el saldo bajo que manejas ese es el motivo por el que solo te abre uno. Puedes abrir tambien canales manualmente y poner la cantidad que quieras.

- El commit fee es exactamente eso, la fee para cerrar el canal. Date cuenta que la transaccion para cerrar el canal ya esta creada y la tienen los dos nodos, cuando uno de los dos quiera cerrar no tiene mas que hacerla publica. Esa fee la negocian los dos nodos y se actualiza periodicamente ya que las comisiones en la red de bitcoin van variando. Por tanto cuando miras el balance del canal tienes la cantidad con la que has creado el canal menos el commit fee (y menos lo que ya hayas enviado y mas lo que hayas recibido obviamente)

- Tienes dos balances, uno en tu wallet onchain que puedes ver con lncli walletbalance y otro offchain que es el que tienes en canales abiertos que puedes ver con lncli channelbalance

- Tienes 2 invoices porque has creado 2, no le des mas vueltas (con lncli addinvoice) La primera no esta pagada (settled:false) y la segunda si.

Tienes razon, habia sido yo :D

Código:
pi ~ ฿ lncli addinvoice
{
        "r_hash": "93d71463007d43b2b849af945196324d9047b787c8ba51e2646a36254684e8cd",
        "pay_req": "lnbc1pdmyk80pp5j0t3gccq04pm9wzf4729r93jfkgy0du8eza9rcnydgmz235yarxsdqqcqzys947sksef8zqeyks92cjt2rsst6w6vv5pjhpmkgyqp80j9nnydvqkxdqu5a2aqjfr6dpf26wmdumfsgrctp97a03vsvq0v7pqpqmz46cq85pw9e",
        "add_index": 1
}
pi ~ ฿ lnbc1pdmyk80pp5j0t3gccq04pm9wzf4729r93jfkgy0du8eza9rcnydgmz235yarxsdqqcqzys947sksef8zqeyks92cjt2rsst6w6vv5pjhpmkgyqp80j9nnydvqkxdqu5a2aqjfr6dpf26wmdumfsgrctp97a03vsvq0v7pqpqmz46cq85pw9e^C
pi ~ ฿ ^C
pi ~ ฿ lncli addinvoice --amt 5016 --expiry 10000
{
        "r_hash": "0cf3269cf00e65be2e22c3c1bc845c4a033edc9e758b3f169483366917cba3f8",
        "pay_req": "lnbc50160n1pdmykdvpp5pnejd88spejmut3zc0qmepzufgpnahy7wk9n7955svmxj97t50uqdqqcqzysxqrfcsnus4f02pmza33wpxl4hpv4jfezxfmq8hxaxfycc822h5gvzej9m9p9rg7sa46umsq3vhs0et0mqm7hlt6hlhxfszkuasd9s6l2cdr2sqyakt0e",
        "add_index": 2
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
1.3 Utilizar Tor como proxy para Bitcoin Core y LND; de esta forma ocultamos nuestra IP publica y la conexiones se realizan a traves de la red tor.

La realización de los siguientes pasos suponen que ya disponemos de Bitcoin Core y LND instalado y sincronizado.


1.- Detener los servicios de Bitcoind y LND.

Código:
bitcoin-cli stop
lncli stop
2.- Instalar las librerías necesarias para compilar tor (la ultima versión binaria disponible para la raspberry no soporta onion v3 por eso compilamos desde fuentes)

Código:
sudo apt-get install libevent-dev
sudo apt-get install libssl-dev
3.- Descargamos la ultima versión de tor:

Código:
wget https://www.torproject.org/dist/tor-0.3.4.8.tar.gz
4.- Descomprimimos, compilamos e instalamos (linea a linea, hasta que no acabe una linea no introducimos la siguiente):

Código:
tar xzf tor-0.3.4.8.tar.gz
cd tor-0.3.4.8
./configure && make
sudo make install
5.- Creamos un directorio donde se guardaran las claves y direcciones onion para cada servicio:

Código:
mkdir /home/pi/tor
6.- Editamos el archivo de configuración torrc (estará en blanco)

Código:
sudo nano /usr/local/etc/tor/torrc
7.- Pegamos las siguientes lineas; Bitcoin Core no soporta servicios onion v3 por eso lo dejamos con tor v2; importante, el foro me convierte la palabra "H idden" en asteriscos, quitar el espacio entra la "H" y la "i":

Código:
SOCKSPort 9050
Log notice stdout
ControlPort 9051
CookieAuthentication 1

H iddenServiceDir /home/pi/tor/bitcoin_service/
H iddenServicePort 8333 127.0.0.1:8333

H iddenServiceDir /home/pi/tor/lnd_service/
H iddenServiceVersion 3
H iddenServicePort 9735 127.0.0.1:9735
8.- Abrimos un "screen" y ejecutamos:

Código:
tor
9.- Si todo ha ido bien, tras ejecutar tor, al final aparecerá:

Código:
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
10.- Con la tecla "Ctrl" + A + D salimos del screen sin cerrar tor e iremos al directorio tor que hemos creado en el paso 5. Dentro del directorio hay dos carpetas, una "bitcoin_service" y otra "lnd_service". Cada una de ellas tiene un archivo llamado "hostname" el cual contiene la direccion onion creada para cada servicio, una para bitcoind y otra para lnd.
Lo siguiente que deberemos hacer sera editar los archivos de configuración "bitcoin.conf" y "lnd.conf".
- En nuestro fichero de bitcoin.conf introducimos:

Código:
#TOR
proxy=127.0.0.1:9050
listen=1
bind=127.0.0.1
externalip=ladireccionquecontieneelarchivohostnameparabitcoin.onion
- En el fichero lnd.conf:

Código:
#TOR
externalip=ladireccionquecontieneelarchivohostnameparalnd.onion
listen=localhost
11.- Arrancamos Bitcoin Core con el comando habitual:

Código:
bitcoind &
12.- Cuando haya arrancado y este sincronizado arrancamos lnd en un screen con el siguiente comando:

Código:
lnd --tor.active --tor.v3
13.- Una vez que arranque lnd, al introducir lncli getinfo, veremos que tenemos dos URIs, una que cambia cada vez que arranquemos lnd, la cual genera a partir del hostname, y la otra que no. La que se anunciará sera la que cambia.

Migrar a tor tiene la pega que todavía ninguna cartera móvil LN soporta tor y no se podrán conectar a nosotros. Los canales que tengamos ya creados no los perderemos y podremos conectarnos a peers por su IP y su direccion onion, pero ellos solo se podrán conectar a nuestra dirección onion (y a nuestra IP si se la damos) si tienen tor ejecutandose en su nodo.
 
Última edición:

florerero

Pompero
Desde
6 Sep 2018
Mensajes
13
Reputación
0
Para la compra del material sería bueno organizar una conjunta a ver si conseguimos descuento burbujero.
 

DEREC

Madmaxista
Desde
30 Mar 2008
Mensajes
8.357
Reputación
23.651
1.3 Utilizar Tor como proxy para Bitcoin Core y LND; de esta forma ocultamos nuestra IP publica y la conexiones se realizan a traves de la red tor.

La realización de los siguientes pasos suponen que ya disponemos de Bitcoin Core y LND instalado y sincronizado.


1.- Detener los servicios de Bitcoind y LND.

Código:
bitcoin-cli stop
lncli stop
2.- Instalar las librerías necesarias para compilar tor (la ultima versión binaria disponible para la raspberry no soporta onion v3 por eso compilamos desde fuentes)

Código:
sudo apt-get install libevent-dev
sudo apt-get install libssl-dev
3.- Descargamos la ultima versión de tor:

Código:
wget https://www.torproject.org/dist/tor-0.3.4.8.tar.gz
4.- Descomprimimos, compilamos e instalamos (linea a linea, hasta que no acabe una linea no introducimos la siguiente):

Código:
tar xzf tor-0.3.4.8.tar.gz
cd tor-0.3.4.8
./configure && make
sudo make install
5.- Creamos un directorio donde se guardaran las claves y direcciones onion para cada servicio:

Código:
mkdir /home/pi/tor
6.- Editamos el archivo de configuración torrc (estará en blanco)

Código:
sudo nano /usr/local/etc/tor/torrc
7.- Pegamos las siguientes lineas; Bitcoin Core no soporta servicios onion v3 por eso lo dejamos con tor v2; importante, el foro me convierte la palabra "H idden" en asteriscos, quitar el espacio entra la "H" y la "i":

Código:
SOCKSPort 9050
Log notice stdout
ControlPort 9051
CookieAuthentication 1

H iddenServiceDir /home/pi/tor/bitcoin_service/
H iddenServicePort 8333 127.0.0.1:8333

H iddenServiceDir /home/pi/tor/lnd_service/
H iddenServiceVersion 3
H iddenServicePort 9735 127.0.0.1:9735
8.- Abrimos un "screen" y ejecutamos:

Código:
tor
9.- Si todo ha ido bien, tras ejecutar tor, al final aparecerá:

Código:
[notice] Tor has successfully opened a circuit. Looks like client functionality is working.
[notice] Bootstrapped 100%: Done
10.- Con la tecla "Ctrl" + A + D salimos del screen sin cerrar tor e iremos al directorio tor que hemos creado en el paso 5. Dentro del directorio hay dos carpetas, una "bitcoin_service" y otra "lnd_service". Cada una de ellas tiene un archivo llamado "hostname" el cual contiene la direccion onion creada para cada servicio, una para bitcoind y otra para lnd.
Lo siguiente que deberemos hacer sera editar los archivos de configuración "bitcoin.conf" y "lnd.conf".
- En nuestro fichero de bitcoin.conf introducimos:

Código:
#TOR
proxy=127.0.0.1:9050
listen=1
bind=127.0.0.1
externalip=ladireccionquecontieneelarchivohostnameparabitcoin.onion
- En el fichero lnd.conf:

Código:
#TOR
externalip=ladireccionquecontieneelarchivohostnameparalnd.onion
listen=localhost
11.- Arrancamos Bitcoin Core con el comando habitual:

Código:
bitcoind &
12.- Cuando haya arrancado y este sincronizado arrancamos lnd en un screen con el siguiente comando:

Código:
lnd --tor.active --tor.v3
13.- Una vez que arranque lnd, al introducir lncli getinfo, veremos que tenemos dos URIs, una que cambia cada vez que arranquemos lnd, la cual genera a partir del hostname, y la otra que no. La que se anunciará sera la que cambia.

Migrar a tor tiene la pega que todavía ninguna cartera móvil LN soporta tor y no se podrán conectar a nosotros. Los canales que tengamos ya creados no los perderemos y podremos conectarnos a peers por su IP y su direccion onion, pero ellos solo se podrán conectar a nuestra dirección onion (y a nuestra IP si se la damos) si tienen tor ejecutandose en su nodo.

Muy pro para mi de momento . Me lo guardo por si me hace falta en un futuro, de mometo no veo la necesidad de ocultar mi IP, pa 10 € que tengo.:D

Hace unos dias hubo un ataque DDos a la LN ¿es cierto? ¿No seria recomendable una proteccion contra esto? . Creo que raspibolt instalaba algo asi en algun tutorial.

Para la compra del material sería bueno organizar una conjunta a ver si conseguimos descuento burbujero.
Me da la sensacion que no va haber gente, aqui somos 3 o 4 y ya tenemos todos el material. Animate a comprarlo que todo no llega ni a 100€.
 

bmbnct

Madmaxista
Desde
5 May 2010
Mensajes
2.256
Reputación
4.873
Lugar
Bajo techo
Muy pro para mi de momento . Me lo guardo por si me hace falta en un futuro, de mometo no veo la necesidad de ocultar mi IP, pa 10 € que tengo.:D

Hace unos dias hubo un ataque DDos a la LN ¿es cierto? ¿No seria recomendable una proteccion contra esto?
Anímate a probarlo; es ahora el momento de experimentar, si más adelante metes más de 10€, te dará más respeto hacerlo.
Instalas tor, añades los parámetros a los archivos de configuración de bitcoin y lnd, te familiarizas con tor, pruebas un par de cosillas y para volver al estado "no tor" simplemente tienes que eliminar (o comentar con #) las líneas que has metido en bitcoin.conf y lnd.conf.
Y el día de mañana al menos te sonará cómo se hace.

Respecto a lo que comentas de securizar la raspberry, me parece un tema muy interesante aunque quizás se vaya un poco de lo que trata este hilo. Yo la mia la tengo con cuatro reglas de iptables; pero se puede hacer mucho más.

---------- Post added 04-oct-2018 at 22:15 ----------

animate a comprarlo que todo no llega ni a 100€.
 

Balistica

Madmaxista
Desde
21 Ago 2018
Mensajes
536
Reputación
548
Montar un nodo simplemente es por amor al arte, no? No se puede rentabilizar?