Informe de NEMTUS # 1 StressTestFest

Gracias nuevamente por su participación en la prueba de resistencia larga denominada StressTestFest que se llevó a cabo el 28 de enero. ¡Logramos seguir agregando estrés durante todo el período de prueba sin brechas e interrupciones del flujo de transacciones!

El siguiente es un resumen de los resultados de la implementación. Surgieron algunos problemas y el estado actual de estos problemas también se muestra aquí.

Fecha y hora

Jueves, 28 de enero de 2021 18: 00-22: 00 (JST)

Día antes del evento

Hemos estado agregando algunas “pruebas de la comunidad” dentro de NEMTUS. El 27 de enero, ocurrió una situación problemática en la red de pruebas.

  • Cuando se generó y ejecutó una “combinación de transacciones complejas” como un AggregateTx, se retrasó la generación de bloques y se detuvo un número de nodos.
  • Ya hemos informado de esto a NGL y ya se han tomado medidas.

Agenda

  • Una guía para la Desktop Wallet de Symbol (Matsuoka)
  • Cómo utilizar la herramienta de prueba de esfuerzo (Yoshiyuki)
  • Explicación sobre el problema de la red / nodo del 27 de enero (miércoles) y un plan para la reproducción del problema en esta prueba de resistencia (Okada)

Visión general

Desde el punto de vista de la prueba de esfuerzo, la carga aplicada a la red de pruebas de Symbol fue bastante satisfactoria y el objetivo de nuestro evento quedó despejado.

Resultados

  • La red de prueba de Symbol tiene un tiempo de generación de bloques de 30 segundos y cada bloque puede contener 6000tx. Teóricamente puede manejar 200tx / segundo, 120000tx / 10min. Nuestra prueba de resistencia siguió enviando más transacciones a la red que esta.
  • Se informaron problemas frecuentes, como tiempos de espera en el envío de transacciones con billeteras, etc. Estos problemas pueden ser causados por un comportamiento problemático de la billetera en sí, pero principalmente porque la puerta de enlace REST recibe más accesos que la cantidad de accesos que puede manejar. Cuando la puerta de enlace REST no pudo completar el proceso dentro de un período de tiempo específico, las transacciones correspondientes se devolvieron con mensajes de tiempo de espera. Los mensajes de “caché de transacciones no confirmadas lleno” también se informaron con frecuencia dentro de la herramienta de estrés.
  • Cuando la mayoría de los bloques se llenaron con una gran cantidad de transacciones y parecía haber una cantidad significativa de transacciones no aprobadas en espera, algunos bloques incluían solo una pequeña cantidad de Tx asociadas con altas tarifas de transacción. Esto fue el resultado del nodo que cosechó el bloque tratando de obtener la tarifa máxima a través de una estrategia de maximización de tarifas. Esto no fue un mal funcionamiento de los nodos, sino el comportamiento previsto de ellos.

Para obtener más información, consulte “Fenómeno ocurrido durante la prueba” a continuación.

  • De la observación de la lista de nodos de Symbol la mayoría de los nodos se sincronizaron y la red en su totalidad pudo continuar trabajando en conjunto bajo el estrés de una gran cantidad de solicitudes.

Número de direcciones y nodos participantes

Los miembros de la comunidad continuaron haciendo hincapié en la red de pruebas, principalmente utilizando la herramienta de prueba de estrés creada por Yoshiyuki-san.

  • Número de direcciones que participaron utilizando la herramienta de prueba: 667 (*1)
  • Número de nodos de destino: 461

1: En cuanto a la cantidad de direcciones participantes, solo contamos la cantidad de direcciones que participaron utilizando la herramienta de prueba de estrés. Por lo tanto, el número real de direcciones participantes probablemente sea mayor.

Distribuidor de Symbol Network:http://symbol-disturber.s3-website-us-east-1.amazonaws.com/

Resultados durante las pruebas de estrés

  1. Número total de solicitudes durante la prueba de estrés
  • 7,542,827 (18: 00-22: 00 JST)
  • 7,249,639 (19: 00-22: 00 JST) ¡Se han enviado más de siete millones de solicitudes!

Número de transmisiones creadas por el distribuidor de Symbol Network

Número de transmisiones creadas por el distribuidor de Symbol Network

2. Número de transmisiones incorporadas en la cadena de bloques de Symbol durante la prueba de estrés: 1.751.022

  • Número promedio de TXs por bloque: 4025,3
  • Tasa de ocupación del bloque: 67,1%
  • Promedio de TXs incorporadas por segundo: 134,2 TPS

¡En promedio, 4000 TX por bloque se seguían abarrotando!

3.Estadísticas de bloque

Hemos recopilado estadísticas sobre los bloques generados durante el tiempo del evento, el número de Tx contenidos en ellos y el tiempo de generación del bloque.

https://docs.google.com/spreadsheets/d/12wOmEBVIb5WuVP-slaObcXVJT5qIM6qqGVotqRlXjaQ/edit?usp=sharing

Acerca de la reproducción del problema de red

  • En la última parte del evento, intentamos reproducir el problema de red informado el 27 de enero utilizando el mismo tipo de transacciones.
    • Descripción del problema: una transacción agregada con una estructura de transacción interna compleja provocó la caída de una cantidad significativa de nodos el 27 de enero.
  • Como resultado, se reprodujo el mismo problema de red.
  • Un desarrollador central, Jaguar comentó que los nodos que tienen una estrategia de recolección “maximizar la tarifa” parecían verse afectados por este tipo de transacción agregada. Luego, para probar esta hipótesis, Okada preparó dos nodos “maximizar-tarifa” el “más antiguo” y uno “minimizar-tarifa” para esta prueba de estrés.
  • Como se esperaba, solo los nodos con la configuración de tarifa máxima se vieron afectados y se detuvieron. Otros nodos con tarifas más antiguas y minimizadas no se vieron afectados.
  • Este problema ya se compartió a altas horas de la noche del 27 de enero cuando se produjo por primera vez, y los desarrolladores principales comenzaron a actuar antes del evento. Compartimos la recurrencia del problema nuevamente enviando los registros del servidor.
  • A partir del 31 de enero, NGL está probando e investigando la causa del problema, y ellos publicarán un parche antes de la prueba final.

Referencia:https://forum.nem.io/t/nem-symbol-community-stress-test-planned-for-28th-jan-2021/27071/20

Problema de Github relacionado con este problema: https://github.com/nemtech/catapult-server/issues/148

Una preocupación observada en las pruebas de estrés

1¿Qué fenómeno ocurrió?

Durante la prueba de estrés, algunos bloques incorporaron solo 1Tx, aunque debería haber habido una gran cantidad de Tx en espera.

2.¿Es esto un fracaso o no?

Comportamiento normal de los nodos de recolección con la estrategia de maximizar la tarifa (no es un mal funcionamiento).

3.¿En qué situación sucedió esto?

Según Jaguar, el desarrollador principal, cuando un nodo recolecta un bloque con la configuración “maximizar tarifa”, el nodo intenta maximizar la recompensa del bloque y genera bloques con una pequeña cantidad de transacciones que proporcionan una gran cantidad de tarifa.

4.¿Cómo pudo pasar esto?

La recompensa de cosecha para cada bloque incluye una tarifa de transacción, que se calcula a partir del tamaño de la transacción multiplicado por el multiplicador de tarifas. La cantidad máxima de XYM pagados se establece cuando un remitente genera la transacción.

En 100 transacciones no aprobadas, suponemos que un Tx se estableció en un multiplicador máximo de 5000x y los 99 restantes se establecieron en 1x. Cuando se selecciona el Tx con un máximo de 5000x, entonces la suma de la tarifa será 5000x.

Sin embargo, cuando intente incluir los 99 Tx restantes con un multiplicador 1x además del máximo 5000x Tx, el multiplicador de tarifas para el máximo 5000x Tx también se convertirá en 1X. El punto aquí es que 5000x es solo un número máximo de multiplicador y puede ser menor que eso. En otras palabras, no importa si paga menos que eso. Si intenta incluir todos los Tx, obtendrá 100 Tx con un multiplicador de tarifa de 1x, por lo que la tarifa que obtendrá será de 100. Por otro lado, si incluye solo un Tx con un multiplicador de tarifa de 5000x, obtendrá una tarifa de 5000.

Por lo tanto, un nodo con una estrategia que maximice la tarifa tomará intencionalmente un solo Tx con el multiplicador de tarifa más alto permitido e ignorará los demás.

Entonces, si bien esto puede parecer extraño a primera vista, es un comportamiento normal proporcionado por el sistema.

De NEMTUS para todos

Gracias nuevamente por participar en el evento. Según las impresiones de todos, “¡fue divertido!” Nos alegró mucho escuchar muchas voces. Creemos que es raro en cualquier parte del mundo tener la impresión de que el contenido de este evento fue “¡divertido!”. En primer lugar, las pruebas se realizan en un ambiente cerrado con solo personal contratado, por razones de fuga de información. Pero eso es lo mejor de la cadena de bloques descentralizada. Porque “nosotros” podemos participar. Sin embargo, las pruebas (especialmente las pruebas de estrés) son realmente sobrias, difíciles y no divertidas. Si no hay recompensa, las evitaremos. Sin embargo, mucha gente se reunió. Quedamos muy impresionados. No es una comparación, pero ¿alguna vez haz oído hablar de otros sistemas descentralizados que fueron impulsados ​​por la comunidad (no pagados) y probados antes de su lanzamiento oficial? En este evento, sentimos que “NEM no pertenece a nadie, pero pertenece a todos”. Cuando se complete la versión final antes del lanzamiento, nos gustaría realizar la prueba final en línea tambien. En ese caso también agradeceremos su cooperación. !!

Esta es una traducción al español del artículo original (en inglés) como un Brief Report NEM  . Traducido y editado por NEM en Español. Juntos estamos haciendo que NEM sea más fuerte y que Symbol sea más brillante.

Para más información y noticias sobre NEM, le invitamos a seguirnos en nuestras redes sociales: Facebook, Twitter e Instagram