# Cómo instalar tor en Mac OS ###### tags: `bitcoin` `cli` `nodo` _Si ya tienes instalado bitcoin core en Mac OS, con estas instrucciones puedes conectarlo a través de **tor** para mejorar tu privacidad._ **Tabla de contenido** [TOC] ## Autor **EntrePlanctonyBallenas.** Twitter para correcciones, comentarios o sugerencias: [@entreplanctony1](https://twitter.com/Entreplanctony1) El presente tutorial fue elaborado para el [Seminario socrático de Mastering Bitcoin](https://libreriadesatoshi.com/) a través de [@libreriadesatoshi](https://twitter.com/libdesatoshi). En el siguiente enlace puedes encontrar la documentación de referencia: [https://2019.www.torproject.org/docs/tor-doc-osx.html.en](https://2019.www.torproject.org/docs/tor-doc-osx.html.en) ## Videotutorial Puedes consultar el siguiente video para instalar tor en tu sistema operativo. [https://youtu.be/Jcowrjh21Qg](https://youtu.be/Jcowrjh21Qg) ## Preparación :::info Los comandos de esta guía deben ser ejecutados en una aplicación de Terminal para línea de comandos. Mac OS viene con una Terminal incorporada, para abrirla ejecuta la secuencia de teclas **⌘+barra_espaciadora** e introduce la palabra **terminal**. ::: ### Administrador de paquetes Homebrew Homebrew es un gestor de paquetes para macOS que permite instalar paquetes desde la línea de comandos de manera fácil. Para instalar [_Homebrew_](https://brew.sh), corre: ```gherkin /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` :::info **Nota:** Si tienes problemas al instalar Homebrew o al descargar paquetes, consulta la [página de solución de problemas:link:](https://docs.brew.sh/Troubleshooting). ::: ## Instalación en MacOS Una vez instalado brew, puedes instalar tor corriendo el siguiente comando: ``` brew install Tor ``` El comando va a instalar todas las dependencias requeridas para el funcionamiento del programa. ## Inicializar y detener el servicio: Una vez instalado el programa debes pedirle al sistema que lo ejecute: ``` brew services start tor ``` Si en algún momento quieres detener el servicio corre el comando: ``` brew services stop tor ``` :::warning Debes detener bitcoind tambien y editar el bitcoin.conf para que no se use tor mientras el servicio esta abajo ::: ### Mac OS terminal cheat sheet: `lsof -i` Te mostrará todos los procesos que estan abiertos a la internet. `brew services list` Muestra los procesos que estan corriendo a traves de brew. ## Como configurar Bitcoin Core (bitcoind) para que use Tor Estoy suponiendo que ya instalaste un nodo de Bitcoin y bajado la blockchain, de forma que podemos modificar la configuración para que `bitcoind` se comunique con los otros nodos exclusivamente a través de Tor y así tener más privacidad y anonimidad. Ve a la ruta donde esta el archivo bitcoin.conf y edítalo. Agrega las siguientes lineas al archivo **bitcoin.conf** quedaría así: ``` debug=tor onlynet=onion proxy=127.0.0.1:9050 bind=127.0.0.1 dnsseed=0 dns=0 addnode=kpgvmscirrdqpekbqjsvw5teanhatztpp2gl6eee4zkowvwfxwenqaid.onion addnode=bnx4povtqynvwnui5oqm5xcxqvat3j7yzgn6mqciuyszqawhuayvyaid.onion:8333 addnode=wyg7twmf7t3pfvfpdcfd64wvjj2pkccuui7ew34ovnqung5f623b4yyd.onion addnode=glm52zywiqrcxuwswvgjsxr5pfeggil7uci4z5tbpvb4rjyu5hwjhtid.onion addnode=xspiicyddsdmzxsffzw6z4f22wi2iwyyufkjcaj2qr7cznxymtft5nid.onion addnode=nqb5q6d4nhp54ziahhm2oxopqwyyulg7nrqwrcmfvwhj7y7xasaeg7ad.onion addnode=vp4qo7u74cpckygkfoeu4vle2yqmxh7zuxqvtkazp4nbvjnxl2s3e6id.onion addnode=ew7x2hv76f7w7irfyektnbhd42eut27ttbfgggu7lbpxsyrlfvsujuqd.onion addnode=qxkgr5u4rmwme5jticjuuqrecw5vfc5thcqdxvbffwbqgqkdin7s7vid.onion ``` Expliquemos un poco estos parámetros: ```debug=tor ``` agrega logs que tengan que ver con tor ```onlynet=onion``` le indica a Bitcoin Core que las conexiones salientes sean sobre Tor ```proxy=127.0.0.1:9050``` le indica a Bitcoin core como comunicarse mediante Tor ```bind: 127.0.0.1 ```restringirá las conexiones entrantes de Bitcoin Core desde otros nodos ya que solo acepta conexiones locales. ```dnsseed=0``` and ```dns=0``` Evita que Bitcoin Core intente conectarse a las “semillas” de DNS predeterminadas que se encuentran el siguiente archivo del repositorio de bitcoin: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L116 A pesar de las restricciones entrantes/salientes que establecimos anteriormente, sin estas dos configuraciones, nuestro nodo aún intentará conectarse a estos hosts. ¿Por qué queremos evitar que se conecte a esas semillas? Dado que a finales del año 2021 se dejó de tener soporte para la versión 2 de Tor, entonces varias personas tuvieron problemas obteniendo conexiones entrantes de nodos con la version 3 de Tor cuando hicieron la actualización. Por eso vamos a agregar semillas manualmente para conectarnos. Con addnode se añaden las semillas, que son otros peers que se van a conectar a nuestro nodo. Y dado que estamos ejecutando el nodo sólo sobre Tor, debemos agregar las direcciones onion de otros peers en lugar de las direcciones IP. Una vez que nos conectamos a ellos, nos envían más a los que podemos conectarnos. Eventualmente, nuestro nodo creará una larga lista de nodos y ya no necesitará los nodos semilla, por eso más adelante los quitaremos. La lista de nodos la extraje de este hilo de reddit donde un usuario tuvo problemas porque con la versión 3 de Tor y no obtenía conexiones entrantes de otros nodos de modo que varias personas le compartieron sus direcciones onion. https://www.reddit.com/r/Bitcoin/comments/kzhhgk/bitcoin_core_0210_tor_v3/ Terminada la explicación del archivo de configuración procedemos a detener bitcoind: ``` $ bitcoin-cli stop ``` Ahora lo arrancamos de nuevo: ``` $ bitcoind -daemon ``` Si ejecutamos el comando ``` $ bitcoin-cli getnetworkinfo ``` ![](https://i.imgur.com/4m6wdOe.png) Podemos observar que estamos conectados mediante Tor, connections_in aún está en cero porque tarda un poco en ir obteniendo conexión de otros nodos. ## :zap: Donaciones :::success Si te fue útil este material puedes agradecer a Iván @entreplanctonyballenas, enviándole un aporte vía Lightning Address: entreplanctonyballenas@getalby.com :::