5 de abril de 2021 - AUTOR ORIGINAL - Olga Hryniuk - 7 minutos de lectura

Mejorando la descentralización de Cardano con P2P (Persona a Persona)

La comunicación directa entre pares de grupos de participación, hará que Cardano sea más dinámico y más eficiente a medida que la red crece.

Enlace al artículo original

La descentralización de Cardano pone la responsabilidad de correr la cadena de bloques en las manos de los grupos de participación. Un elemento esencial en esto son las conexiones confiables y efectivas entre todos los nodos distribuidos y asegurando que la red sea resistente a fallas.

Con la versión más simple del Blockchain durante la era Byron, los nodos federados (OBFT) controlados por la Fundación Cardano, Emurgo y IOHK fueron totalmente responsables de administrar la producción de bloques y las conexiones de red. Esto mantuvo la red, mientras se construía un sistema de miles de nodos distribuidos, operado por grupos de participación. Para lograr la descentralización, Cardano ya ha finalizado la prevalencia de los nodos federados que apoyaron el sistema desde su creación en 2017.

El 6 de diciembre de 2020, establecimos el parámetro K a 500 para ampliar el número de grupos de participación 'viables' y promover aún más la descentralización. También hemos reducido gradualmente D para poner el poder de la producción de bloques por completo en las manos de la comunidad. El 100% de los bloques ahora están siendo producidos por la comunidad de Operadores de Pools (SPO), lo que significa que la producción de bloques en Cardano está completamente descentralizada. Estos cambios de parámetros son compatibles con la sostenibilidad de la cadena a largo plazo y alientan la propagación de la participación y las posibles recompensas más uniformemente entre los grupos de participación.

En poco más de seis meses, hemos evolucionado a partir de un sistema que dependía de un puñado de nodos federados, a un sistema de pruebas de participación corrido por la comunidad, con miles de bloques producidos en cada época entre más de 2,000 grupos de participación.

La red

La capa de la red de Cardano es una infraestructura física que combina nodos y su interacción en un sistema unificado. La red distribuye información sobre transacciones y la creación de bloques entre todos los nodos activos. De esta manera, el sistema valida y agrega bloques a la cadena y verifica las transacciones. Por lo tanto, una red distribuida de nodos debe mantener los retrasos de la comunicación al mínimo, y ser lo suficientemente resistente para hacerle frente a fallas, limitaciones de capacidad o piratas informáticos.

Bajo el antiguo sistema federado, los nodos eran conectados mediante una configuración estática definida en un archivo de topología. Desde la introducción de Shelley, el sistema ha estado funcionando en un modo híbrido, donde los nodos se conectan a los nodos federados y a los nodos de otros SPOs. Esta conectividad es parcialmente construida manualmente, sin embargo, los SPOs pueden intercambiar información de bloques y transacciones sin requerir los nodos federados.

En su artículo "CARDANO, el camino hacia la descentralización", Marcin Szamotulski discutió el diseño de la red y explicó el enfoque de Cardano de la descentralización de la red con el advenimiento de Shelley. Ahora que hemos alcanzado la descentralización total en términos de producción de bloques, también es esencial que la conectividad de la red sea descentralizada también. Cardano logrará esto a través de un cambio a la conectividad de Peer-to-Peer (P2P) (Persona a Persona que quiere decir Pool a Pool).

Redes P2P

En este punto, deberíamos hablar sobre la 'pila' de la red, un conjunto de herramientas de software recientemente mejoradas por nuestro equipo de ingeniería para hacerle frente a una red más grande, más dinámica y más compleja.

La comunicación P2P mejorará el flujo de información entre los nodos, reduciendo así (y finalmente eliminando) la dependencia de la red en los nodos federados, y habilitando la descentralización de Cardano. Para lograr la resistencia deseada, el equipo de redes de IOHK ha estado ocupado mejorando la pila de red con capacidades P2P avanzadas. Estas mejoras no requieren un cambio de protocolo, sino que permiten la selección y la comunicación automatizadas.
La red P2P está habilitada debido al uso de los siguientes componentes:

Mini protocolos

Un conjunto de mini protocolos permiten la comunicación entre nodos. Cada protocolo implementa un requisito básico de intercambio de información, como informar a los pares del último bloque, compartir los bloques o transacciones de procesamiento. Los protocolos de sincronizacion de cadena (Chain-Sync), recuperación de bloque (block-fetch) y Sometimiento de TX (tx-submission), se han utilizado para distribuir cadenas de bloques y transacciones para la comunicación de nodo a nodo en la red:

  • Block-Fetch extrae información de la base de datos de la cadena.
  • La sincronización de la cadena (Chain-Sync) sincroniza los datos a través de la red.
  • El sometimiento de TX2 (tx-submission2) consume transacciones de Mempools de pares y los agrega al Mempool local, lo que permite a los pares enviar sus transacciones al nodo. Esta es una modificación del protocolo actual de sometimiento de TX.

Estos mini protocolos admiten el protocolo de consenso de Ouroboros. Para garantizar un servicio de redes óptimo, el equipo ha implementado protocolos adicionales:

  • Mantente-vivo (keep-alive): Esto garantiza una conexión continua entre los nodos y minimiza las fallas de rendimiento.
  • ejemplo-punta (tip-sample): Esto proporciona información sobre qué nodos ofrecen una mejor conectividad en términos de rendimiento.

Puede encontrar más información sobre los ejemplos de arquitectura de red y mini protocolos en el sitio web de Cardano Documentation.

Gestión de la conexión

El servicio de redes admite Linux, Windows y MacOS, pero el número de conexiones compatibles varía en cada sistema operativo.

Para evitar la sobrecarga del sistema, un multiplexor combina varios canales en un solo canal de conexión de protocolo de control de transmisión (TCP). Esto ofrece dos ventajas: una, comunicación bidireccional entre nodos (por lo que cualquier nodo puede iniciar la comunicación sin restricciones, ya que ambas partes tienen permisos de lectura y escritura dentro del mismo canal), y una mejora de la comunicación de nodo a nodo sin afectar el rendimiento.

El equipo de redes ha implementado un 'Administrador de conexión' (Bidireccional-consciente) que se integra con el Gobernador P2P, que actualmente está experimentando pruebas finales antes de la implementación. Además, la API del multiplexor se ha actualizado para monitorear nuevas conexiones y protocolos. Esta mejora introduce una gestión de conexión más eficiente y una mejora en el seguimiento de problemas.

Funcionalidad del Gobernador P2P

La red Cardano involucra múltiples nodos de pares. Algunos son más activos que otros, algunos han establecido conexiones, y algunos deben promoverse para garantizar el mejor rendimiento del sistema. Como se discutió en el 'camino de Cardano a la descentralización', los nodos se asignan a tres categorías:

  • Nodos fríos
  • Nodos cálidos
  • Nodos calientes

Para establecer conexiones bidireccionales entre ellos, es crucial que sepamos qué conexiones están activas.

El Gobernador P2P administra las conexiones y proporciona información sobre qué nodos están activos y funcionan bien. Esta función promueve las conexiones de pares para un rendimiento mejorado del sistema y también proporciona una excelente visibilidad al crear y mantener un mapa de conectividad de toda la red. El Gobernador simplificará el proceso de definiciones de conexión al manejarlas automáticamente, por lo que algunos grupos de participación centrales ya no tendrán que configurarlas manualmente. El gobernador promueve o degrada a los nodos entre estados fríos, cálidos y calientes, y también interactúa con el administrador de conexiones para abrir nuevas conexiones o reutilizar las existentes.

Hoja de ruta de implementación P2P

El equipo de red de IOHK se encuentra en las etapas finales de pruebas de calidad de la integración del gobernador P2P con el nodo. Después de esto, el equipo extenderá la pila de red con más protocolos: chismes, en particular, el cual proporcionará intercambio de datos sin problemas entre nodos y ayudará a construir un mapa de comunicación descentralizado.

Estas actualizaciones técnicas nos permiten simplificar las interfaces de nodo de Cardano y mejorar la configuración del sistema. Cuando se finalicen las pruebas, todos los SPOs podrán actualizar y simplificar sus preferencias de configuración para una conectividad mejorada.

Esto implica las siguientes etapas antes de la implementación completa de P2P:

Para ver un recorrido del plan del arquitecto jefe Duncan Coutts, vea este video del March Cardano360 show.

Si bien la gobernanza desempeñó un papel importante en el establecimiento, el mantenimiento y el soporte de la red, solo con la descentralización podemos lograr una verdadera sostenibilidad de la red para garantizar la igualdad de oportunidades para todos los grupos de participación. Por lo tanto, el objetivo de las mejoras de la pila es permitir que todos los grupos de participación ejecuten las mismas configuraciones, estableciendo capacidades iguales dentro de un entorno descentralizado.

Seguiremos proporcionando más actualizaciones de desarrollo en este blog, y también puede seguir las actualizaciones de estado de Cardano para conocer las mejoras y desarrollos recientes.