Änderung des Ethereum-Blockmusters

Ich möchte wissen, wie Blockdaten zu den Leveldb-Kettendaten in Ethereum hinzugefügt werden. Damit ich das Muster des Blocks ändern kann. Grundsätzlich erstelle ich meine eigene private Ethereum-Blockchain. Und ich möchte jedem erstellten Block ein Präfix wie "Block Mined" hinzufügen.

Alle Vorschläge sind willkommen. Vielen Dank im Voraus.

Antworten (1)

Ich habe diese Antwort erstellt, die meiner Meinung nach ziemlich genau den Prozess beschreibt, den Sie zum Entschlüsseln der Blockchain benötigen würden .

Ich mag das Wort Blockchain nicht, wenn es für Ethereum verwendet wird, weil es den Leuten einen falschen Eindruck davon vermitteln kann, wie Ethereum funktioniert. In Bitcoin und vielen Kryptowährungen verwenden sie Blöcke, um alle Informationen zu speichern, die sich geändert haben und versuchen, der Informationskette hinzugefügt zu werden. Wenn genehmigt, schlägt jeder den Block an das Ende der Kette und weiß nun, dass dies die letzten gültigen Transaktionen in der Kette sind.

Ethereum fügt einer Blockchain einen Status hinzu, was nicht nur die Berücksichtigung von UTXOs erfordert, sondern jedes Konto auf dem EVM muss leicht verfügbar sein, falls jemand einen Smart Contract aufruft und eine Statusänderung wünscht. Sie handhaben dies, indem sie Merkle-Patricia-Bäume erstellen, die neue Änderungen speichern und auch auf die gesamte vorherige EVM verweisen, sodass auch darauf in Aufrufen verwiesen werden kann. Ich könnte mehr über Merkle-Patricia-Bäume erklären , und wenn dies erforderlich ist, kommentieren Sie dies bitte, aber ich denke nicht, dass dies für Ihre Frage erforderlich ist.

Ich wollte dieses Verständnis nur klären, damit wir beide auf einer ähnlichen Seite darüber sind, wie Ethereum mit Blöcken umgeht. Ich glaube nicht, dass Sie die Struktur ändern möchten, wie Daten in Ethereum gespeichert werden, sondern stattdessen ändern, was akzeptiert wird, um Ihrer Implementierung von Ethereum als Daten hinzugefügt zu werden.

Sie möchten also Ihre eigene private Ethereum-Implementierung erstellen, die jedem Block ein Präfix hinzufügt. Das klingt nach einer Anforderung, die Sie umsetzen möchten, nicht auf EVM-Ebene, sondern als Anforderung beim Mining.

Wenn Sie sich diesen Block ansehen . Sie werden sehen, dass es zusätzliche Informationen in ASCII enthält, die sagen: "ethermine-eu5". Ich gehe davon aus, dass Sie dies durchsetzen möchten, um stattdessen zu sagen: "Abgebautes Ethermine-eu5 blockieren". Sie können dies entweder von den Knoten oder von Ihrem Mining-Client aus erledigen. Geth ist eine der gebräuchlicheren Implementierungen von Ethereum und sie könnten sagen, dass, wenn ein Block ohne „Block mined“ als Präfix eingeht, der Block abgelehnt wird. Wenn sich jedoch ein anderer Client entscheidet, dieses Präfix wie Parität zu akzeptieren, würde es eine Aufspaltung geben, wie mit dieser Änderung umgegangen werden soll.

Ich weiß nicht, wie Sie derzeit Ihre eigene private Kette erstellen, aber ich glaube, dass Sie den Code des Clients ändern sollten, um jeden Block zu erzwingen, der akzeptiert wird, um ein Präfix im Extra-Feld zu haben. Wenn sich ein anderer Knoten für etwas anderes entscheidet, würde er sich aus Ihrer Implementierung Ihrer Blockchain entfernen.