No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de Bitcoin Core y Script

Curso de Bitcoin Core y Script

Juan Sebasti谩n Marulanda

Juan Sebasti谩n Marulanda

Arquitectura de Bitcoin Core

3/19
Recursos

Bitcoin Core se encuentra alojado en un repositorio de GitHub como muchos otros proyectos OpenSource. El c贸digo fuente puede abrumar al principio, dado que es muy grande e incluye m煤ltiples interfaces o herramientas para interactuar con la Blockchain de Bitcoin.

Cu谩les son las interfaces Bitcoin Core

El repositorio de Bitcoin Core est谩 compuesto por una serie de interfaces para interactuar con los datos de la Blockchain de diversas maneras, dependiendo el prop贸sito y la necesidad como usuario final.

Interfaz red P2P

Bitcoin Core implementa un protocolo de mensajer铆a P2P a trav茅s de TCP entre sus nodos para la comunicaci贸n y la sincronizaci贸n de la informaci贸n.

Los nodos pueden sufrir problemas de seguridad y de denegaci贸n de servicios que provocan que no puedan validar transacciones y, por lo tanto, no puedan operar. Sin embargo, Bitcoin Core implementa propuestas en su protocolo para evitar los ataque DOS.

Interfaz SPV

Simplified Payment Verification (SPV) o Verificaci贸n de Pago Simplificada permite la verificaci贸n de una transacci贸n o la obtenci贸n del balance de una wallet sin necesidad de descargar la ledger completa de la Blockchain de Bitcoin.

La desventaja de SPV es su seguridad. No es posible la verificaci贸n de las transacciones con esta interfaz, ya que un tercero es quien hace entrega de la informaci贸n y esta puede ser corrompida.

SPV se trata de un cliente ligero, ideal para dispositivos m贸viles o tablets, cuyo almacenamiento es m谩s limitado y en donde solo requerimos realizar peque帽as transacciones.

Interfaz RPC/HTTP

Una de las interfaces m谩s importantes de Bitcoin Core es la que permite el desarrollo de cualquier tipo de aplicaci贸n. Permite consultar datos a trav茅s del protocolo RPC (Remote Procedure Call) sobre HTTP.

El mismo funciona a trav茅s de un daemon (demonio) llamado Bitcoind. Un programa que corre en segundo plano y permite la ejecuci贸n de comandos utilizando el bitcoin-cli para la obtenci贸n de informaci贸n y su posterior manipulaci贸n para construir aplicaciones como un explorador de Bitcoin.

Su funcionamiento es similar a una API, aunque t茅cnicamente diferente. Los mineros utilizan esta interfaz para obtener informaci贸n y construir los bloques.

Interfaz Qt

Bitcoin-qt es una de las interfaces m谩s antiguas del proyecto con algo m谩s de 10 a帽os de existencia. La misma consta de un front-end para interactuar con la Blockchain, visualizar estad铆sticas b谩sicas, interactuar con la informaci贸n por medio del bitcoin-cli y de RPC y las funciones b谩sicas de una wallet.

Esta interfaz est谩 en desuso. Al tener RPC/HTTP, podemos verlo como un backend y construir aplicaciones web m谩s sofisticadas y mejores funcionalidades.

Interfaz ZMQ

Las siglas MQ hacen referencia a servicios de mensajer铆a y de entrega de notificaciones o push notificaci贸n. Este tipo de servicios se usan mucho en aplicaciones m贸viles para notificar con informaci贸n sobre su cuenta.

ZMQ o ZeroMQ es el servicio que utiliza Bitcoin Core para el env铆o de notificaciones a los clientes a trav茅s de sockets. M煤ltiples clientes pueden conectarse a un socket para ser notificados cuando se crea un nuevo bloque, una transacci贸n u ocurre un determinado evento en la Blockchain para actuar en consecuencia.

Esta interfaz es 煤til para desarrollar otro tipo de aplicaciones como Lightning Network que aprovecha esta caracter铆stica para mantener su informaci贸n actualizada con la red principal.

Conclusi贸n

Has visto hasta aqu铆 m煤ltiples interfaces, gr谩ficas, por CLI o que utilizan diversos protocolos de intercambio de informaci贸n, que expone Bitcoin Core para interactuar con la Blockchain de Bitcoin o para la construcci贸n de otras aplicaciones.


Contribuci贸n creada por: Kevin Fiorentino (Platzi Contributor).

Aportes 7

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

  • Arquitectura de Bitcoin Core
    • P2P
      • Bitcoin forma una red TCP de mensajer铆a
        • src/protocol.h
      • Cada nodo tiene pares/vecinos con los cuales puede intercambiar informaci贸n.
      • Protecci贸n DoS.
      • SPV.
    • RPC/HTTP
      • Interacci贸n program谩tica de Bitcoin
        • Consultas.
        • Uso de billeteras externas.
        • Menos contribuyentes bloqueados
        • Mineros construyen bloques.
        • Bitcoin-cli permite acceder a esta interfaz a travez de la linea de comandos.
    • Qt
      • Interfaz grafica que expone.
      • Estad铆sticas b谩sicas.
      • Consola RPC
      • Funcionalidades de billetera.
    • ZMQ
      • Publica notificaciones en un socket cuando recibe:
        • Un nuevo bloque
        • Una nueva transacci贸n.
      • Util para otros aplicativos para realizar acciones sobre estos eventos (Lightning Network)

Para que que quede mas claro el concepto del modelo de red que utiliza bitcoin, les dejo 3 clases de diferentes cursos de Platzi que les pueden ayudar:)

  1. 驴C贸mo funciona el modelo TCP/IP?
  2. Modelo TCP/IP
  3. Modelo TCP/IP

Me esperaba un tratamiento mas general de la arquitectura de Bitcoin Core, me es inevitable compararlo con el diagrama del bitcoinbook:
https://cypherpunks-core.github.io/bitcoinbook/ch03.html

Glosario de la clase

  • RCP: Remote Procedure Call: comunicaci贸n en sistemas cliente-servidor

  • Socket: Un Socket o enchufe es el punto final en una conexi贸n, es decir, un dispositivo o elemento electr贸nico que se genera gracias al sistema operativo y que permite el env铆o e informaci贸n de otros procesos que tambi茅n hagan uso de estos.

  • ZMQ - Message oriented middleware: es un middleware de comunicaciones orientado a mensajes

  • Middleware: Es un software que asiste a una aplicaci贸n para interactuar o comunicarse con otras aplicaciones (software, hardware, redes, BD o SO)

  • Hash: En una transacci贸n es la combinaci贸n entre n煤meros y letras (may煤sculas y min煤sculas) que permiten identificar la transacci贸n en la Blockchain

Los nodos pueden desconectar autom谩ticamente a los nodos que intentan inundarlos con datos no deseados o env铆an informaci贸n incorrecta. Esto ayuda a proteger a los nodos honestos de ser sobrecargados por ataques DoS. Para mas informacion [transactions - What protection does Bitcoin have against Denial of Service (DoS) attacks? - Bitcoin Stack Exchange](https://bitcoin.stackexchange.com/questions/499/what-protection-does-bitcoin-have-against-denial-of-service-dos-attacks)

RESUMEN CLASE 3:
AQUITECTURA DE BITCOIN CORE

Interfaces:

I.- P2P

  • Bitcoin forma una red TCP de mensajer铆a.

    • src/protocol.h
  • Cada nodo tiene pares/vecinos con los cuales puede intercambiar informaci贸n.

  • Protecci贸n DoS.

  • SPV (Simplified Payment Verification).

II.- RPC/HTTP (Remote Procedure Call)

  • Interacci贸n program谩tica con Bitcoind

    • Consultas.

    • Uso de billeteras externas.

    • Mineros construyen bloques.

    • bitcoin-cli permite acceder a estar interfaz a trav茅s de la l铆nea de comandos.

III.- Qt

  • Interfaz gr谩fica que expone:

    • Estad铆sticas b谩sicas.

    • Consola RPC.

    • Funcionalidades de billetera.

IV.- ZMQ

  • Publica notificaciones en un socket cuando recibe:

    • Un nuevo bloque.

    • Una nueva transacci贸n.

  • 脷til para otros aplicativos para realizar acciones sobre esos eventos (Lightning Network).

Tremenda clase profe.