Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

12 Días
10 Hrs
24 Min
8 Seg
Curso de Bitcoin para Developers

Curso de Bitcoin para Developers

Juan Sebastián Marulanda

Juan Sebastián Marulanda

La arquitectura de una red P2P

5/16
Recursos

La infraestructura que está por detrás de cualquier Blockchain tiene características únicas para lograr la descentralización de un servicio y que todos sus nodos sean iguales.

Topología, nodos y flujos de transacción en la red Bitcoin

Las redes entre pares o redes Peer-to-Peer (P2P), refieren a una distribución de datos homogénea, que se constituye de nodos que comparten el mismo nivel de importancia y funcionalidad. Todos los nodos son pares entre sí. Esta red otorga la posibilidad de descentralización que es conocida en Bitcoin, aunque ya se ha usado antes por otros servicios antes de Blockchain.

Su topología se puede describir como “plana”. No hay servidores ni servicios centralizados. Los nodos proveen y reciben servicio recíprocamente, siendo esto el incentivo y el factor principal para la participación dentro de la red. Solamente así es como Bitcoin o cualquier Blockchain logra y mantiene un control descentralizado de los activos.

Qué es Bitcoin Network

La red de Bitcoin es una colección de nodos corriendo en su protocolo P2P y utilizando proof-of-work para mantener el consenso. Además de esto, existen otros protocolos que están “encima” de la red Bitcoin. Tales como Stratum que fue lanzado hace pocos años para mejorar el rendimiento y la eficiencia del minado.

Estos protocolos adicionales son dados por servidores que se conectan a la red Bitcoin a través de su protocolo y la extienden por sus nodos.

A esto se le conoce como la red extendida de Bitcoin (Extended Bitcoin Network), que engloba el total de la red que incluye todos los protocolos conectados a los componentes del sistema Bitcoin.

Tipos de nodos Bitcoin

Aunque los nodos de Bitcoin son iguales, estos pueden adoptar roles diferentes dependiendo de la funcionalidad que deban soportar. Un nodo de este sistema es una colección de funciones:

Network routing node:

Esta función permite la conexión y participación dentro de la red. Con ella también validan y propagan transacciones y bloques; descubren y mantienen conexiones en pares.

Full node o SPV node:

Se refiere a la función que permite que dentro de un nodo se almacene una copia total o parcial de la cadena de bloques de Bitcoin, respectivamente. Aquellos que poseen una copia completa, pueden actuar con autonomía para verificar cualquier transacción, además de otras capacidades.

Pruning node:

Descarga y procesa la menor cantidad de información para validar bloques y transacciones, como un nodo completo, solo que prescindiendo de los bloques antiguos para ahorrar espacio.

Archive node:

Actualizan la información de nodos nuevos que se agregan o reingresan a la red.

Mining node:

Estos nodos compiten para crear nuevos bloques haciendo uso de hardware especializado para resolver el algoritmo PoW.

Wallet:

Esto se refiere a la capacidad de hacer operaciones y transacciones con Bitcoin dentro del software adecuado, dependiendo del dispositivo.

Network discovery

El proceso en el que un nuevo nodo se conecta a la red, se divide en tres fases. Hay que tomar en cuenta antes, que la localización geográfica de un nodo no es relevante para el protocolo:

  • Handshake version message: entre nodos, aquel que ya estaba en la red entrega información de la versión, fecha, dirección IP y se verifica que ambos nodos estén en el mismo protocolo, para entonces volverse pares.
  • DNS Seeds: se solicitan direcciones IP desde este nuevo nodo para nueva conexiones. Estas conexiones son efímeras, por lo que es importante conservar el mayor número lo más posible.
  • Sync: la obtención de la base de datos a través de los pares para actualizar y llegar a la altura actual en la cadena de bloques.

Otras características de la Blockchain de Bitcoin

El funcionamiento completo de Bitcoin es complejo, aquí van algunos conceptos más que tienes que conocer:

  • Descarga de bloque inicial (IBD): estado temporal en el que, al agregar un nuevo nodo o uno se tiene que actualizar, este debe empezar a descargar los bloques y las transacciones que se están añadiendo al Libro Mayor.
  • Bitcoin Core: se refiere a la implementación del protocolo Bitcoin a través del proyecto de código libre de Satoshi Nakamoto. No necesariamente se debe usar Bitcoin Core para correr el protocolo Bitcoin, aunque este es el más conocido y el estándar actual.
  • Nodo como servicio: un nodo que permite que otros componentes puedan comunicarse con él y brindarles información para crear nuevos servicios.
  • Mempool: estructura en memoria que contiene todas las transacciones pendientes a minar y agregar a un nuevo bloque. Los nodos validadores toman transacciones de aquí para proponer nuevos bloques.

Antecedentes y predecesores

No todo el funcionamiento de Bitcoin es revolucionario y nuevo. Su creador, Satoshi Nakamoto, se ha inspirado en varios conceptos y conocimientos que surgieron desde la década de los 80´s en adelante.

Desde el mismo árbol de Merkle hasta las pruebas de trabajo del procolo proof-of-work. Bitcoin no fue la primera moneda digital, uno de los primeros intentos, sin éxito, de descentralizar la economía fue b-money. Nakamoto, unió muchas partes y propuso otras para formar el sistema que hoy conocemos como Bitcoin.

Por supuesto, también ha favorecido a la creación de implementaciones similares y en algunos sentidos, mejores, como Ethereum y los Smart Contracts. Y este a su vez se intenta superar con otras Blockchains que llegaron posteriormente como Solana. La tecnología avanza y se supera con cada nueva implementación y proyecto.

Puedes tomar el Curso de Introducción a Solana.

Conclusiones

El funcionamiento de toda la red de Bitcoin es grande y complejo de resumir. Siempre es aconsejable leer el libro blanco de Bitcoin si es de tu interés técnico comprender más en profundidad su funcionamiento técnico.


Contribución creada por: Luis Enrique Herrera y Kevin Fiorentino (Platzi Contributor).

Aportes 15

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

La Arquitectura de una Red P2P.
.
Red homogénea que tiene unas máquinas que corren cierto protocolo.
.

  • Todos los participantes son pares entre sí, todos son iguales.
  • Resiliente, descentralizada y abierta.
  • Bitcoin, Napster, BitTorrent.
    .
    Red de Bitcoin.
    .
  • Conjunto de nodos corriendo el protocolo bitcoin.
  • Protocolos adicionales usan el P2P de bitcoin y extienden la red a otros nodos corriendo esos protocolos adicionales.
  • Extended Bitcoin Network.
    .
    Tipos de nodos.
    .
  • Full node.
    • Nodo que valida la cadena completa y sus transacciones.
    • Mantienen un estado actualizado, un conjunto de UTXO.
  • Pruning nodes.
    • Nodo que descarga y procesa bloques para generar una base de datos para validación.
    • Desecha bloques antiguos para ahorrar espacio.
  • Archive nodes.
    • Contiene una copia de toda la historia de la cadena.
    • Valida y consulta transacciones y bloques en cualquier punto histórico.
    • Entregan el historial a nuevos nodos para que se conviertan en full nodes.
  • Mining nodes.
    • Compiten por crear nuevos bloques.
    • Validan transacciones.
    • Fundamentales para la seguridad y el consenso de la red.
    • Mantienen un mempool de transacciones no confirmadas.
    • Mining pools.
  • Simplified payment verification (SPV).
    • Operan sin almacenar la cadena completa.
    • Descargan solo los encabezados de los bloques.
    • Confían en otros nodos para validad bloques y transacciones.
    • Profundidad vs Altura.
    • Merkle Path.
  • Otros conceptos.
    • Descarga de bloque inicial (IBD): estado temporal donde cada vez que se añade o actualiza un nodo, debe descargar todos los bloques y los datos para ponerse al tanto de las transacciones y los bloques nuevos que se añaden al Libro Mayor.
    • Bitcoin Core: implementación del protocolo Bitcoin a través de un proyecto open source iniciado por Satoshi Nakamoto.
    • Nodo como servicio: es un nodo que permite que otros componentes puedan comunicarse con él para obtener información relevante como servidores, billeteras, etc.
      .
      La información en un nodo.
      .
      Full Node.
      | Estado | BD Bloques | Mempool |
      | — | — | — |
      .
  • Estado: lista de transacciones que no se han gastado.
  • Base de datos de bloques: información actualizada que se tiene en el Libro Mayor.
  • Mempool: campo de todas las transacciones que son candidatas a añadir próximamente en un nuevo bloque.
    • Estructura que contiene los mejores candidatos (transacciones) para minar (agregar un nuevo bloque).
    • Políticas: por ejemplo, transacción muy grande (más de 100 kb) o muy pequeña (menos de 82 bytes).
      .
      El estado actual es uno de los insumos para validar nuevas transacciones.
      .
      Con las transacciones que llegan en un nuevo bloque se actualiza el set de UTXO, borrando los que se gastaron y agregando los nuevos creados por las transacciones.
      .
      Network Discovery.
      .
  • Localización geográfica no es relevante.
  • Handshake version message.
  • DNS Seeds.
  • Sync.

Y cómo “buscamos” esos valores criptográficos? O en dónde? Entiendo que el reto era encontrarlo sin reconstruir la raíz que fue exactamente lo que hicimos aquí.

Nodos y Red

Por lo que entiendo este mempool es como la lista de espera de las transacciones que quieren ser enviadas y que también rechaza cierto tipo de transacciones las cuales no cumplen o exceden los criterios necesarios para su correcto funcionamiento.

mm pero segun la respuesta del profe, tuvo que calcular todos los hashs hasta llegar al root. y depsues solo comparo el root que calculo con el original y si son iguales pues F existe… nose fue rara esta explicacion.

Tal vez la pregunta seria: como saber si F es una transaccion valida y no fue alterada por un atacante

En esta web, pueden ver una representación de los nodos en un mapa
https://bitnodes.io/

La verdad no entendí nada de cómo calcular el Merkel root. Solo sé que son combinaciones de hashes. Pero la explicación fue muy floja.

Siempre se me hizo sencillo entenderlo por el funcionamiento de Torrent.

Aunque no se menciona explicitamente, se puede ver por que es tan complejo escalar Bitcoin

Bitcoin Network

Cada nodo corre el protocolo Bitcoin, tiene una copia de la Blockchain y se conecta a los otros nodos.

Algo que me gustan mucho en el mundo de las criptomonedas es las analogias y ejemplos.
Como con ejemplos podemos ilustrar algo de una manera sencilla.
El ejemplo de la interacción con el grupo social es sensacional, las distintas etapas por la que pasa un nodo para conocer, conectarse, actualizarse y intercambiar informacion.
Creo que otra manera me viera sido un poco dificil entenderlo.
Muy conforme por lo que va del curso !

Una mempool, es una memoria temporal intermedia en donde se almacenan de forma momentánea las transacciones de los usuarios.

Academyhttps://academy.bit2me.com

Me parece que la fuerza latina tiene un sentido de propiedad acedamica mucho mas interesante que los gringos. https://www.youtube.com/watch?v=Usxypgr8Y-w, me gusto este video que encontre sobre el root

RESUMEN CLASE 5:
ARQUITECTURA DE UNA
RED P2P

I.- LA ARQUITECTURA DE UNA RED P2P

  • Todos los participantes son pares entre sí, todos son iguales.

  • Resiliente, descentralizada y abierta.

  • Bitcoin, Napster, BitTorrent.

II.- ANTECEDENTES Y PREDECESORES

III.- BITCOIN NETWORK

  • Conjunto de nodos corriendo el protocolo bitcoin.

  • Protocolos adicionales usan el P2P de bitcoin y extienden la red a otros nodos corriendo esos protocolos adicionales.

  • Extended Bitcoin Network.

IV.- TIPOS DE NODOS

  • Full node

  • Pruning nodes

  • Archive nodes

  • Mining node

  • Simplified payment verification (SPV)

V.- FULL NODE

  • Nodo que valida la cadena completa y sus transacciones.

  • Mantienen un estado actualizado, un conjunto de UTXO.

VI.- PRUNING NODE

  • Nodo que descarga y procesa bloques para generar una base de datos para validación.

  • Desecha bloques antiguos para ahorrar espacio.

VII.- ARCHIVE NODE

  • Contiene una copa de toda la historia de la cadena.

  • Valida y consulta transacciones y bloques en cualquier punto del histórico.

  • Entregan el historial a nuevos nodos para que se conviertan en full nodes.

VII.- MINING NODE

  • Compiten por crear nuevos bloques.

  • Validan transacciones.

  • Fundamentales para la seguridad y el consenso de la red.

  • Mantienen un mempool de transacciones no confirmadas.

  • Mining pools.

VIII.- CLIENTES LIGEROS (SPV)

  • Operan sin almacenar la cadena completa.

  • Descargan solo los encabezados.

  • Confían en otros nodos para validar bloques y transacciones.

  • Profundidad vs Altura.

  • Merkle Path.

IX.- OTROS CONCEPTOS

  • Descarga de bloque inicial (IBD)

  • Bitcoin Core

  • Nodo como servicio

X.- LA INFORMACION EN UN NODO

XI.- MEMPOOL

  • Estructura que contiene los mejores candidatos (transacciones) para minar (agregar un nuevo bloque)

  • Políticas Ejemplo:

    • Transaccion muy pequeña < 82 bytes

    • Transaccion muy grande > 100 kbytes

XII.- FLUJO TRANSACCIONAL

XIII.- NETWORK DISCOVERY

  • Localización geográfica no es relevante.

  • Handshake version message.

  • DNS Seeds.

  • Sync.

El mempool rechaza las transacciones que pueden saturar el trafico en la red basado en políticas.