- El equipo de IOTA decidió reescribir el código de IOTACore tras enfrentarse a largos procesos de depuración y a fallos relacionados con el código heredado.
- El equipo de IOTACore adopta una nueva estructura de código que se asemeja a un organismo vivo, con bloques interconectados que actúan como «células» que adaptan su estado observando su entorno.
Durante los dos últimos meses, el equipo de desarrollo de IOTA se ha centrado en los avances para IOTAcore, que actualmente es su principal prioridad frente al prototipo GoShimmer.
La decisión de reescribir los componentes de IOTACore desde cero durante la transición a la mainnet se debió al largo proceso de depuración. Cada fallo tardaba varios días en solucionarse, y tener a todo el equipo centrado en los mismos fallos en el entorno de pruebas resultaba ineficaz.
Dado que los errores identificados estaban vinculados a código heredado cuya reescritura estaba programada, IOTACore decidió dejar de depurar y proceder a una reescritura completa. Este enfoque permitió al equipo trabajar simultáneamente y evitar más retrasos por esperar a que los fallos reaparecieran en la red de pruebas.
Al reescribir el código desde cero, el equipo de IOTACore «reexaminó y comprobó» cada línea de código. Además, también identificaron partes de algoritmos para una «optimización opcional» que estaría disponible en futuras actualizaciones.
Sin embargo, reescribir todo el código conlleva sus propias complejidades. El desarrollador principal de IOTA, Hans Moog, señaló que, en la situación actual, llevaría mucho tiempo encontrar y corregir errores en el código. Por tanto, si consiguen escribir un código sin errores en el presente, sería beneficioso abordar los problemas de raíz de forma que el software sea más fácil de mantener y comprender a largo plazo.
Hangs Moog explica la necesidad de adoptar un enfoque más eficaz y sostenible del desarrollo de software, centrándose en mejorar la calidad general y la capacidad de mantenimiento de su base de código.
La nueva estructura de código de IOTACore
Hans Moog afirma que la estructura del código de IOTACore se parece más a la de un organismo vivo, donde los bloques se asemejan a una red de «células» interconectadas que adaptan automáticamente su estado o metadatos observando su entorno. Esto permite que la información se propague a través de las referencias de la maraña, y cada nodo se limita a observar estas células para formar su punto de vista y establecer una percepción de consenso.
So, it's finally time for part 1 of the promised update, but before I talk about the actual topic, I want to take a little detour and recall why we started to work on iota-core without completing the goshimmer prototype.
The reason for this decision, was the fact that debugging…
— Hans Moog 🦋 (@hus_qy) July 27, 2023
El desarrollador principal, Hans Moog, imagina una nueva forma de organizar y diseñar software, utilizando la analogía de un organismo vivo con «células» (bloques) interconectadas que observan y reaccionan a su entorno para propagar la información por todo el sistema. Están explorando la idea de colocar la lógica dentro de los propios bloques en lugar de fuera, lo que facilitaría el mantenimiento y la comprensión del software.
El equipo de IOTACore ha estado trabajando en un marco de software que les permite expresar las estructuras de datos y la lógica como una combinación de bloques de construcción. Recientemente han incorporado a su código base este marco y el primer componente que utiliza estos nuevos conceptos, y están satisfechos con los resultados.
Este nuevo enfoque parece resolver los problemas relacionados con el estado y la lógica, haciéndolos iguales e inspeccionables. También parece ser relativamente fácil de entender y razonar, especialmente cuando se trata de múltiples hilos.
Y lo que es más importante, este nuevo enfoque es totalmente compatible con el código existente, lo que les permite probar y validar los conceptos antes de aplicarlos a otras partes del software, afirma Hans Moog.