Comparación de Lisk Core v3.0.0 con Lisk Core v2.1.6

enero 30, 2022 VICTOR HUGO LAZARTE 0 Comments

 


Nuestro próximo Lisk Core v3.0.0 (denominado " Lisk Core v3 " a continuación), presenta una gran cantidad de mejoras en el nivel de código, así como múltiples características nuevas en el nivel de protocolo. El propósito de esta publicación de blog es mostrar los resultados generales de nuestros análisis con respecto a las mejoras de rendimiento y compararlos con el rendimiento de Lisk Core v2.1.6 (denominado " Lisk Core v2 " a continuación), que se utiliza actualmente. para operar la red Lisk. Para lograr esto, nos enfocamos en cuatro casos de prueba específicos, a saber, rendimiento de consultas , crecimiento del tamaño de bloque, procesamiento de bloques y transacciones por segundo (TPS) .

Tenga en cuenta que Lisk Core v2 está construido con Lisk SDK v2.3.8 y Lisk Core v3 está construido con Lisk SDK v5.0.0, por lo tanto, la mayoría de los resultados de referencia que se presentan a continuación también son aplicables a las aplicaciones de cadena de bloques creadas con Lisk SDK v5. 0.0. 

Además, todas las pruebas se realizaron en un servidor de DigitalOcean que constaba de 4 CPU y 8 GB de RAM para ambas versiones de Lisk Core. Para garantizar que se lograra un alto nivel de precisión, realizamos todas las pruebas 500 veces para formar los niveles límite superior e inferior, además de calcular los valores promedio.


 Rendimiento de respuesta a consultas


Una consulta se puede definir como una solicitud de información, por lo tanto, en nuestro caso, el rendimiento de la respuesta de la consulta define el tiempo requerido para obtener una respuesta de una solicitud de la API. En todas las pruebas, el tiempo se midió en milisegundos (ms). Además, en Lisk Core v3 ahora admitimos puntos finales HTTP y WebSocket. Por lo tanto, ambos se comparan con los puntos finales HTTP en Lisk Core v2.

El rendimiento de la respuesta a consultas es especialmente importante para que las interfaces de usuario recuperen rápidamente toda la información de una cadena de bloques. La adición de WebSockets respalda aún más el desarrollo de interfaces de usuario en tiempo real.


En promedio, el rendimiento de la respuesta a consultas para puntos finales HTTP ha mejorado hasta 2,5 veces y para puntos finales WebSocket hasta 8 veces. Estas mejoras ahora hacen posible recibir información importante como una cuenta, un bloque o una transacción a través de los puntos finales de WebSocket en un promedio de 1 ms.

 Se puede extraer más información de las tablas a continuación.

Obtener cuenta por dirección

Obtener bloqueo por ID

Obtener bloque por altura

Obtener transacción por ID

Crecimiento del tamaño del bloque


Cada cadena de bloques utiliza una base de datos para almacenar su información. Lisk Core v2 usa la base de datos relacional de objetos PostgreSQL, mientras que Lisk Core v3 usa la base de datos clave-valor RocksDB.

El crecimiento del tamaño del bloque define cuánto espacio utiliza un bloque en la base de datos. Esta es una métrica importante ya que define qué tan fácil es mantener un nodo completo y sincronizarse completamente con la red. Ambas acciones son cruciales para mantener la red descentralizada. Sin embargo, también está en contraste directo con la escalabilidad de la red, ya que los bloques más grandes dan como resultado que se puedan procesar más transacciones. Por lo tanto, es importante diseñar el sistema de la manera más eficiente posible para poder almacenar tantas transacciones como sea posible y, al mismo tiempo, mantener un crecimiento de blockchain relativamente equilibrado.


En estas pruebas realizadas aquí el tamaño se midió en kilobytes (kB). Del análisis de los resultados es evidente que se produjo una gran disminución en el tamaño del bloque para los bloques vacíos y una tremenda disminución para los bloques que contenían transacciones. Para comparar el tamaño de la cadena de bloques con la cadena de bloques de producción actual operada con Lisk Core v2, hemos creado una cadena de bloques muy similar con Lisk Core v3. Con alrededor de 3,3 millones de transacciones, Lisk Core v2 tiene un tamaño de cadena de bloques de 10 GB y Lisk Core v3 tiene un tamaño de cadena de bloques de 1 GB. Por lo tanto, el tamaño requerido de la cadena de bloques ha disminuido y ahora es unas 10 veces más pequeño.

Tamaños de bloque en diferentes situaciones

Procesamiento de bloques


Es necesario que cada nodo completo de la red procese cada bloque para validar que cada transacción en él sea válida. Esto garantiza que cada participante de la red esté siempre en posesión del estado correcto y actualizado más reciente de la cadena de bloques. En caso de que el nodo completo también sea un validador en el algoritmo de consenso DPoS de Lisk, esto garantiza aún más que todas las transacciones enviadas en la red de Lisk sean válidas y puedan confirmarse. Por lo tanto, esto da como resultado que la cadena de bloques continúe progresando y garantiza que todas las transacciones se manejen correctamente.

Con un tiempo de bloque de solo 10 segundos, es de vital importancia que un nodo completo pueda recibir, procesar completamente y reenviar el bloque completo con todas sus transacciones dentro de ese marco de tiempo. Actualmente, Lisk admite múltiples tipos de transacciones, por lo tanto, realizamos la prueba con bloques que no contienen transacciones, transacciones de transferencia regulares y transacciones de voto delegado. Todas las medidas se realizaron en milisegundos.

Los resultados muestran claramente que el procesamiento de bloques ahora es significativamente más rápido. De hecho, ha disminuido en promedio 3 veces para bloques vacíos y más de 33 veces para bloques que contienen transacciones.

Bloques vacíos


Bloques con Transacciones de Transferencia




Bloques con transacciones de voto de delegado



Transacciones por segundo (TPS)


La métrica más extendida para comparar varias redes blockchain es la cantidad de transacciones que pueden procesar por segundo. Por ejemplo, Bitcoin actualmente puede procesar alrededor de 7 TPS y Ethereum ronda los 18 TPS.

Gracias a las mejoras de rendimiento del procesamiento de bloques, ahora se pueden validar más bloques y transacciones en menos tiempo. Además, gracias a las mejoras en el crecimiento del tamaño de los bloques, ahora se pueden almacenar más bloques y transacciones con menos espacio requerido.

Posteriormente, eso da como resultado que se pueda colocar una mayor cantidad de transacciones en un solo bloque, ya que cada transacción tiene un tamaño específico y, por lo tanto, la cantidad de transacciones dentro de un solo bloque está definida por el tamaño del bloque.

Con Lisk Core v3, hemos definido un límite superior de 15 kB por bloque en un tiempo de bloque de 10 s para mantener el crecimiento anual del tamaño de la cadena de bloques por debajo de los 50 GB. Esto da como resultado 11,25 TPS o 972 000 transacciones por día para transacciones de transferencia regulares. Esto garantiza que, en el mundo actual, todos los usuarios puedan ejecutar fácilmente un nodo completo para validar todos los bloques y transacciones por sí mismos. Por lo tanto, esta es una mejora significativa ya que es 5 veces más de lo que Lisk Core v2 puede procesar.


Conclusión


La próxima migración de Mainnet v3 no solo vendrá con una inmensa cantidad de nuevas funciones de protocolo, sino también con mejoras de rendimiento clave para aumentar la estabilidad y la escalabilidad. Esto dará como resultado garantizar que la cadena de bloques de Lisk esté lista para manejar la mayor carga de trabajo con la interoperabilidad de Lisk en el futuro.


Para obtener más información, puede encontrar nuestra presentación Lisk.js 2021 de Benchmarking Lisk Core 3.0.0 a continuación.



  • Fuente: blog de Lisk,

  Nuestro próximo Lisk Core v3.0.0 (denominado "   Lisk Core v3   " a continuación), presenta una gran cantidad de mejoras en el n...