# 02 - <font color="#F7A004">Nodo</font>
### 1️⃣ **¿Qué hace un nodo?** (funciones principales)
> Un Nodo es una computadora y/o dispositivo que forma parte de una red que puede ejecutar el software de Bitcoin.
> Un nodo tiene tiene determinaddas tareas principales:
1. Cumplir las Reglas
* Validar y retransmitir nuevas transacciones y bloques (comparte la información)
* Conservar una copia de la cadena de bloques (transacciones confirmadas)
#### ➡️ **Cumplir las Reglas**
> Cada nodo (cliente de Bitcoin) ha sido programado para cumplir un conjunto de reglas. Al cumplir estas reglas, un nodo puede verificar las transacciones que recibe y solo retransmitirlas si todo está correcto. Si hay algún problema, la transacción no se transmite.
> [!important]
Un nodo no retransmitirá transacciones sospechosas.
Por ejemplo, una regla establece que una persona debe poseer una cantidad de bitcoins igual y/o mayor a la que intenta enviar. Por lo tanto, si su nodo recibe una transacción en la que se intenta enviar más bitcoins de los que posee, la transacción no se transmitirá a otros nodos.
Cada nodo verifica las transacciones y bloquea las que recibe según un conjunto de reglas para asegurarse de que sean válidas, antes de retransmitirlas a los nodos a los que está conectado.
Como resultado, un nodo trabaja constantemente para hacer cumplir las reglas y transmitir datos a través de la red.
#### ➡️ **Validar y retransmitir nuevas transacciones y bloques**
> El trabajo principal de un nodo es compartir información con otros nodos, y la información principal que comparte un nodo son las transacciones.
Después de descargar la última copia de la cadena de bloques, un nodo puede comenzar a recibir las últimas transacciones y bloques .
Ahora bien, hay dos tipos de transacciones que comparten los nodos:
* Transacciones nuevas : transacciones que ingresaron recientemente a la red.
* Transacciones confirmadas : transacciones que se han "confirmado" y se han guardado en un archivo. Se comparten en bloques de transacciones (no de forma individual).
:::info
_No te preocupes por la diferencia entre ambos por ahora. Todo se explica mas adelante en el minado & los bloques._
:::
➡️ **Conservar una copia de la cadena de bloques** (transacciones confirmadas)
_Cuando ejecuta Bitcoin por primera vez, se conectará a otros nodos de la red para descargar una copia completa de la cadena de bloques._
Esto permite que su nodo se actualice con el estado actual de la cadena de bloques, para que pueda comenzar a recibir (y validar) las últimas transacciones y bloques que se envían a través de la red
Descargar la cadena de bloques completa también significa que se replica en otra computadora . Esto refuerza la red, ya que cualquiera que intente destruir Bitcoin tendría que intentar eliminar todas las copias de la cadena de bloques. Y al conservar una copia de la cadena de bloques, ayudarás a replicarla en otros nodos que se unan a la red en el futuro
:::info
_El proceso de agregar nuevas transacciones a la cadena de bloques se llama minería._
:::
---
### 2️⃣ ¿Quién controla los nodos de Bitcoin?
> Cada nodo es autónomo (no controlado por otros ni por fuerzas externas; independiente).
Con esto quiero decir que, cuando ejecutas un cliente de Bitcoin, la red no te dice qué hacer. En cambio, tu cliente de Bitcoin ya sabe qué hacer y toma sus propias decisiones.
Entonces, toda la red de Bitcoin está formada por nodos que toman sus propias decisiones, pero cada uno toma las mismas decisiones que los demás, lo que la convierte en una red completamente descentralizada pero poderosa.
Nota: Si todos los demás nodos se desconectaran, su nodo estaría respaldando toda la red Bitcoin.

⬆️ entra una nueva transacciones al **mempool**

⬆️ se escribe un nuevo bloque en la cadena de bloques (blockchain)
---
### 3️⃣ **Requisitos**
> ¿Qué necesitas para ejecutar un nodo Bitcoin?
Bitcoin es solo un programa de computadora, por lo que todo lo que necesitas para ejecutar un nodo de Bitcoin es una computadora y/o dispositivo donde pueda instalarse y una conexión a Internet
Hay algunos requisitos del sistema que ayudarán a que el programa funcione sin problemas:
➡️ **Espacio en disco** (recomendado: 2+ TB)
[https://www.blockchain.com/explorer/charts/blocks-size](https://)
> [!warning]
Se recomienda usar discos SSD para mejorar la velocidad de lectura/escitura.
...la cadena de bloques también crece a un ritmo de alrededor de 100 GB/año , por lo que necesitará tener suficiente espacio en disco disponible si planea ejecutar un nodo durante un buen tiempo
> [!Tip]
> Puedes reducir el espacio en disco necesario al ejecutar un nodo podado.
➡️ **Memoria RAM** (recomendado: 2+ GB)
...la RAM se utiliza para almacenar las últimas transacciones en el mempool , así como para almacenar UTXO para ayudar a acelerar la validación de nuevas transacciones y bloques.
No necesitas una gran cantidad de RAM para ejecutar Bitcoin, pero cuanto más puedas darle, más eficientemente funcionará.
➡️ **Ancho de Banda** (recomendado: 2+ TB/mes)
Un nodo envía y recibe constantemente datos ( transacciones y bloques ) hacia y desde otros nodos de la red, por lo que necesitará suficiente ancho de banda para cubrir esto.
> [!important]
> Bitcoin no es el software liviano, pero es perfectamente posible ejecutarlo en una computadora portátil y/o de escritorio común. De hecho, es común configurar un nodo de Bitcoin en una Raspberry Pi .
> [!Tip]
No es necesario mantener un nodo de Bitcoin funcionando 24/7.
Es útil para la red si puede mantenerla funcionando tanto como sea posible, pero puede iniciar/detener tantas veces como lo necesite.
Los mensajes se transmiten según el mejor esfuerzo y los nodos pueden abandonar y volver a unirse a la red a voluntad, aceptando la cadena de prueba de trabajo más larga como prueba de lo que sucedió mientras estuvieron ausentes.
---
### 4️⃣ **Comunicación**
> ¿Cómo se comunica un nodo con otros nodos?

:::info
_Un nodo se comunica con otros nodos enviando muchos mensajes individuales._
:::
Estos mensajes se envían a través de TCP (Protocolo de control de transmisión), que es una forma común en que dos computadoras en una red se comunican entre sí.
Cada nodo también debe seguir un protocolo específico de Bitcoin al comunicarse, que es básicamente un conjunto de reglas sobre la estructura y el orden de los mensajes enviados entre nodos.
Así que, aparte de seguir un protocolo único, la comunicación entre los nodos no tiene nada de especial. De la misma forma que tu ordenador y mi servidor tuvieron que conectarse y seguir un protocolo para descargar esta página web ( HTTP ), los nodos de Bitcoin tienen su propio protocolo para enviar y recibir transacciones y bloques (el Protocolo Bitcoin).
:::info
_Su nodo mantendrá una conexión TCP con otros nodos de la red, por lo que enviará y recibirá muchos mensajes entre varios equipos simultáneamente._
:::
> [!Note]
_La red Bitcoin es completamente abierta y accesible para todos. Por lo tanto, siempre que se respeten las reglas de conexión y envío de mensajes, cualquiera puede desarrollar su propio software para comunicarse con un nodo. Consulte la sección de redes para obtener más información._
---
### 5️⃣ **Beneficios**
> ¿Por qué ejecutar tu propio nodo?
### 1. Confianza

:::info
_Ejecutar su propio nodo implica que no tienes que confiar en nadie más para obtener información sobre las transacciones._
:::
Esto refiere a que puedes tener la certeza absoluta de que cada pago que recibes es válido y que cada consulta que realizas en la blockchain es correcta. Si no gestionas tu propio nodo, confías en que alguien más que sí lo gestiona te envíe información correcta sobre transacciones y bloques.
:::info
Si quieres descartar por completo obtener datos de otros nodos antes, si desea eliminar al intermediario por completo para no tener que depender de nadie más, ejecutar su propio nodo es la forma de hacerlo.
:::
En su forma más pura, esto es lo que es Bitcoin.
> [!Important]
No confíes, verifica. Frase común utilizada en Bitcoin
### 2. Privacidad

:::info
_Ejecutar su propio nodo implica que no tiene que compartir sus transacciones con servicios de terceros._
:::
Si no gestionas tu propio nodo, necesitas usar un sitio web y/o una billetera externa que sí pued enviar transacciones a la red . Estos servicios externos pueden rastrear tus solicitudes junto a tu IP para comprender mejor tus actividades.
:::warning
Cabe aclarar que esto no es tan bueno para la privacidad.
:::
Sin obstante, al ejecutar tu propio nodo, puedes transmitir transacciones directamente a través de él, eliminando así el paso de un intermediario antes de entrar a la red. De la misma forma, puedes obtener datos de tu propia blockchain sin necesidad de usar un explorador de blockchain externo.
### 3. Aporar a la Red
#### ➡️ Ejecutar su propio nodo apoya la red de dos maneras:
a) Replicación de la cadena de bloques. Bitcoin es difícil de eliminar porque todo el historial de transacciones se replica en todo el mundo, por lo que añadir un nuevo nodo a la red lo hace más resistente . Por ejemplo, si todos los demás nodos de la red colapsaran y perdieran su copia de la cadena de bloques , se estaría bloqueando todo el sistema hasta que otros nodos pudieran volver a descargar la cadena de bloques.
b) Transmisión de datos. Bitcoin funciona porque muchos nodos individuales cooperan para distribuir las últimas transacciones y bloques por la red. Por lo tanto, al ejecutar un nodo, se añade otro relé a la red. Por ejemplo, si varios nodos fallan y algunos no pueden conectarse entre sí por alguna razón, su nodo podría convertirse en un enlace vital entre diferentes partes de la red.
:::info
En resumen, al ejecutar un nodo ayudas a que la red se mantenga activa .
:::
Por supuesto, el beneficio de aumentar el número de nodos disminuye una vez que la red alcanza cierto tamaño. Al fin y al cabo, si hay 10.000 copias de la cadena de bloques repartidas por todo el mundo y todos los nodos tienen conexiones estables entre sí, añadir otro nodo no supondrá una gran diferencia. Por lo tanto, no es crucial que cada persona se esfuerce al máximo por gestionar un nodo.
No obstante, Bitcoin es un sistema descentralizado que sólo existe porque la gente se ofrece voluntariamente a ejecutar nodos, y al hacerlo están contribuyendo a la visión compartida que lo mantiene vivo.
Y una red nunca puede ser demasiado resistente.
### 3. Desarrollo
#### ➡️ Ejecutar tu propio nodo es útil si planeas convertirte en un desarrollador de Bitcoin, con ciertos beneficios
a) Datos. Si tienes tu propio nodo completo, tendrás acceso a todos los datos de Bitcoin en tu ordenador local. Por ejemplo, puedes consultar rápidamente datos de bloques, transacciones y redes mediante bitcoin-cli comandos, y/o analizar toda la cadena de bloques con herramientas como bitcoin-iterate . Ciertas tareas pueden ser lentas y/o difíciles si dependieras de una API de terceros para tus datos.
b) Código fuente. Si compilas Bitcoin Core desde cero, tendrás acceso al código que lo ejecuta. Esto te permite explorar el código en tu ordenador para ver cómo funciona y experimentar con él para intentar mejorar el software.
En resumen, si vas a trabajar con un programa, probablemente querrás tener tu propia copia del mismo.
Claro que no es necesario tener un nodo propio para crear herramientas propias para Bitcoin, pero es bueno tenerlo.
Link para instalar: [https://bitcoincore.org/en/download/](https://)
### 6️⃣ **Definiciones**
> ¿Cuáles son los diferentes tipos de nodo?
_Hay algunos términos diferentes que describen los diferentes tipos de nodos en la red Bitcoin._
### 1. <font color="#F7A004">Nodo Completo</font>

:::info
_Un nodo completo es un nodo que puede seguir el ritmo de la cadena de bloques y validar los bloques y transacciones que recibe._
:::
Un nodo completo recibe una copia completa de la cadena de bloques, lo que significa que tiene una memoria del historial completo de transacciones y puede determinar si cualquier nuevo bloque o transacción que recibe es válido.
En otras palabras, un nodo completo es capaz de hacer cumplir las reglas del sistema en todos los datos que pasan a través de él y, por lo tanto, es un participante activo en la red.
Hay dos tipos de "nodo completo":
### 1. <font color="#F7A004">Nodo de Archivo</font>

:::info
_Un nodo de archivo mantiene una copia completa de la cadena de bloques._
:::
_Esto implica que puede replicar toda la cadena de bloques en cualquier nodo nuevo que se una a la red._
### 2. <font color="#F7A004">Nodo Podado</font>

:::info
_Un nodo podado no conserva una copia completa de la cadena de bloques._
:::
En cambio, un nodo podado recibe una copia completa de la cadena de bloques, pero elimina bloques más antiguos más abajo en la cadena a medida que pasa el tiempo para ahorrar espacio en disco.
Si bien un nodo podado es útil porque aún puede aplicar las reglas del sistema (es decir, validar y retransmitir nuevos bloques y transacciones), lo único que no puede hacer es servir una copia completa de la cadena de bloques a los nuevos nodos que se unen a la red.
> [!Note]
_Un nodo mantiene una copia de todos los UTXO en una base de datos separada, por lo que, aunque un nodo podado elimine bloques más antiguos a medida que avanza, siempre tendrá una copia completa de los UTXO a la que hacer referencia para permitirle validar nuevas transacciones y bloques._
### 3. <font color="#F7A004">Nodo Ligero</font>
> Un nodo ligero es un nodo que puede seguir el ritmo de la cadena de bloques, pero no puede validar los bloques y las transacciones que recibe.
_En cambio, un nodo ligero puede verificar que un bloque o una transacción existe en la cadena de bloques, pero no puede confirmar que sean válidos._
En otras palabras, un nodo liviano no puede hacer cumplir las reglas del sistema y, por lo tanto, no es un participante activo en la red.
:::info
Es más preciso referirse a un "nodo ligero" como cliente. Un nodo es un participante activo en la red, mientras que un cliente simplemente lee datos de otros nodos de la red.
:::
### 4. <font color="#F7A004">Monedero PSV</font>
> Verificación de pago simple
_Un tipo común de nodo liviano es lo que se conoce como billetera SPV (por ejemplo, Electrum)._
Una billetera SPV solo recibe los encabezados de bloque de la cadena de bloques (que son mucho más pequeños que los bloques completos), lo que les permite mantenerse al día con el aspecto de la cadena más larga:

:::info
_Los encabezados de bloque tienen solo 160 bytes. Los bloques completos suelen tener más de 1.000.000 de bytes._
:::
Luego puede solicitar una prueba de un nodo completo para confirmar si una transacción específica está en un bloque específico:

:::success
_Esto se conoce como prueba de Merkle._
:::
Gracias a esta prueba, la billetera SPV puede estar segura de que la transacción está efectivamente dentro del bloque y puede actualizar el saldo de la billetera.
Sin embargo, aunque una billetera SPV utiliza un ancho de banda y un espacio en disco mínimos (y puede verificar que las transacciones existen en la cadena de bloques), debe confiar en que la información que se envía desde un nodo completo es válida .
Por ejemplo, un nodo completo podría construir un encabezado de bloque válido y enviarlo a una billetera SPV, pero el bloque real podría contener transacciones no válidas. En otras palabras, un nodo completo puede mentirle a un nodo ligero si así lo desea.

:::info
_La prueba y el encabezado del bloque son válidos, pero este último se creó a partir de un bloque de transacciones no válido. Por lo tanto, el cliente SPV cree haber recibido un pago, pero la transacción dentro del bloque es, en realidad, inválida._
:::
bloque inválido a propósito. Por lo tanto, una billetera SPV opera bajo la premisa de que sería demasiado costoso para un nodo completo querer mentirles.
Si desea estar seguro de que todas las transacciones que ve son válidas sin tener que confiar en nadie, necesita ejecutar un nodo completo.
### 5. <font color="#F7A004">Minero</font>
> Un minero es alguien que trabaja para tomar transacciones del grupo de memoria y agregarlas a la cadena de bloques.
a) Un nodo no siempre es un minero.
b) Un minero no tiene por qué ser un nodo.
En el documento técnico de Bitcoin , a los nodos a veces se los denomina mineros, y siempre se considera que los mineros se ejecutan como nodos completos.
Sin embargo, un minero no necesita realizar la tarea de un nodo . En su lugar, puede simplemente conectarse a un nodo completo para obtener la información necesaria para construir un bloque candidato y luego enviar el bloque de vuelta al nodo completo al finalizar.
Si bien es más fácil pensar en un minero como un "nodo completo que extrae bloques", técnicamente hablando un nodo y un minero pueden separarse para realizar dos funciones distintas.
:::info
_Muchos de los diagramas de este sitio web asumen que un minero siempre está funcionando como un nodo completo. Lo hice para simplificar al máximo los diagramas._
:::
### 7️⃣ **Implementaciones**
> _¿Qué software necesito para ejecutar un nodo completo?_
La forma más fácil de ejecutar un nodo completo es descargar la implementación original:
a) Bitcoin Core https://bitcoincore.org/en/download/
No obstante, existen implementaciones alternativas para ejecutar un nodo de Bitcoin si lo prefieres:
b) btcd (la alternativa más popular) https://github.com/btcsuite/btcd
c) moneda b https://github.com/bcoin-org/bcoin
d) BitcoinJ https://bitcoinj.org/
No obstante, todos ellos son mucho menos populares que el cliente original, y recomiendo seguir con Bitcoin Core si no tienes experiencia en la configuración de un nodo completo.
:::info
_Todos los bitcoin-cli comandos mencionados en este sitio web asumen que estás ejecutando un nodo Bitcoin Core._
:::
---
**1. ¿Qué es un nodo de Bitcoin?**
-> Un nodo es una computadora que ejecuta el protocolo de Bitcoin (como Bitcoin Core).
-> Valida, almacena, retransmite transacciones y bloques, asegurando que todas las reglas se cumplan sin depender de una autoridad central.
-> Permite verificar tu propio saldo y participar en la infraestructura descentralizada de Bitcoin.
**2. ¿Cuáles son sus funciones principales?**
-> Validar transacciones y bloques según las reglas del protocolo.
-> Retransmitir solo información válida.
-> Mantener una copia de la cadena de bloques.
-> Rechazar intentos de fraude como dobles gastos.
-> Dar soberanía al usuario al permitir verificación independiente.
**3. ¿Quién controla los nodos?**
-> Nadie los controla en conjunto. Cada nodo decide qué aceptar según el software y sus reglas internas.
-> Esta autonomía crea una red resistente, sin jerarquías ni puntos centrales de fallo.
-> El consenso emerge porque todos siguen las mismas reglas voluntariamente.
**4. ¿Por qué conservar una copia de la cadena?**
-> Al descargar la cadena completa, un nodo verifica todo el historial y ayuda a replicar la red global.
-> Esto hace que la historia de Bitcoin sea inmutable: para alterarla sería necesario modificar todas las copias en todos los nodos, algo prácticamente imposible.
**5. ¿Cómo se relaciona el minado con los nodos?**
-> Los mineros también son nodos, pero crean nuevos bloques.
-> Compiten para resolver un problema criptográfico y, cuando encuentran un bloque válido, lo envían al resto de los nodos para que lo validen.
-> Mineros y nodos se complementan para asegurar la red.
**6. ¿Qué requisitos se necesitan para un nodo?**
-> Espacio en disco: mínimo ~500 GB, recomendado 1–2 TB (SSD).
-> RAM: 2 GB o más.
-> Conexión estable: idealmente 2 TB/mes de ancho de banda.
-> Hardware común y/o Raspberry Pi.
-> Puede usarse modo podado para reducir espacio.
**7. ¿Debe estar encendido 24/7?**
-> No es obligatorio. Cuanto más tiempo esté activo, mejor para la red.
-> Si lo apagás, al volver a encenderlo se sincroniza automáticamente. Tus tiempos, tus reglas.
**8. ¿Puede una computadora personal ejecutar un nodo?**
-> Sí. No requiere hardware complejo.
-> Una PC común y/o una Raspberry Pi es suficiente.
-> Esto demuestra que cualquiera puede participar en Bitcoin sin permiso de terceros.
**9. ¿Qué papel juegan los nodos en la resistencia a la censura?**
-> Validan y retransmiten cualquier transacción válida, sin importar origen y/o destino.
-> Mientras exista al menos un nodo honesto, enviar y recibir BTC seguirá siendo posible y sin censura.
**10. ¿Es rentable ejecutar un nodo?**
-> No genera recompensas económicas directas.
-> Su valor está en soberanía, privacidad y seguridad: verificar tus transacciones sin depender de terceros y contribuir a la fortaleza de la red.
-> Es una inversión en libertad, no en rendimiento financiero.