Aprende lo básico de Aelf en apenas 5 minutos: Tecnología Aelf - Características básicas
Presentación realizada por Guanglei
En el evento celebrado recientemente por Aelf (nuestro primer aniversario), el principal desarrollador, -Guanglei- presentó un desglose técnico de cómo Aelf ha ido implementando las características esenciales del ecosistema de blockchain de Aelf. En este artículo, partiendo de su presentación, voy a desglosarla aún más, destacando algunos de los componentes clave para dar una visión general de la manera más concisa a los componentes del blockchain de Aelf.
Para empezar, cabe mencionar que el objetivo general de Aelf se orienta a la creación de una plataforma de blockchain que sea capaz de soportar un gran número de dApps (aplicaciones descentralizadas) a escala comercial. Para lograrlo, nos mantendremos firmes en la filosofía de emplear muchas de las experiencias y tecnologías, ya desarrolladas en sectores tradicionales relacionados con la TI (Tecnología de la información). La tecnología actual de blockchain Aelf, ha identificado 3 problemas elementales que limitando una adopción a escala masiva de esta tecnología. Estos problemas son:
Control de los blockchains
Falta de segregación de recursos
Procesamiento con un rendimiento deficiente
Con el propósito de alcanzar nuestros objetivos, debemos resolver dichos problemas a medida que desarrollamos nuestro nuevo ecosistema.
Podemos distinguir cinco componentes principales dentro del blockchain de Aelf:
- 1. DPoS
- 2. Cadena principal + cadenas laterales
- 3. Procesamiento en paralelo
- 4. Bases de clúster
- 5. Formación de módulos
Echemos un vistazo a cada uno de estos componentes.
DPoS (Prueba de participación delegada)Este protocolo de consenso permite a las partes interesadas aprobar los votos para elegir los nodos de delegados, los cuales se encargarán de la ejecución de los contratos inteligentes, la generación de bloques y la consecución de acuerdos. Las partes interesadas votarán además acerca de las principales decisiones -Ej.: cómo actualizar los contratos inteligentes del sistema para aplicar nuevas normas en la cadena-. Hemos desarrollado un mecanismo aleatorio para el establecimiento del orden de los nodos delegados. La creación de los bloques se divide por rondas, de modo que cada delegado disponga de un intervalo temporal para producir su respectivo bloque.
Cadena principal + cadenas lateralesTrata acerca del diseño del blockchain. Presenta una naturaleza realmente única, ya que cada cadena lateral se relacionará exclusivamente un solo caso de uso de negocio. La cadena principal sirve básicamente para indexar y hacer un seguimiento del resto de cadenas laterales. Como beneficio de esta indexación, cualquier Cadena Lateral puede acercarse comunicarse con la cadena principal pidiendo la verificación de algunos datos relativos a otra cadena, en cuyo caso lo único requerido es la información de indexación, es decir la raíz del árbol de Merkle almacenada en la Cadena Principal. Puede encontrar información más detallada sobre árboles de Merkle aquí.
aquíProcesamiento en paraleloEl componente relativo al procesamiento en paralelo ha sido diseñado en principio para la compatibilidad con Dapps con altos requerimientos en cuanto a recursos. Si en algún momento dichas aplicaciones terminan con un elevado flujo de transacciones, debemos estar capacitados para cubrir sus necesidades. El procesamiento en paralelo obedece a las siguientes etapas.
En primer lugar, al separar cada cadena lateral en casos de uso específicos, queda minimizado el riesgo de interdependencia (dependencia entre transacciones). Posteriormente, identificamos qué transacciones dentro de una cadena lateral específica dependen de otras dentro de dicha cadena lateral. Esto es posible al obtener los metadatos del código de contrato inteligente y manteniendo un gráfico de solicitudes para todas las peticiones en la cadena. De este modo estaremos capacitados para identificar los recursos que usarán las transacciones.
Bases de clústerOtro componente es la creación de un nodo de clústers, formado por varios ordenadores cooperando en su trabajo. Estos son capaces de procesar transacciones de forma simultánea, evitando el riesgo de que cualquier transacción dependiente sea procesada sin adecuarse al orden previsto. Ello permite además un escalado muy fácil de los nodos sin necesidad de equipos de elevado coste.
Formación de módulosLos componentes de los clústers se despliegan en sus propios "pods". Se usan Kubernetes para gestionar los pods. Al crear cada componente en forma de módulos y desacoplados, estamos en disposición de identificar rápidamente cualquier componente causante de un cuello de botella o ineficiencia dentro del sistema. De esta manera, podemos optimizar el componente específico mejorando todo el sistema. Como ejemplo de ello, cabe destacar la separación del componente de procesamiento y del componente de almacenamiento de la base de datos en los nodos. Hemos sido capaces de optimizar cada componente de forma independiente, derivando en una mejora de la velocidad de nuestra línea de base de pruebas hasta alcanzar las 15.000 transacciones/segundo.
IndexaciónLa indexación pretende facilitar la verificación de la efectiva existencia, así como el orden en la ejecución de las transacciones. El encabezado del bloque será enviado a la cadena principal en la que un minero de la cadena principal, desglosa los datos junto con el resto de encabezados de bloque enviados, y creará un bloque en la cadena principal. La cadena lateral recuperará la cabecera del bloque desde cadena principal, el cual será empleado para la verificación.
Mejoras ulterioresContinuamos implementando nuevas mejoras en el desarrollo de nuestra cadena.
- Codificación de contratos inteligentes y extracción de metadatos. Tenemos que desarrollar una norma sobre cómo desarrollar los contratos inteligentes, asegurando la extracción correcta de sus metadatos.
- Optimización del tiempo de agrupación. La ejecución de transacciones constituye la piedra angular del blockchain, por lo que preferimos que el proceso de agrupación dure lo mínimo.
- Firma y verificación. Esta suele ser una operación que consume mucho tiempo. También hemos creído oportuno, incorporar un componente de procesamiento paralelo en la fase de verificación de las transacciones.
Presentación íntegra: