Wie migriere ich zu einer neuen Blockchain?

Wenn man mit der Ethereum-Blockchain angefangen hat und herausgefunden hat, dass sie nicht mehr geeignet ist, wie würde man dann von einer Blockchain zu einer anderen migrieren? Dies würde vordefinierte erweiterbare/migrierbare Pfade für die Smart Contracts erfordern, ja?

Antworten (1)

Normalerweise enthält eine Blockchain neue Funktionen durch Forks, wodurch die Abwärtskompatibilität erhalten bleibt. Alte Verträge funktionieren also unverändert mit der neuen Version.

Die Migration auf eine neue Blockchain macht einen der Zwecke einer Blockchain zunichte, nämlich einen sicheren Zustand früherer Transaktionen aufrechtzuerhalten.

Es sollte sowieso möglich sein. Wenn beide Blockchains denselben Genesis-Block teilen, sollten Sie in der Lage sein, die alten Blöcke ohne Änderungen zu integrieren. Wenn sich die Genesis geändert hat, besteht die einzige Möglichkeit darin, alle Transaktionen erneut abzuspielen und neue Blöcke zu generieren.

Diese letzte Option kann teuer werden, wenn Sie viele Blöcke haben und den Arbeitsnachweis für jeden Block neu berechnen müssen. Sie müssen bedenken, dass eine erfolgreiche Transaktion in der neuen Blockchain fehlschlagen kann und umgekehrt jetzt erfolgreich sein kann, wenn sie zuvor fehlgeschlagen ist.

Ich bin mir nicht sicher, ob Sie mich richtig verstanden haben oder ob ich die Frage schlecht formuliert habe. Nehmen wir an, ich betreibe eine Plattform mit Ethereum und jetzt ist die Plattform über die von Ethereum bereitgestellte Kapazität hinausgewachsen. Wie würde ich vorgehen, um sie wo in meine eigene Blockchain zu verschieben? Ich kann Anpassungen an der Verarbeitung/virtuellen Maschine vornehmen
Der einfachste Fall ist, dass Ihre neue Blockchain abwärtskompatibel mit Ethereum ist, dann können Sie sie als Fork sehen. Sie müssen nichts migrieren (Transaktionshistorie ist intakt). Wenn sie nicht kompatibel sind, haben Sie zwei Möglichkeiten: 1) Erstellen Sie einen „Übersetzer“ zwischen alter und neuer Blockchain und spielen Sie alle Blöcke und Transaktionen in der neuen Kette ab (Sie behalten einen „übersetzten“ Verlauf) 2) Erstellen Sie zuletzt einen Snapshot Blockieren Sie den Zustand in der alten Kette und migrieren Sie nur diesen Zustand (Ihr Kettenverlauf geht verloren).