Cómo Ejecutar Bitcoin Como Servicio Tor Oculto En Ubuntu

¿Por qué debería de ejecutar un servicio oculto Bitcoin en su nodo?

  • Aumenta la privacidad de otros usuarios Bitcoin quienes se encuentran anonimizando sus acciones a través de Tor. Específicamente, es una contramedida a muchos de los ataques de “observadores de la red” listados en el modelo de amenazas del Proyecto de Privacidad Abierta de Bitcoin. 
  • Vuelve a su propio nodo mucho más robusto contra ataques Sybil y particiones de red. 
  • No requiere demasiados recursos computacionales para ser ejecutado, sólo el coste de instalación unico que requiere configurar su máquina. 
Sólo 2.6% de los nodos alcanzables están actualmente ejecutando un servicio oculto Tor. Via https://bitnodes.21.co

Existen numerosas maneras en las que usted puede configurar un nodo Bitcoin para conectarse a Tor, las cuales están explicadas en la documentación; para propósitos de esta guía, nos enfocaremos en la tercera opción: “escucha automática en Tor”. 

Hasta Bitcoin Core 0.12, un nodo ejecutará automáticamente un servicio oculto si es capaz de conectarse a un daemon Tor local. Sin embargo, debemos asegurarnos que unas cuantas cosas están configuradas correctamente para que el nodo y daemon puedan comunicarse entre sí. 

Primero, necesitamos seguir las instrucciones para instalar Tor. Necesitaremos conocer el nombre código del lanzamiento Ubuntu: 

username@host:~$ lsb_release -c

Codename: xenial

Ahora podemos instalar Tor; reemplace con su versión. 

username@host:~$ sudo vim /etc/apt/sources.list

Agregue estas dos líneas al archivo y guárdelo: 

deb http://deb.torproject.org/torproject.org main

deb-src http://deb.torproject.org/torproject.org main

username@host:~$ gpg –keyserver keys.gnupg.net –recv 886DDD89

username@host:~$ gpg –export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add –

username@host:~$ sudo apt-get update

username@host:~$ sudo apt-get install tor deb.torproject.org-keyring

Ahora que Tor se encuentra conectado y ejecutándose, revise la configuración: 

username@host:~$ sudo vim /usr/share/tor/tor-service-defaults-torrc

Asegúrese que las siguientes líneas se encuentran (en cualquier parte) en este archivo config:

ControlPort 9051

CookieAuthentication 1

CookieAuthFileGroupReadable 1

Si cualquiera de esas líneas no estuvieran, guarde el archivo config y reinicie el daemon Tor vía:

username@host:~$ sudo /etc/init.d/tor restart

Ahora tenemos que asegurarnos de que el usuario linux que ejecuta el proceso bitcoind tiene acceso a la lectura de la cookie de autenticación tor. Usted puede determinar el nombre de este usuario Tor vía: 

username@host:~$ grep User /usr/share/tor/tor-service-defaults-torrc

User debian-tor

Ahora modifique el usuario que ejecuta bitcoind en su máquina para ser miembro del grupo Tor:

username@host:~$ sudo usermod -a -G debian-tor

En este momento (sólo para estar seguros) usted debería de abrir una nueva ventana terminal / sesión SSH para asegurar que el usuario bitcoind tiene los permisos correctos. En esta nueva ventana, usted puede chequear los permisos vía: 

username@host:~$ id

uid=1000(username) gid=100(users) groups=100(users),121(debian-tor)

Si su usuario se encuentra en el grupo tor, ahora podemos iniciar bitcoind. Asegúrese de detenerlo primero si se está ejecutando actualmente. 

username@host:~$ bitcoin-cli stop

username@host:~$ bitcoind -daemon -debug=tor

Ahora chequee el log bitcoin para asegurarse que la configuración funciona: 

username@host:~$ tail -f ~/.bitcoin/debug.log | grep tor

Debería de poder visualizar una salida como esta:

2016–08–18 20:36:10 torcontrol thread start

2016–08–18 20:36:10 tor: Successfully connected!

2016–08–18 20:36:10 tor: Connected to Tor version 0.2.8.6

2016–08–18 20:36:10 tor: Supported authentication method: COOKIE

2016–08–18 20:36:10 tor: Supported authentication method: SAFECOOKIE

2016–08–18 20:36:10 tor: Using SAFECOOKIE authentication, reading cookie authentication from /var/run/tor/control.authcookie

2016–08–18 20:36:10 tor: SAFECOOKIE authentication challenge successful

2016–08–18 20:36:10 tor: AUTHCHALLENGE ServerHash af7da689d08a67d5b4e789a98c76a6eacbabaa32baefc223ab0d7b1f46c3d

2016–08–18 20:36:10 tor: Authentication successful

2016–08–18 20:36:10 tor: ADD_ONION successful

2016–08–18 20:36:10 tor: Got service ID w4bh4cputinlptzm, advertising service w4bh4cputinlptzm.onion:8333

2016–08–18 20:36:10 tor: Cached service private key to /home/username/.bitcoin/onion_private_key

2016–08–18 20:36:10 AddLocal(w4bh4cputinlptzm.onion:8333,4)

Si observa este error:

2016-08-18 19:51:48 tor: Add onion failed with unrecognized command (You probably need to upgrade Tor)

Entonces usted no configuró el repositorio deb de Tor correctamente y accidentalmente instaló tor desde un repositorio vencido de Ubuntu. Necesitará “sudo apt-get remove tor” y reconfigurar el repositorio antes de reinstalarlo. 

Si observa este error: 

2016–08–18 20:01:28 tor: Error connecting to Tor control socket

2016–08–18 20:01:28 tor: Not connected to Tor control port 127.0.0.1:9051, trying to reconnect

Entonces su archivo tor-service-defaults-torrc está mal configurado u olvidó reiniciar el daemon para hacer que los cambios rindieran efecto. 

Si observa este error: 

2016–08–18 20:11:10 tor: Authentication cookie /var/run/tor/control.authcookie could not be opened (check permissions)

Entonces usted no agregó correctamente al usuario linux que ejecuta bitcoind en el grupo tor. 

Al contrario, si todo se ve bien, visite https://bitnodes21.co/ y use la herramienta “check node” (chequear nodo) para asegurarse de que está aceptando conexiones. 

Si bitnodes es capaz de conectarse, usted puede opcionalmente dar click al enlace verde que señala el estatus de su nodo, ir hacia el fondo de la página de estatus de su nodo e ingresar su dirección de email para recibir alertas si bitnodes presenta alguna vez problemas de conexión al servicio oculto de su nodo. 

Gracias por ejecutar un servicio oculto Bitcoin. 

 

 

Fuente: https://blog.lopp.net/how-to-run-bitcoin-as-a-tor-hidden-service-on-ubuntu/