- Das IOTA-Team beschloss, den IOTACore-Code neu zu schreiben, nachdem das Debugging des alten Codes sich als zu zeitaufwändig erwies.
- Die neue Codestruktur ähnelt einem Organismus mit miteinander verbundenen Blöcken, die wie Zellen agieren und ihren Zustand durch Beobachtung ihrer Umgebung anpassen.
In den letzten zwei Monaten hat sich das IOTA-Entwicklungsteam auf die Entwicklung von IOTAcore konzentriert, was derzeit die höchste Priorität gegenüber dem GoShimmer-Prototyp hat.
Die Entscheidung, die Komponenten von IOTACore während der Mainnet-Umstellung von Grund auf neu zu schreiben, war auf den zeitaufwändigen Debugging-Prozess zurückzuführen. Die Behebung eines Fehlers nahm mehrere Tage in Anspruch, und es war ineffizient, wenn sich das gesamte Team auf dieselben Fehler in der Testumgebung konzentrierte.
Da die identifizierten Fehler mit altem Code verknüpft waren, der neu geschrieben werden sollte, beschloss IOTACore, die Fehlersuche zu beenden und mit einer kompletten Neuschreibung fortzufahren. Dieser Ansatz ermöglichte es dem Team, gleichzeitig zu arbeiten und weitere Verzögerungen durch das Warten auf das Wiederauftauchen von Fehlern im Testnetz zu vermeiden.
Durch das Neuschreiben des Codes konnten außerdem Teile der Algorithmen für spätere optionale Optimierungen identifiziert und markiert werden, die in künftigen Updates verfügbar sein werden.
Das Neuschreiben des gesamten Codes birgt jedoch eine Reihe anderer Probleme. Der leitende Entwickler von IOTA, Hans Moog, merkte an, wenn es also gelänge, den Code jetzt ohne Fehler zu schreiben, wäre es von Vorteil, die grundlegenden Probleme so anzugehen, dass die Software langfristig leichter zu warten und zu verstehen ist.
Moog erklärt die Notwendigkeit, einen effizienteren und nachhaltigeren Ansatz für die Softwareentwicklung zu finden, der sich auf die Verbesserung der Gesamtqualität und der Wartbarkeit der Codebasis konzentriert.
Neue Codestruktur für IOTACore
Der leitende Entwickler stellt sich eine neue Art der Organisation und des Entwurfs von Software vor, indem er die Analogie eines lebenden Organismus mit miteinander verbundenen Zellen verwendet, die ihre Umgebung beobachten und auf sie reagieren, um Informationen im gesamten System zu verbreiten. Sie erforschen die Idee, die Logik in den Blöcken – „Zellen“ – selbst statt außerhalb unterzubringen, was die Software einfacher verständlich und wartbar machen würde.
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
Das IOTACore-Team hat an einem Software-Framework gearbeitet, mit dem es Datenstrukturen und Logik als Kombination von Bausteinen ausdrücken kann. Vor kurzem haben sie dieses Framework und die erste Komponente, die diese neuen Konzepte verwendet, in ihre Codebasis integriert und sind mit den Ergebnissen sehr zufrieden.
Dieser neue Ansatz scheint Probleme im Zusammenhang mit dem Zustand und der Logik zu lösen, indem er sie identisch und überprüfbar macht. Außerdem scheint er relativ einfach zu verstehen und zu durchdenken zu sein, insbesondere bei der Arbeit mit mehreren Threads.
Wichtig ist, dass dieser neue Ansatz vollständig mit dem vorhandenen Code kompatibel ist, so dass sie die Konzepte testen und validieren können, bevor sie sie auf andere Teile der Software anwenden, so Hans Moog.