La red Solana experimentó una importante interrupción el 6 de febrero a las 10:22 am UTC, con la producción de bloques detenida durante más de cinco horas antes de que los validadores reiniciaran la red.
No es la primera vez que Solana se cae. Desde enero de 2022, Solana ha sufrido media docena de cortes importantes y quince días de cortes parciales o graves.
Engineers from across the ecosystem are investigating an outage on mainnet-beta. This thread will be updated as more information becomes available https://t.co/rfeioQ6BG9
— Solana Status (@SolanaStatus) February 6, 2024
Ingenieros de todo el ecosistema están investigando una interrupción en la mainnet-beta. Este hilo se actualizará a medida que haya más información disponible.
Los incidentes variaron en gravedad, desde interrupciones parciales hasta totales de la red, y sus causas incluyeron vulnerabilidades de software en la red y ataques de denegación de servicio y agotamiento de recursos.
Post mortem
El 9 de febrero, Solana publicó un informe postmortem de la reciente interrupción en el que se detallaban sus causas y la forma en que los validadores reiniciaron la red. El informe reveló que la caché de compilación Just-in-Time (JIT) de Solana, que compila todos los programas antes de ejecutar una transacción, encontró el fallo.
Anteriormente, la caché JIT se implementaba mediante "ExecutorsCache", sin embargo, con la versión v1.16, ExecutorsCache se sustituyó por una nueva implementación llamada "LoadedPrograms". El nuevo programa cargador utilizaba la información contable almacenada en la cuenta en cadena de un programa para buscar su ranura de despliegue más reciente y utilizarla para calcular la altura efectiva de la ranura.
Sin embargo, este programa cargador se encontró con un problema del cargador heredado que provocaba que la caché JIT encontrara un bucle con programas antiguos, lo que hacía que los recompilara repetidamente en lugar de acceder a sus instrucciones y ejecutarlas de forma eficiente. Este fallo provocaba un bloqueo de la red, ya que el sistema se quedaba atascado en un bucle infinito, incapaz de procesar transacciones o avanzar.
Austin Federa, jefe de estrategia de Solana, dijo a Cointelegraph que existía un proceso para sustituir el antiguo sistema de carga por un nuevo sistema motor, pero que estaba previsto desactivarlo con una versión actualizada.
"Parece que alguien llamó intencionadamente a ese antiguo conjunto de instrucciones, que no se había utilizado en mucho tiempo pero que aún estaba por ahí en la base de código. El compilador JIT tuvo problemas al no encontrar lo que buscaba. Y eso es lo que creó el bucle infinito".
Los ingenieros de Solana descubrieron y solucionaron rápidamente el problema, actualizaron los procesos del sistema e identificaron estos programas antiguos para evitar futuros ciclos de recompilación. Esta solución supuso reducir el despliegue de los problemáticos cargadores heredados para garantizar que se pudiera acceder a todas las instrucciones de los programas con precisión y eficacia sin caer en la trampa de la recompilación.
Algunos críticos han afirmado que un factor importante que contribuye a las interrupciones de Solana es la falta de diversidad de clientes, que da lugar a posibles puntos centrales de fallo. Kadan Stadelmann, director de tecnología de la plataforma de exchange descentralizado de código abierto Komodo, dijo a Cointelegraph que los desarrolladores y validadores de Solana priorizan la rapidez en el envío de código sobre el mantenimiento de un tiempo de actividad perfecto de la red, añadiendo:
“La razón clave es la centralización y la falta de opciones de cliente validador. La ambición de Solana de lograr un alto rendimiento y tiempos de transacción bajos ejerce una inmensa presión sobre su infraestructura, haciéndola susceptible a la degradación del rendimiento y las interrupciones”.
Sin embargo, Federa sugiere que Solana posee una arquitectura mucho más precisa y explica que sólo dos redes de contratos inteligentes en todo el mundo tienen clientes validadores independientes: Ethereum y Solana. Actualmente, Solana cuenta con un cliente validador principal construido sobre una base de código funcional.
"Solana nunca ha tenido una interrupción debida a un fallo en el consenso o algo por el estilo. Los problemas siempre han sido detalles de implementación. Siempre ha sido que ha habido un fallo en alguna parte de la capa de implementación, lo cual no es ni mejor ni peor. Simplemente es un tipo de precisión importante", explicó Austin.
La saga de la "beta" de la mainnet de Solana
La blockchain Solana se lanzó en marzo de 2020 y, durante los cuatro años siguientes, la red ha logrado avances significativos en el ecosistema de las finanzas descentralizadas (DeFi). Solana se sitúa como la quinta mayor cadena DeFi en valor total bloqueado, con más de USD 1,700 millones en capital asignado a diferentes protocolos en la cadena. Su token nativo Solana (SOL) tiene una valoración de mercado de unos USD 49,000 millones, lo que la convierte en la quinta mayor criptomoneda.
A pesar de su magnífico historial, Solana nunca ha salido oficialmente de su fase beta. Todavía se dice que la blockchain está en la fase beta de la mainnet. Beta es un término que se refiere a un software casi terminado que un grupo selecto de usuarios está probando antes de su lanzamiento oficial.
Sin embargo, la blockchain Solana está abierta a todo el mundo, con cientos de aplicaciones descentralizadas utilizadas para lanzar diversos productos. El ecosistema blockchain también cuenta con un vibrante ecosistema de tokens no fungibles (NFT).
Solana se sometió a breves pruebas beta privadas y públicas antes de lanzar la versión 1.0 hace cuatro años, y en la actualidad la red procesa más transacciones que la mayoría de las demás cadenas.
Aunque el código sigue cambiando, Solana está mucho más allá de lo que puede considerarse software beta. La constante percepción errónea se debe a una confusión entre las comprobaciones previas al lanzamiento y la madurez del software tras el mismo, así como a ideas equivocadas sobre la mensajería de Solana.
El estado beta ha suscitado muchas críticas a la cadena de bloques, especialmente a la luz de sus interrupciones en los últimos dos años. Los usuarios de criptomonedas en las redes sociales se han burlado a menudo de que el estado de Solana como blockchain principal cambie a menudo a beta mainnet y viceversa, dependiendo de si la cadena está caída.
Solana is a joke. Period.
— David Miller ⬡ (@CryptoDavid_) May 1, 2022
How many halts have there been in lasts months? The “it’s a beta” is not an excuse anymore. $SOL #Solana pic.twitter.com/IjvRaM58dZ
Solana es un chiste. Punto.
¿Cuántas interrupciones ha habido en los últimos meses? El “es una beta” ya no es una excusa.>
Federa afirmó que la mayoría de los sistemas blockchain están hoy en fase beta y que sólo Bitcoin y Ethereum son probablemente redes principales completas y explicadas:
"Los sistemas de software tardan mucho tiempo en estabilizarse y estar completos en cuanto a funciones, ya que todavía se están enviando nuevas funciones importantes a la red Solana. Creo que nos acercamos al final de la fase beta. Desde el punto de vista tecnológico, uno de los hitos importantes será el lanzamiento de un segundo cliente validador independiente."
Muchos defensores de DeFi creen que el tiempo de inactividad de Solana es un obstáculo definitivo para su objetivo de convertirse en un competidor de Ethereum. Aun así, los desarrolladores han trabajado para garantizar que los errores que provocaron las caídas anteriores no afecten a la red en el futuro. A pesar de su manchado historial de caídas, su alta velocidad y bajo coste desempeñan un papel clave a la hora de atraer nuevos proyectos a la plataforma.
Aclaración: La información y/u opiniones emitidas en este artículo no representan necesariamente los puntos de vista o la línea editorial de Cointelegraph. La información aquí expuesta no debe ser tomada como consejo financiero o recomendación de inversión. Toda inversión y movimiento comercial implican riesgos y es responsabilidad de cada persona hacer su debida investigación antes de tomar una decisión de inversión