Especificaciones Técnico-Operativas de LACNet


Capítulo 1

Tipos de nodos y topología de la Red

La Red cuenta con cuatro tipos de nodos: validadores, boot, escritores y observadores. Cada nodo tiene un rol diferente lo que motiva que sus derechos y deberes sean distintos. Las características de los nodos son las siguientes:

  • Nodos validadores: Los nodos validadores tienen como principal tarea la generación de bloques mediante la participación en el protocolo de consenso de tipo proof of authority, concretamente IBFT 2.0[1]. Estos nodos deben de conectarse con todos los validadores y todos los boot, según se indica en las reglas del contrato de permisionado de la Red que estos nodos están configurados para obedecer por defecto. Los nodos validadores no deben conectarse con ningún nodo escritor de forma directa.
  • Nodos boot: Los nodos boot sirven como proxy para conectar los nodos validadores con nodos escritores y observadores. También sirven para compartir con nodos recién permisionados la historia de transacciones y el estado actual de la Red, así como la lista de nodos disponibles para conectarse de acuerdo con las reglas de conexión establecidas en el contrato de permisionado. Los nodos boot deben conectarse con todos los validadores y con aquellos escritores y observadores que se indiquen en el contrato de permisionado, para lo cual están preconfigurados. Los nodos boot sirven como un primer filtro para identificar transacciones inválidas de acuerdo con lo establecido en la Sección 5 de este documento.
  • Nodos escritores: Los nodos escritores tienen como principal tarea la introducción de transacciones en la red provenientes de todo tipo de servicios y aplicaciones (tanto centralizadas como descentralizadas). Estos nodos sirven como puerta de entrada a la red a todas las entidades que buscan beneficiarse del uso de la misma tanto para registrar como para consultar información. El envío de transacciones a la red se organiza según se describe en la Sección 4 del presente Contrato y las condiciones de validez de transacciones se establecen en la Sección 5. Los nodos escritores pueden conectarse con los nodos boot indicados en el contrato de permisionado.
  • Nodos observadores: Los nodos observadores pueden ver el historial de transacciones y el estado de la Red pero no pueden enviar transacciones, participar en el protocolo de consenso ni realizar ninguna otra tarea diferente de la observación y consulta de información en la red.

La Figura 2 presenta un esquema de la topología de la red y conexiones entre nodos, que obedece a la topología establecida en el Framework de LACChain para redes permisionadas públicas[2]. Para el establecimiento de comunicación p2p entre nodos se utiliza el puerto 60606 (TCP/UDP) y para la conexión entre nodos escritores y aplicaciones o servicios externos a la red se propone el uso del puerto 4545 (TCP).

Figura 2. Topología LACChain aplicada en las redes orquestadas por L-Net.

Todos los nodos en su instalación por defecto se comportan de acuerdo con lo establecido en este documento. Cualquier modificación del nodo por parte del Solicitante encargado de su operación deberá realizarse asegurando que no afecta el cumplimiento de las normas establecidas en el presente Contrato.

Permisionado, despermisionado y re-permisionado de nodos

El permisionado de nodos en la Red consiste en el registro del identificador enode en el contrato inteligente de permisionado que todos los nodos de la Red deben de seguir a la hora de establecer sus conexiones. Este contrato está administrado por el Equipo Operacional de L-Net de forma totalmente transparente.

El Equipo Operacional de L-Net permisiona y despermisiona nodos obedeciendo a las condiciones establecidas en el presente Contrato, de manera que cualquier entidad que formaliza su relación con L-Net mediante la firma del Contrato de Adscripción y realiza el pago correspondiente de la membresía será permisionado en la Red y operará en esta al mismo nivel jerárquico que cualquier otra entidad. En caso de que una entidad incumpla las condiciones establecidas en el presente Contrato será despermisionado, lo que implica la eliminación de su identificador enode del contrato de permisionado y el consecuente bloque al nodo por parte del resto de nodos de la Red.

El re-permisionado de nodos que hayan sido despermisionados se realizará de acuerdo a los procesos de aclaración de violaciones de las reglas y políticas de uso de la Red descritos a lo largo del presente Contrato.  En caso de pérdida, extravío o robo del control sobre el nodo, tras la notificación por parte del Solicitante según lo establecido en el inciso g) de la cláusula 3 del presente Contrato, se procederá a dar de baja el nodo comprometido y a permisionar el nuevo nodo habilitado por la entidad como reemplazo.

  • Gestión del uso de la Red y modelo de distribución de GAS

 

L-Net ha desarrollado un modelo vanguardista de distribución de recursos en la Red que permite garantizar disponibilidad de registro de transacciones para todos los operadores de nodos escritores con límites establecidos según la membresía contratada. Este modelo elimina la necesidad de un pago por transacción y al mismo tiempo previene ataques de denegación de servicio. El modelo administra el GAS que los nodos escritores pueden utilizar. El GAS es la magnitud en la que se mide la complejidad computacional que tiene para los nodos de una Red basada en Ethereum la ejecución de una transacción. Cuanto mayor complejidad, mayor GAS asociado.

El modelo de distribución de GAS establece un límite de GAS por bloque que cada nodo escritor puede consumir. Estos límites se calculan automáticamente de acuerdo con un algoritmo desarrollado por L-Net que dependen del tipo de membresía contratada y del grado de utilización de la red por el conjunto total de nodos escritores (cuanto menos utilizada este la Red, más GAS se disponibilidad por bloque, y viceversa). Existen tres tipos de membresías (Básica, Estándar y Premium) cuyas características y precios se describen en el link3.

Gracias al algoritmo, los límites son recalculados de forma constante y dinámica para garantizar la mayor optimización posible de la Red y los resultados se exponen en el contrato inteligente que corresponde dentro de esta solución. El algoritmo es el siguiente:

 

Entrando aquí se ofrecen un ejemplo de aplicación del algoritmo.

Los nodos escritores están pre-configurados con un componente que realiza una contabilidad local del GAS consumido por las transacciones que envía a la Red durante el periodo de generación de cada bloque (que es de dos segundos en promedio en circunstancias normales), para lo que tienen en cuenta el parámetro “GAS limit” establecido en la propia transacción. Además, al comienzo de cada bloque este mismo componente consulta al contrato inteligente correspondiente cuánto GAS puede utilizar como máximo en ese bloque. Cuando se alcanza el límite de GAS, el nodo deja de enviar transacciones y devuelve un error por exceso de GAS por bloque. Se recomienda tanto a los administradores de aplicaciones y servicios conectados con la Red como a los operadores de nodos escritores el manejo de colas que permitan el re-envío de transacciones rechazadas tanto por este como por otros motivos, lo cual es un comportamiento natural dado el carácter asíncrono de blockchain.

Si un nodo escritor envía una transacción a la red que exceda el límite de GAS que le corresponde será automáticamente despermisionado de la Red. El proceso de re-permisionado del nodo se dará de acuerdo con las condiciones establecidas en la cláusula tercera del presente Contrato y en la cláusula segunda del presente documento.

Condiciones de validez para las transacciones

 

Las transacciones enviadas a la Red deben de cumplir con unos requisitos específicos para ser consideradas válidas. Las transacciones que no cumplan con estos requisitos serán rechazadas por la Red. Aquellos nodos que sean modificados por sus operadores para aceptar transacciones inválidas serán automáticamente despermisionados. El proceso de re-permisionado se dará de acuerdo con las condiciones establecidas en el presente Contrato. Los requisitos para transacciones enviadas a la Red son:

  • El destino de la transacción debe ser el contrato inteligente denominado RelayHub.
  • El límite de GAS establecido para la transacción debe garantizar la ejecución del contrato inteligente RelayHub (incluyendo las partes fija y variable). La parte variable depende de la cantidad de bytes enviados en la transacción, lo que garantiza la ejecución del RelayHub y evita excepciones (errores) de falta de gas.
  • El precio del GAS seteado en la transacción debe de ser 0, puesto que las redes orquestadas por L-Net no tienen coste por transacción.
  • Para garantizar que las transacciones enviadas por servicios y aplicaciones conectados con la Red no son alterados por los operadores de nodos escritores que las introducen en la Red ni por ningún otro actor malicioso, la transacción debe incluir dos parámetros adicionales a los parámetros relacionados con el contrato inteligente destino. Estos dos parámetros son “nodeAddress” y “expiration”, y sus valores son el identificador enode del nodo escritor que se desea que envíe la transacción a la red y la fecha de expiración de la misma. Esto garantiza que solamente el nodo escritor seleccionado podrá enviar la transacción y que debe de hacerlo antes de la fecha de expiración indicada. De lo contrario, la transacción será rechazada por la Red.
  • Una vez la transacción enviada por el servicio o aplicación llega al nodo escritor que la va a introducir en la red, este debe generar una nueva transacción que contenga la original pero que sea enviada por su propia cuenta de nodo escritor, la cual debe estar registrada en el contrato de permisionado de cuentas por el Equipo Operacional de L-Net (típicamente, esto se conoce como una meta transacción). Toda transacción que no esté co-firmada por la cuenta de un nodo escritor permisionado en la Red será rechazada.

Los nodos escritores están pre-configurados para construir y firmar estas transacciones de manera automática. Solamente los administradores de las aplicaciones y servicios que construyan las transacciones necesitarán añadir a sus transacciones y por su propia seguridad los dos parámetros mencionados.

Esquema de rotación de nodos validadores

L-Net ha desarrollado un esquema vanguardista de rotación de nodos validadores siguiendo las reglas establecidas en el Framework de LACChain para redes permisionadas públicas[1]. Este esquema permite que cualquier entidad con las capacidades técnicas y el compromiso operacional para operar un nodo validador pueda hacerlo, aportando descentralización y diversidad al protocolo de consenso.

El esquema establece en 11 el número de nodos validadores activos y habilita un pool de nodos validadores inactivos que están en constante rotación con los activos. Para determinar los nodos a rotar, se establece un sistema de puntuación para todos los nodos validadores en función de su comportamiento que tiene en cuenta el tiempo de procesamiento y generación de bloques, el uptime, o el grado de descentralización que aporta a la red, entre otros.

Para ciertas métricas existen límites por debajo de los cuales se considera que el nodo validador no está funcionando de manera aceptable. Los límites establecidos son:

  • La generación de menos del 85% de los bloques esperados
  • La generación de bloques con un tiempo promedio mayor al doble del promedio del resto de nodos validadores
  • Un uptime inferior al 95%

Hay dos tipos de procedimientos de rotación de nodos.

  • Los nodos activos operando por debajo de los límites establecidos son automáticamente rotados por nodos inactivos.
  • Los nodos activos operando de forma adecuada acumulan un puntaje. Con una frecuencia variable, establecida inicialmente en dos semanas, se asigna una probabilidad de rotación a los nodos validadores activos que es inversamente proporcional a su puntaje (cuanto mejor sea su puntaje menor será su probabilidad de rotación) y tomando como base esas probabilidades se seleccionan dos nodos de los once activos para ser rotados por dos nodos inactivos. El manejo de probabilidades permite evitar determinismos en la selección que puedan jugar en contra de la salud del protocolo de consenso.
  • Canales privados

 

La Red habilita canales privados a disposición opcional de los operadores de nodos escritores. Los canales privados permiten establecer conexiones privadas fuera de la Red. L-Net no tiene acceso o control ni asume ningún tipo de responsabilidad sobre estos canales privados. Los operadores de nodos escritores que decidan establecerlos son enteramente responsables de su uso y gobernanza.

Almacenamiento descentralizado

La Red habilita soluciones de almacenamiento descentralizado tipo IPFS y similar que permiten a los operadores de nodos escritores el registro y la compartición de archivos pesados. L-Net no asume ningún tipo de responsabilidad sobre estas soluciones de almacenamiento descentralizado. Los operadores de nodos escritores que decidan establecerlos son enteramente responsables de su uso.

_____

[1] https://publications.iadb.org/publications/english/document/LACChain-Framework-for-Permissioned-Public-Blockchain-Networks-From-Blockchain-Technology-to-Blockchain-Networks.pdf

[1] https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/

[2] https://publications.iadb.org/publications/english/document/LACChain-Framework-for-Permissioned-Public-Blockchain-Networks-From-Blockchain-Technology-to-Blockchain-Networks.pdf

Copyright 2024 © All rights Reserved. Designed by LACNet