Artículo del blog
Autor
Stellar Development Foundation
Fecha de publicación
Paralización de la red
A las 1:14pm hora del Pacífico, el 15 de mayo, la red de Stellar se detuvo durante 67 minutos debido a una incapacidad para alcanzar un consenso. Durante ese tiempo no se cerraron libros mayores y no se procesaron transacciones: básicamente, Stellar se detuvo.
Sin embargo, el estado del libro mayor se mantuvo seguro y consistente a través de la red. Stellar tiene aproximadamente 150,000 usuarios todos los días y más de 3 millones de cuentas totales. Nadie perdió su dinero; los saldos de nadie se confundieron por un bifurcación. A las 2:21, los libros mayores comenzaron a cerrarse donde se habían detenido, y la red está saludable esta mañana.
No hace falta decir que una interrupción como esta es altamente indeseable, y descubrió algunas mejoras que necesitamos hacer. Aquí están las conclusiones principales, las cuales expandimos a continuación.
Como una elección de diseño fundamental, Stellar prefiere la consistencia y la resistencia a la partición sobre la vitalidad. En otras palabras, cuando se enfrenta a la incertidumbre del consenso, el Protocolo de Consenso de Stellar (SCP) prefiere detenerse en lugar de operar en un estado potencialmente inconsistente. Esto es diferente de otras blockchains, en las que “la cadena debe continuar” incluso al precio de bifurcaciones suaves.
Las instituciones financieras prefieren el tiempo de inactividad sobre datos inconsistentes, por eso eligen Stellar. Es mucho mejor para una red financiera estar fuera de línea temporalmente que producir resultados falsos o disputados permanentemente.
Aún así, con las herramientas adecuadas, Stellar no debería necesitar detenerse. Así es como mitigaremos el riesgo futuro:
Incluso antes de esta parada, habíamos estado trabajando en mejorar las capacidades de informe de Stellar-core. Stellar-core 11.1.0RC ya contiene un comando para obtener un informe completo del conjunto de quorum transitivo. Otros comandos de monitoreo serán priorizados.
La creciente descentralización de Stellar En los últimos meses, la comunidad de Stellar ha estado trabajando arduamente en configurar nuevos validadores y construir conjuntos de quorum diversos, para que Stellar funcione sin la participación directa de SDF. Puedes leer más sobre este esfuerzo en la reciente publicación de SatoshiPay.
Muchos de estos nodos nuevos todavía están trabajando hacia el estándar de disponibilidad que la red espera. En las últimas semanas vimos, repetidamente, validadores mal configurados o caídos obstaculizando el consenso. Esto llevó a un estado de vitalidad inestable en el que un fallo adicional o dos en el momento equivocado podrían detener toda la red. Y eso es exactamente lo que pasó ayer: Keybase bajó su validador para mantenimiento en un momento en que otros validadores estaban inestables o caídos, y Stellar se detuvo.
Así es como evitaremos que esto suceda de nuevo:
En respuesta a la parada de ayer, los validadores clave en la red coordinaron un cambio de configuración en el que los quorumsets se redujeron para incluir solo validadores altamente disponibles. En una hora, la red estaba viva, procesando transacciones y cerrando libros mayores.
En general, la interrupción de ayer fue una prueba de estrés, una que Stellar pasó en términos de seguridad del usuario pero falló en términos de tiempo de actividad. Ya hemos aprendido de ese fallo y aprenderemos más en los días venideros. Tomar los pasos anteriores para prevenir una interrupción como esta será nuestra prioridad inmediata. Gracias a los muchos miembros de la comunidad y socios que ayudaron a que Stellar volviera en línea tan rápidamente como lo hizo.
ACTUALIZACIÓN: La interrupción del 15 de mayo dejó la red de Stellar en un estado frágil, con solo 4 partes como los validadores centrales. Más tarde, experimentamos un problema adicional breve ya que los conjuntos de quorum de dos partes ya no tenían suficiente superposición con las otras dos. La red se bajó brevemente mientras reparábamos esto.