Falls ich ein egoistischer Miner bin und die Blockchain erfolgreich gegabelt habe, möchte ich jederzeit den Fortschritt meiner ehrlichen Nodes wissen – wie kann ich das erreichen?
Tauschen Peers auf separaten Blockchains Informationen über ihren Fortschritt durch Datennachrichten aus?
Schauen wir uns zum besseren Verständnis dieses Szenario an:
selfish node= s ; ehrlicher Knoten = h
s : einen Block#1 abbauen (Kind des Genesis-Blocks), nicht melden
h : Block#2, Block#3 öffentlich abbauen
s : Block#4, Block#5 heimlich abbauen (nicht melden)
h : Block abbauen #4 Öffentlich
s : Informiere dich, auf welcher Blockhöhe das ehrliche Netzwerk ist!?
NOTIZ:
pindexLastCommonBlock
scheint nicht hilfreich zu sein, da das Nennen seiner Höhe sagen würde, dass der letzte gemeinsame Block 3 ist, aber nicht sagt, auf welcher Höhe ehrliche Knoten sind.setInventoryKnown
im Falle eines Forks werden alle jemals geminten Blöcke gespeichert.SPV-Wallets verfolgen in der Regel auch, was der bekannteste Block für jeden ihrer Kollegen ist, um sicherzustellen, dass sie auf dem neuesten Stand sind, und können die Sicherheit ihrer Transaktionen (Anzahl der Bestätigungen) einschätzen. Sie tun dies, indem sie einen Zähler starten, der mit der in der version
Nachricht angegebenen Höhe initialisiert wird. Und dann, wenn der Knoten eine neue inv
(Bestands-)Nachricht für einen Block sendet, holen Sie sich diesen Block-Header, und wenn er auf seinem vorherigen besten Header aufbaut, dann erhöhen Sie den Zähler. Mit dieser Methode können Sie eine Zuordnung von Knoten zu ihren Hauptkettenspitzen beibehalten.
Im Wesentlichen verfolgt dies nur die inv
Sendungen eines Peers, wodurch Peers neue Blöcke öffentlich melden.
Morsecoder
peers on separate blockchains
- Wenn Sie mit separaten Blockchains verschiedene Coins meinen, sprechen diese Peers überhaupt nicht miteinander. Wenn Sie Peers meinen, die mit derselben Blockchain arbeiten, aber an unterschiedlichen Punkten im Synchronisationsprozess, tauschen diese Peers Datennachrichten aus.Aliakbar Ahmadi
Morsecoder
Aliakbar Ahmadi