Precipitada actualización hizo que el 12% de los clientes de Ethereum sean inutilizables

Una actualización en el cliente OpenEthereum, el sucesor comunitario del cliente Parity para Ethereum, provocó que los nodos que funcionaban en la nueva versión fueran esencialmente inútiles.

El error parece haber sido introducido en la versión 2.7.2 de OpenEthereum, en la que también se basó la subsiguiente actualización 3.0.

Aunque la versión 2.7 fue señalada como estable, desde junio la comunidad comenzó a informar sobre el congelamiento ocasional del cliente, lo que requirió un reinicio manual del nodo. El problema aparece aleatoriamente “una o tres veces al mes”, y el software no notifica su mal funcionamiento. Algunos usuarios han decretado la versión como “inútil” e “inservible para los operadores del nodo”.

Los desarrolladores parecen haber señalado el problema a través de un sutil error en la concurrencia de hilos, que se utiliza para procesar tareas en paralelo. En este caso específico, el software parece estar entrando en un punto muerto, una condición en la que dos hilos se quedan para siempre esperando su turno para acceder a algunos datos compartidos.

OpenEthereum decidió simplemente desechar la versión 2.7 debido a este y otros “heisenbugs” que son extremadamente difíciles de reproducir y por lo tanto de arreglar.

La nueva iteración 3.0, basada en la última versión 2.5 estable, será lanzada a mediados de septiembre antes de la bifurcación de Berlín. 

Sin embargo, hasta que eso suceda, los operadores que descargaron la nueva versión se quedan con la extremadamente perturbadora tarea de bajar de categoría. 

Liam Aharon, desarrollador de la empresa de infraestructuras BlockNative, destacó en Twitter que la desclasificación requiere una completa resincronización de la plataforma blockchain, “lo que para algunas configuraciones de nodos llevará meses”, dijo.

El error afecta a cerca del 50% de los nodos de paridad actuales y a todos los nodos marcados como OpenEthereum, lo que suma un total del 12% de toda la red, según datos de Ethernodes.

Se dice que el equipo de OpenEthereum está trabajando en un proceso de conversión que ayudaría a los nodos a evitar la costosa resincronización.

Se han hecho algunas críticas al equipo por marcar como “estable” una versión gravemente dañada, un error que se propagó a todas las versiones posteriores. Otros cuestionaron la solidez del enfoque multicliente, citando la opinión de Satoshi de que las implementaciones múltiples del mismo nodo de la plataforma blockchain inevitablemente darían lugar a problemas.

Los defensores del enfoque multicliente creen que esto evita que los errores en una implementación hagan caer la red con ellos, y el error de OpenEthereum parece ser ese tipo exacto de escenario.

Sigue leyendo: