Artículo de Blog

Descentralizado hasta el núcleo

Autor

Stellar Development Foundation

Fecha de publicación

Descentralización

Actualización de protocolo

Cómo los validadores de SDF se detuvieron, pero la red continuó operando según lo diseñado

Actualización:

  • El 10 de abril de 2021, los validadores de la red Stellar votaron para actualizar la red al Protocolo 16, que contiene una solución que resuelve el problema que causó que varios nodos se desconectaran a principios de esta semana.
  • Si eres un operador de nodo y tienes dificultades para acceder a la red, probablemente solo necesites instalar software actualizado.
  • Para más información sobre cómo hacerlo, consulta nuestra Guía de Actualización del Protocolo 16.

La madrugada del martes, los nodos validadores de Stellar Development Foundation dejaron de procesar temporalmente los libros contables, y la instancia pública de Horizon de SDF dejó de ingerirlos, lo que significó que durante un breve período de tiempo, no pudo atender solicitudes ni enviar transacciones a la red. Para resolver la situación, el equipo de ingeniería de SDF trabajó rápidamente para poner en marcha nuevos nodos y una nueva instancia de Horizon, ambos disponibles al final del día.

Sin embargo, varios nodos operados por otros en el ecosistema también se vieron afectados, y así, en paralelo, los ingenieros de SDF continuaron investigando la causa raíz del problema. La identificaron el martes por la noche. El miércoles por la tarde, implementaron una versión de parche para abordarlo, y el jueves, lanzaron Stellar Core v16.0.0, que debería resolver los problemas pendientes. El sábado, los validadores de la red votaron para aceptar la versión y actualizar la red al Protocolo 16. En este punto, todos los nodos afectados deberían poder actualizar a software compatible con Protocolo-16 y restaurar el acceso a la red.

Durante todo el tiempo de inactividad de los nodos de SDF, todavía había suficientes validadores disponibles para procesar transacciones de manera segura, y así la red Stellar permaneció en línea. Así es como se supone que debe funcionar una red descentralizada. Muchos validadores también continuaron publicando archivos que rastrean el historial de libros contables, y esos archivos permiten que los nodos detenidos llenen los huecos para que puedan recuperarse rápidamente.

Las siguientes FAQ tienen la intención de compartir lo que sabemos sobre el problema, y son un complemento a una Guía de Actualización del Protocolo 16 que incluye información para ayudar a las organizaciones afectadas a reactivar sus nodos.

¿Sabes qué causó que los nodos se desconectaran?

Después de un análisis cuidadoso, los ingenieros de SDF redujeron el desencadenante a un solo libro contable, y a una sola operación en ese libro. Compararon cómo varios nodos manejaron esa operación, lanzaron una versión que incluye una solución y comenzaron a preparar la red para una actualización que permitirá a los nodos afectados recuperar el historial y volver a estar en línea. Para más sobre la actualización del protocolo, consulta la Guía de Actualización del Protocolo 16.

Mientras ciertos nodos, incluidos los operados por SDF y Lobstr, encontraron el problema, la mayoría de los nodos en la red no lo hicieron. Nuevamente, debido a que hay suficiente redundancia de validadores, la red continuó funcionando con normalidad a pesar de la indisponibilidad temporal de la infraestructura de SDF. Aunque nos damos cuenta de que esto fue inconveniente para las organizaciones que dependen del acceso a la red pública, también demuestra que la red Stellar persiste independientemente de los validadores de SDF.

¿Cómo se descubrió el problema?

A las 08:20 UTC, nuestra infraestructura de monitoreo de operaciones de Stellar, que consiste en alertas de Runscope y Prometheus, envió una alerta a nuestro equipo de operaciones de guardia. Inmediatamente comenzaron a investigar la alerta, se dieron cuenta de que había un problema con los validadores de SDF y comenzaron a contactar al resto del equipo de operaciones así como a los equipos de operaciones de otros validadores de Tier 1.

¿Cuánto tiempo estuvieron tus nodos fuera de línea?

Inicialmente, SDF centró sus esfuerzos exclusivamente en localizar la causa raíz de la parada antes de optar por poner en marcha nuevos validadores y una nueva API pública de Horizon para resolver más inmediatamente el problema, mientras buscaba en paralelo identificar su origen. Logramos que los validadores y la nueva API estuvieran operativos en una hora una vez que optamos por crear esa solución, pero el tiempo total de inactividad duró alrededor de 10 horas. Los tres nodos validadores de SDF y la instancia de la API pública de Horizon de SDF volvieron a estar en línea a las 18:28 UTC.


¿Qué hizo SDF para resolver el problema?

Tan pronto como nuestro sistema de monitoreo de nodos nos alertó del problema, los ingenieros de SDF comenzaron a trabajar para aislar la causa. Investigaron los archivos de registro y comenzaron a comparar lo que encontraron en los registros de SDF con la información obtenida de otros validadores.

Una vez que identificaron el libro contable problemático, se dividieron en dos equipos para cubrir más terreno: uno para depurar y desarrollar un parche para el problema; otro para poner en marcha nuevos nodos validadores y una nueva instancia de Horizon para sustituir la infraestructura afectada.

Para el final del día martes, los validadores de reemplazo estaban en funcionamiento, y el público podía acceder nuevamente a horizon.stellar.org para enviar transacciones tal como lo hacían antes de esta interrupción temporal. SDF trabajó con organizaciones en todo el ecosistema para informarles que la infraestructura pública estaba nuevamente disponible y para ayudar a otras organizaciones afectadas a restaurar su infraestructura. Para el miércoles por la tarde, los ingenieros de SDF habían lanzado un parche como solución intermedia para traer de vuelta en línea a los nodos afectados.

La tarde del jueves, los ingenieros de SDF lanzaron Stellar Core 16.0.0, junto con instrucciones para permitir a los operadores de nodos instalar el software necesario para prepararse para una actualización de la red. El 10 de abril de 2021, a las 1500 UTC, los validadores votaron para aceptar la actualización, lo que permite que todos los nodos afectados restauren el servicio mientras mantienen un historial completo de transacciones intacto.


¿Cuánto se ha ralentizado la red?

La red no se ralentizó. Los validadores que se mantuvieron sincronizados continuaron procesando operaciones y cerrando libros contables en ~5 segundos sin interrupción. Sin embargo, algunos nodos, incluidos los operados por SDF y Lobstr, dejaron de procesar transacciones durante aproximadamente 10 horas. Si accediste a la red a través de uno de los nodos afectados, no pudiste acceder a la red para enviar transacciones durante ese tiempo. Sin embargo, si dependes de uno de los muchos nodos no afectados, tu acceso a la red continuó sin interrupciones.


¿Falta algún dato en el libro contable desde el tiempo que los nodos estuvieron fuera de línea?

Dado que la red permaneció en línea, los validadores continuaron procesando transacciones de manera segura aunque la instancia de Horizon de SDF estuviera temporalmente no disponible. Aunque hubo una pequeña brecha en el conocimiento de SDF de la historia del libro contable por un breve período de tiempo, pudimos llenarla mirando los archivos mantenidos por muchas otras organizaciones, específicamente, las otras organizaciones de Tier 1, que publican la historia completa de la red para exactamente este propósito.

La red Stellar técnicamente permaneció en línea pero muchas transacciones se vieron interrumpidas. ¿Esto afectó los depósitos y retiros de los exchanges?

Por precaución, varios exchanges de criptomonedas centralizados decidieron pausar los depósitos y retiros de XLM mientras nuestros ingenieros trabajaban en una solución. Nos estamos comunicando directamente con esos exchanges, y les notificamos cuando restablecimos el acceso a la infraestructura pública. En este punto, la mayoría de esos exchanges han restaurado el servicio y están procesando nuevamente depósitos y retiros. SDF continuará trabajando con ellos para asegurar que hayan actualizado con éxito su software.

¿Sabes cuántas transacciones se detuvieron de organizaciones que dependen de los puntos de acceso a la infraestructura pública de SDF?

Stellar es de participación abierta: cualquiera puede construir sobre ella, y cualquiera puede enviar transacciones a la red. Debido a que SDF no controla el acceso a la red, y no tenemos visión de la contabilidad interna de todas las diversas organizaciones que la utilizan, realmente no hay una forma de obtener información completa o confiable sobre quién decidió detener el envío de transacciones.

Sin embargo, hemos estado en comunicación con el ecosistema sobre la situación, y continuamos trabajando con las organizaciones afectadas para asegurarnos de que puedan seguir accediendo a Stellar en nombre de sus clientes.