Am vergangenen Wochenende brach das erste ETH2-Testnetz zusammen. Es geht dabei um das Medalla-Testnet, auf dem die Beacon-Chain derzeit erprobt wird. Die Beacon-Chain ist das Herz des komplexen Gebildes, das ETH2 werden soll, und sie ist der erste Teil, der im Herbst dieses Jahres online gehen soll. Für viele ist der Crash des Medalle-Netzes ein Rückschlag, der den sorgenvoll erwarteten Start von ETH2 womöglich noch einmal verschiebt.

Ben Edgington von ConsenSys hat einen hervorragenden Artikel darüber geschrieben, was geschah. Das Medalla-Testnet ging am 4. August live. Auf ihm läuft eine Testversion der Beacon-Chain, die mehr oder weniger das Zentrum von ETH2 werden soll. Die ersten zehn Tage lief alles rund, auch wenn die Anzahl der Validatoren mit 70-80 Prozent eher enttäuschend war.

Am Freitag sank jedoch auf einen Schlag die Anzahl der aktiven Validatoren um etwa 80 Prozent. Sämtliche Prysm-Validatoren hatten heruntergefahren. Prysm ist der am häufigsten verwendete Beacon-Chain-Nodes, weshalb der Ausfall schwerwiegende Folgen hatte.

Der Grund für den Crash war rasch festgestellt: Es gab ein Problem mit der Synchronisierung der Uhrzeit. Die Prysm-Clients benutzen die Roughtime von Cloudflare, um die Zeit herauszufinden. Auf irgendeine Weise rutschte die Roughtime am Freitag etwa eine Stunde lang um etwa vier Stunden in die Zukunft. Da die Prysm-Clients also dachten, sie wären in der Zukunft, bildeten sie Blöcke und Attestations (Beglaubigungen) für eine Blockchain, die es noch gar nicht gab.

Das selbst war noch gar nicht das Problem. Die anderen Clients – vor allem Lighthouse – haben die Beacon-Chain erhalten und weitergeführt, auch wenn einige Blöcke fehlten. Sie ignorierten die Flut an Beglaubigungen aus der Zukunft, die die Prysm-Nodes gesendet hatten. Die Prysm-Knoten wiederum fanden die richtige Zeit wieder, passten sich an und nahmen wieder an der Block-Produktion teil. Vorerst konnten die Entwickler aufatmen.

Eine Stunden später zerbröckelte das Medalla-Netzwerk jedoch. Edgington schreibt, die Hölle brach aus. Zunächst wurden nämlich all die Beglaubigungen aus der Zukunft, die die Knoten im Netzwerk ignoriert, aber gespeichert hatten, plötzlich gültig. Weil die Prysm-Knoten sich weigerten, widersprüchliche Beglaubigungen auszustellen, stürzten sie erneut ab und verließen das Netzwerk. „Das Resultat aus beidem war Chaos. Die Baecon Chain explodierte in einen Wald aus Ästen, als die verbleibenden Clients darum kämpften, die verrückten Informationen zu verarbeiten, die sie erhielten.“

Eine Zeitlang konnten sich die Clients halten. Aber im Lauf der nächsten 24 Stunden stiegen die Anforderungen an Arbeitsspeicher und CPU drastisch, da die immer komplexer werdende Menge der Forks die Knoten überwältigten. „Ich sah einen Lighthouse Client, der 30 Gigabyte an Arbeitsspeicher benutzte, was etwa 100 Mal so viel ist, wie normal“, und jemand anderes hatte Probleme, mit 12 Gigabyte an Arbeitsspeicher und einem vollständig ausgelasteten Prozessor.

Derzeit erholt sich das Netzwerk langsam, und es gibt wohl auch Versionen von Prysm und Lighthouse, die einigermaßen effizient und stabil die richtige Chain finden und auf ihr aufbauen.

Natürlich ist ein Testnet dafür da, um Probleme zu finden. Daher könnte man einen solchen Vorfall auch als Erfolg sehen – besser es passiert jetzt als im Mainnet. Der Crash hat die Entwickler darauf gestoßen, wie angreifbar sich die Beacon-Chain macht, wenn sie von einer Uhrzeit abhängt, und er hat vorgeführt, was passiert, wenn das Netzwerk mit Beglaubigungen aus der Zukunft geflutet wird.

Auf der anderen Seite zeigt der Vorfall aber auch, wie komplex schon der erste Baustein von ETH2 ist, und wie fragil eine Blockchain sein kann. Der Ausfall eines Details führt dazu, dass alles einstürzt, dass die Knoten den Konsens verlieren, welche Chain die richtige ist, und dass sich die Blockchain zersplittert. Dafür, dass ETH2 pünktlich, sicher und erfolgreich ankommt, ist das nicht eben ein zuversichtliches Signal.

[Gesamt: 0   Durchschnitt:  0/5]