馃嚜馃嚫 Explora Cardano: 2. Arquitectura: a. Resumen de la arquitectura de Cardano

Explora Cardano: 2. Arquitectura: a. Resumen de la arquitectura de Cardano

Esta secci贸n describe la arquitectura de alto nivel de Cardano. Proporciona detalles sobre los componentes principales y sus interacciones, y discute brevemente las eras e implementaciones de Cardano.

Arquitectura de alto nivel de Cardano

El siguiente diagrama resume la interacci贸n entre los componentes del sistema de Cardano:

explore-2a-1

Componentes del sistema

La implementaci贸n actual de Cardano es altamente modular. Incluye los siguientes componentes (los diferentes casos de uso utilizar谩n diferentes combinaciones de componentes):

Nodos y nodos remotos

Un sistema blockchain consiste en un conjunto de nodos distribuidos en una red que se comunican entre s铆 para lograr un consenso sobre el estado del sistema.

Los nodos se encargan de:

  • Ejecuci贸n del protocolo Ouroboros
  • Validaci贸n y retransmisi贸n de bloques
  • Producci贸n de bloques (algunos nodos)
  • Proporcionar informaci贸n sobre el estado de la blockchain a otros clientes locales

S贸lo puedes confiar en los nodos ejecutados por ti o por tu organizaci贸n. Por eso Daedalus ejecuta un nodo en segundo plano.

El proceso nodo

El cardano-node es el nivel superior del nodo y est谩 formado por los dem谩s subsistemas, de los cuales los m谩s significativos son el consenso, el libro mayor y la red con la configuraci贸n auxiliar, la CLI, el registro y la supervisi贸n.

Node-to-Node IPC protocol

El prop贸sito del node-to-node Inter-Process Communication (IPC) protocol es permitir el intercambio de bloques y transacciones entre nodos como parte del algoritmo de consenso Ouroboros.

The node-to-node protocol es un protocolo compuesto, que consta de tres "mini-protocolos鈥:

  • chain-sync : Se utiliza para seguir la cadena y obtener las cabeceras de los bloques.
  • block-fetch : Se utiliza para obtener cuerpos de bloque.
  • tx-submission : Se utiliza para las transmisiones de transacciones.

Estos miniprotocolos se multiplexan en una 煤nica conexi贸n TCP (Transmission Control Protocol) de larga duraci贸n entre nodos. Pueden ejecutarse en ambas direcciones en la misma conexi贸n TCP para permitir configuraciones peer-to-peer (P2P).

El protocolo general -y cada miniprotocolo- est谩 dise帽ado para un entorno sin confianza en el que ambas partes necesitan protegerse de los ataques de denegaci贸n de servicio (DoS). Por ejemplo, cada miniprotocolo utiliza un flujo de control dirigido por el consumidor, de modo que un nodo s贸lo solicita m谩s trabajo cuando est谩 preparado, en lugar de que se le imponga trabajo.

El dise帽o del protocolo es modular y evolutivo: la negociaci贸n de la versi贸n se utiliza para acordar el conjunto de miniprotocolos a utilizar, lo que permite a帽adir miniprotocolos adicionales o actualizados con el tiempo sin causar problemas de compatibilidad.

Node-to-Client IPC

El prop贸sito del node-to-client IPC protocol es permitir que las aplicaciones locales interact煤en con la blockchain a trav茅s del nodo. Esto incluye aplicaciones como backends de monederos o exploradores de blockchain. El protocolo de nodo a cliente permite a estas aplicaciones acceder a los datos brutos de la cadena y consultar el estado actual del libro mayor. Tambi茅n ofrece la posibilidad de enviar nuevas transacciones al sistema.

El protocolo de nodo a cliente utiliza el mismo dise帽o que el protocolo de nodo a nodo, pero con un conjunto diferente de miniprotocolos, y utilizando rutas locales en lugar de conexiones TCP. Como tal, es una interfaz estrecha de nivel relativamente bajo que expone s贸lo lo que el nodo puede proporcionar de forma nativa. Por ejemplo, el nodo proporciona acceso a todos los datos brutos de la cadena, pero no proporciona una forma de consultar los datos de la cadena. El trabajo de proporcionar servicios de datos y APIs de nivel superior m谩s convenientes se delega a clientes dedicados, como cardano-db-sync y el backend del monedero.

El protocolo de nodo a cliente consta de tres miniprotocolos:

  • chain-sync : Se utiliza para seguir la cadena y obtener bloques
  • local-tx-submission : Se utiliza para presentar las transacciones
  • local-state-query : Se utiliza para consultar el estado del libro mayor

La versi贸n de nodo a cliente de chain sync utiliza bloques completos , en lugar de s贸lo cabeceras de bloque. Por eso no se necesita un protocolo de obtenci贸n de bloques separado. El protocolo de local-tx-submission es como el protocolo tx-submission de nodo a nodo pero m谩s simple, y devuelve los detalles de los fallos de validaci贸n de las transacciones. El protocolo de local-state query proporciona acceso al estado actual del libro mayor, que contiene muchos datos interesantes que no se reflejan directamente en la cadena.

Lee m谩s sobre el dise帽o del protocolo de red y los protocolos de comunicaci贸n de los nodos de Cardano.

Command line interface (CLI)

La herramienta CLI del nodo es la 鈥渘avaja suiza鈥 del sistema. Puede hacer casi todo, pero tiene un nivel bastante bajo y no es muy conveniente porque est谩 basada en texto y carece de una interfaz gr谩fica de usuario (GUI).

La herramienta CLI puede:

  • Consultar el nodo para obtener informaci贸n
  • Entregar transacciones
  • Construir y firmar transacciones
  • Gestionar las claves criptogr谩ficas

Monedero Daedalus

Daedalus es un monedero de nodo completo que ayuda a los usuarios a gestionar su ada, y puede enviar y recibir pagos en la blockchain de Cardano. Daedalus consiste en un frontend de cartera y un backend. El frontend es la aplicaci贸n gr谩fica que los usuarios ven y con la que interact煤an. El backend es un proceso de servicio que monitoriza el estado del monedero del usuario y hace todo el 鈥渢rabajo pesado鈥, como la selecci贸n de monedas, la construcci贸n de transacciones y el env铆o. El backend interact煤a con un nodo local a trav茅s del protocolo IPC de nodo a cliente, e interact煤a con el frontend a trav茅s de una API HTTP. El backend tambi茅n proporciona una CLI que permite la interacci贸n con el monedero. El backend del monedero tambi茅n puede utilizarse por s铆 mismo -sin Daedalus- a trav茅s de su API. Esta es una forma conveniente para que los desarrolladores de software integren Cardano con otras aplicaciones y sistemas.

Aconsejamos que los usuarios m谩s avanzados que quieran utilizar Cardano comiencen con Daedalus.

cardano-db-sync

El nodo cardano s贸lo almacena la propia blockchain y la informaci贸n asociada necesaria para validar la cadena de bloques. Este principio de dise帽o consiste en minimizar la complejidad del c贸digo y reducir el coste computacional y el uso de los recursos, para mantener las interfaces locales del nodo lo m谩s reducidas posible y utilizar clientes externos para proporcionar una variedad de interfaces convenientes y funcionalidades adicionales. En particular, el nodo no proporciona una interfaz de consulta conveniente para la informaci贸n hist贸rica en el blockchain. Este servicio de datos lo proporciona un componente independiente que utiliza una base de datos Structured Query Language (SQL).

Lee m谩s sobre:

Sobre las 茅pocas y las implementaciones de Cardano

Cardano es un libro mayor distribuido de tercera generaci贸n. Se basa en Ouroboros, un algoritmo de consenso de blockchain de prueba de participaci贸n (PoS) revisado por pares que apareci贸 por primera vez en la principal conferencia de investigaci贸n en criptolog铆a del mundo (the International Association for Cryptologic Research 37th International Cryptology CXonference - Crypto 2017).

El nombre Cardano es el nombre general dado a la plataforma, que ha pasado por m煤ltiples 茅pocas e implementaciones . Estos conceptos necesitan m谩s explicaci贸n.

脡pocas

Existen varias 茅pocas dentro de la evoluci贸n de Cardano. Cada era (Byron, Shelley, Goguen, Basho y Voltaire) se refiere a las reglas del libro mayor. Por ejemplo, qu茅 tipos de transacciones y qu茅 datos se almacenan en el libro mayor, o la validez y el significado de las transacciones.

La evoluci贸n de la red principal de Cardano comenz贸 con las reglas del ledger Byron (era Byron). La red principal se someti贸 a una bifurcaci贸n dura a finales de julio de 2020 para cambiar las reglas de Byron por las reglas del libro mayor de Shelley. Por lo tanto, este hard fork marc贸 el comienzo de la era Shelley.

Implementaciones

La primera implementaci贸n de Cardano se introdujo al inicio de la mainnet de Cardano, all谩 por septiembre de 2017. Esta implementaci贸n soportaba exclusivamente las reglas del ledger Byron.

A continuaci贸n, emprendimos una reimplementaci贸n completa de Cardano, lo que permiti贸 dos cambios fundamentales: la compatibilidad con m煤ltiples conjuntos de reglas del libro mayor y la gesti贸n del proceso de bifurcaci贸n dura para pasar de un conjunto de reglas al siguiente. En otras palabras, la nueva implementaci贸n puede soportar tanto las reglas de Byron como las de Shelley, lo que signific贸 que, cuando se despleg贸 en la red principal a principios de 2020, la implementaci贸n tambi茅n era totalmente compatible con las reglas de Byron. Esto permiti贸 una transici贸n suave de la antigua a la nueva implementaci贸n. Una vez que todos los usuarios de Cardano actualizaron sus nodos a la nueva implementaci贸n, fue posible invocar el hard fork y cambiar a las reglas Shelley.

Se utiliz贸 una tercera implementaci贸n de Cardano en la Shelley Incentivized Testnet (ITN). Este sistema soportaba un subconjunto significativo de las reglas de Shelley, y lo utilizamos para probar la din谩mica econ贸mica y social del sistema de delegaci贸n de Shelley.

Esta visi贸n general de la arquitectura de Cardano refleja la implementaci贸n actual de Cardano desplegada en la red principal, no las implementaciones originales o ITN.


Encuentra una copia oficial de este documento aqu铆:

https://docs.cardano.org/explore-cardano/cardano-architecture/overview

M谩s traducciones de Cardano en: Cardano For The World