Wie erstelle ich einen Blockchain-Snapshot für einen Hardfork?

Ich habe Source Forks (Altcoins) gemacht und verstehe, wie diese funktionieren. Aber ich stecke ein wenig fest, wie Forks aktiviert werden? Ich muss wissen, wie Blockchain-Snapshots erstellt werden und woher die Wallets wissen, wie sie die anfänglichen Fork-Angebote verteilen? Wenn mich jemand auf ein bestimmtes Commit und/oder PR von Bitcoin Cash oder Gold hinweisen könnte, wo diese Logik ist, wäre ich sehr dankbar.

Antworten (1)

Hard Forks sind einfach Erweiterungen einer Blockchain, bei denen die neuen Blöcke unterschiedlichen Konsensregeln folgen, die nicht mit der ursprünglichen Blockchain kompatibel sind. Bei einem echten Hard Fork gibt es kein tatsächliches Snapshoting. Die Hard-Fork-Software synchronisiert einfach bis zu einem bestimmten Punkt mit der ursprünglichen Blockchain, und nach diesem Punkt wird eine neue Konsensregel erzwungen, die mit der ursprünglichen Chain in Konflikt steht und somit eine Blockchain-Fork verursacht. Dies wird einfach durch eine ifAnweisung im Blockvalidierungscode geregelt.

Der Fork wird einfach von einem Miner aktiviert, der einen Block nach einem bestimmten Block oder Zeitpunkt abbaut, der anderen Konsensregeln als der ursprünglichen Kette folgt.

Beispielsweise erzwang ihre Software bei Bitcoin Cash, dass der erste Block, der nach dem 1. August um 12:00 UTC erstellt wurde, größer als 1 MB sein muss, und folgt auch den Konsensregeln von Bitcoin Cash (größere Blockgröße, neuer Signatur-Hashing-Algorithmus usw.). . Dies ist als ifAnweisung in der Blockvalidierungslogik codiert, die die Zeit eines Blocks überprüft, bevor verschiedene Konsensregelprüfungen durchgeführt werden. Es wird kein tatsächlicher Schnappschuss gemacht; Ihre Blockchain bis zu diesem Forking-Block ist genau identisch mit der von Bitcoin und kann von einem Bitcoin-Knoten synchronisiert werden.

There is no actual snapshot that is taken; their blockchain up until that forking block is exactly identical to Bitcoin's and can be synced off a Bitcoin node.- Das verstehe ich, Sie meinen also, dass diese Synchronisierung nicht Teil des Codes für die Gabelung an sich sein muss. Sie können es einfach mit Bitcoin auf ihre Fork-Höhe synchronisieren und dann ihren eigenen modifizierten Daemon ausführen?
Ja. Aber in ihrem modifizierten Daemon haben sie auch Code, der die Pre-Fork-Regeln handhabt, damit auch dieser synchronisieren kann.