🇪🇸 Cardano Stall (Parado) | CH 23 Ene 2023

:es: Transcripción al español de “Cardano Stall”

Publicado en el canal de Youtube de Charles Hoskinson el 23 de Enero de 2023

Enlace a la versión doblada al español


Hola a todos, este es Charles Hoskinson, transmitiendo en vivo desde la cálida y soleada Colorado, siempre cálida, siempre soleada, a veces Colorado. Hoy es 23 de Enero de 2023, sólo un poco de autopsia del fin de semana, tuvimos un asunto interesante, dejen que comparta mí pantalla, ahí vamos, si mirás aquí, este es el asunto git. Dice “nodos de red principal con conexiones entrantes se cerraron inesperadamente con mapeos de balance de datos, bla, bla, bla. Creo que el pool Smog fue el primero en reconocer esto pero un montón de gente lo reconoció, la red se detuvo por alrededor de dos minutos. Todo es genial…. Eaaa, eee, y vuelve. Y podés ver que la porquería siempre se rompe los Domingos a la mañana, o en la mañana del Lunes, tarde en la noche, cuando todo el mundo está durmiendo, así es cómo funcionan las cosas.

Resumiendo, parece ser un asunto transitorio, probablemente una combinación de una colección de cosas que ocurrieron al mismo tiempo. Lo que significa que la reproducibilidad es poco probable. Así que, juntamos un equipo el Domingo a la noche, Sam, Jared, Arno y yo. Hablamos con los SPOs, Marcus Guggler y otros pocos que estaban dispuestos a venir, echamos una mirada a los logs que nosotros teníamos, porque no tenemos un Rolling P Cap, de hecho no podíamos ver cuál era la transacción o bloque que causó este viaje del código colocado para optimización

Sabemos dónde fue el llamado en el programa, pero es difícil, escarbando, de hecho saber cuál fue el evento disparador para ese asunto particular. No parece que fuera reproducible, así que continuaremos mirando qué causó el parate, pero la buena noticia es que Cardano hizo exactamente lo que se suponía. Cuando ocurre un parate, básicamente el sistema se recobra, realiza una autocuración. Los nodos vuelven a estar arriba, notarás, todo es genial, eee, y vuelve otra vez. Y diseñamos al nodo para que haga exactamente eso. No es muy satisfactorio, porque idealmente, cada vez que un sistema distribuido tiene una irregularidad como esta, o parate como este, te gustaría saber una causa exacta. Pero el problema es que los sistemas distribuidos a veces causan algo llamado bugs emergentes. Localmente no es reproducible, pero una colección de cosas crean un estado global colectivo, que por alguna razón dispara algo, y el sistema básicamente se detiene, para algunas personas.

Así que, como he dicho, hay un equipo trabajando en ello, lo están mirando, lo están astillando. Realizaremos una autopsia dentro de los asuntos Git, obviamente si hay un bug, incluso una librería Haskell, o un error en la implementación del balance R que fue colocado dentro para optimizar Cardano, será emparchado. El problema es que los bugs requieren un entendimiento de qué los dispara, esa es una cosa que estamos mirando ahora, va a tomar un poco de tiempo para que lleguemos ahí. En algunos casos de hecho no podés resolverlos, viene una vez cada cinco, seis años, y simplemente decís, “ok, la red se recobró, avanzamos”. Pero a veces no podés, pero no querés volverte loco acerca de ello. En cualquier sistema distribuido, ya sea Googleplex, Microsoft Azure, servicios Web Amazon, o estos masivos sistemas a larga escala, se caen todo el tiempo, los sistemas se caen todo el tiempo, por una variedad de razones, puede ser fallas de hardware, fallas de software, intentos de hackeo, rayos cósmicos, toda clase de cosas, el famoso asunto del rayo cósmico con Google Big Table.

Eso está bien, porque la segunda cosa que realizás cuando construís un sistema distribuido a gran escala es que lo construís para que sea resiliente y que se auto cure. Cuando este tipo de cosas ocurren el sistema se recupera, que es exactamente lo que ocurrió aquí. Fue realmente genial ver cómo los SPOs se juntaron, cuán rápido estaban encima de esto, todavía lo están mirando. De hecho es una condición de carrera, todo el mundo parece estar mirándolo. Estoy realmente orgulloso de Smog, Andrew Westberg, todos los otros que aparecieron, literalmente, momentos después que esto ocurrió, en el medio de la noche, comenzaron a recolectar grandes cantidades de información, intentando ver el bug del asunto.

Sólo te muestra cuán descentralizado y resiliente se ha vuelto Cardano. Así que, sabés, es lo que es, cuando yo sepa más por supuesto lo compartiré con ustedes muchachos. Como he dicho, tenemos un trabajo de zorrillo que lo está mirando, básicamente intentando encontrar una manera de reproducirlo. Pero, podría no ser posible hacer eso. Este es el punto, cuando hablamos de alta seguridad, métodos formales, autocuración, resiliencia, diseñás estos sistemas de esta manera para que el sistema se pueda recuperar en el evento de que algo malo ocurra, como esto. Y nadie lo notó, las transacciones no se perdieron, los bloques no se cayeron, no se perdió dinero, la red de hecho no se detuvo, se detuvo por un poquito, se recuperó, pero la red siguió avanzando, todavía progresando. Así que no es como que hubo llamadas de pánico, yendo a exchanges, diciendo “actualizá a este nodo de emergencia” o que toda la gente de consenso se tenga que juntar en discord y resolver cómo patear y resetear Cardano, se auto cura. Y ese es el punto de un sistema descentralizado, distribuido, resiliente. Es que debería tener esta capacidad de auto curarse, reconstruirse a sí mismo en el evento de que se detenga debido a un evento transitorio.

Estoy orgulloso de que esto haya ocurrido. Es frustrante porque nos gustaría saber todo, nos gustaría que esto fuera determinístico. Desde la perspectiva de que cada vez que ocurre un incidente sabés exactamente por qué ocurrió, dónde ocurrió, sabemos qué parte del código fue impactada, sabemos dónde fue tirado el error, pero lo que no sabemos es el evento causal que golpearía y llevaría al sistema a ese estado particular. Probablemente podríamos pasar semanas, meses, incluso años buscándolo, por algo que quizás sólo podría aparecer cada cinco años, su impacto es que sólo detuvo un poquito la red. Este asunto particular probablemente nunca volverá a aparecer en este formato, especialmente si es un error emergente transitorio, porque son objetivos en movimiento. Cuando vienen las optimizaciones de hecho podrían recuperar esa parte del código. Cuando venga Génesis habrá un diferente modelo operacional para las actualizaciones de red. Obviamente los endosantes de entrada van a cambiar todo. Esa es la otra parte de quitar errores, es que queres encontrar algo, simplemente podrías haber cambiado el código que tenía un problema en el incio, mientras actualizás el módulo a un estado diferente, y ni siquiera sabías que arreglaste un error particular que causó el asunto.

En cualquier evento estaremos monitoreando las cosas, estamos estableciendo algunos nodos sentinela, así que podemos ver todos los datos entrantes y salientes, haremos eso por probablemente en base semanal, o de dos semanas, así que si hubiera una transacción o bloque que lo causó, podríamos aumentar el zoom en ese período de tiempo, separar en partes la transacción, ejecutarla, reproducirla. Pero nosotros realizamos todas las cosas usuales, fuimos capaces de sincronizar completamente los nodos, cualquiera sea el bloque, transacción o evento que lo causó, obviamente no fue una blockchain dominante, no creó un estado de parate, la red está corriendo, todas las métricas se ven bien, la comunidad se juntó. Gracias a la comunidad SPO, por mantener corriendo Cardano, gracias a Jared, Sam y Arno por el trabajo durante el fin de semana conmigo. Es como una porquería tener que estar despierto tarde en la noche, justo pensando en poner a los niños en la cama, y recibís un mensaje diciendo “hey, ¿podés trabajar un par de horas hasta que estés tan cansado que no puedas ver bien?”. Pero lo hicieron, porque están más allá de su deber. Así que nada por reportar, gracias a todos por escuchar, probablemente tengamos más al final de la semana y veremos si podemos llegar al fondo de ello. Saludos.