In welchen Szenarien kann die Blockchain-Größe für Bitcoin abnehmen?

Ich betreibe ein privates Bitcoin-Netzwerk, für das ich die Zielzeit zwischen zwei Blöcken auf 12 secondsund die Schwierigkeitsanpassung auf 25 blocksIntervall geändert habe. Ich habe das Netzwerk etwa 4 Stunden lang mit 50 Knoten betrieben. In einem der Protokolle des Knotens habe ich beobachtet, dass die Blockchain-Höhe bis zu einem Maximum von 181 angestiegen ist und dann bis auf 38 abgenommen hat. Was könnte eine Erklärung für ein so seltsames Verhalten sein.

Bitte beachten Sie das folgende Protokoll:

2015-11-04 01:58:47 receive version message: /Satoshi:0.11.99/: version 70011, blocks=181, us=0.0.0.0:0, peer=2, peeraddr=127.0.0.1:44117
2015-11-04 01:58:47 UpdateTip: new best=0000005265ca4ce01ad0d06f45cf475bf303de3d64e942c5cf1177e00f346c78  height=180  log2_work=37.083283  tx=30941  date=2015-11-04 01:53:17 progress=1.000000  cache=0.0MiB(1tx)
2015-11-04 01:58:47 UpdateTip: new best=00000052a34cedf3c5ddbeb46d36644654523db855c4cce984d2623e840dd219  height=179  log2_work=37.082953  tx=30940  date=2015-11-04 01:53:10 progress=1.000000  cache=0.0MiB(2tx)
2015-11-04 01:58:47 UpdateTip: new best=00000030fd7652affb883f05fe0c98e7fe3fbc3cfd74808e061ed05ec61c22e6  height=178  log2_work=37.082623  tx=30939  date=2015-11-04 01:52:55 progress=1.000000  cache=0.0MiB(3tx)
2015-11-04 01:58:47 AddToWallet c32bcbd8102c602a5e71ee717232e204435f331dce6fbfb9eb5d552698faa95b
2015-11-04 01:58:47 AddToWallet 1c91517aeadd12bcbcfdf4a1423b671d405543ae9abfbd87078969ce1971663f
2015-11-04 01:58:47 AddToWallet b11f9c2e3b1ab3d3983da63783bb95903d89405243d0716ea88272a9261b7a33
Das ist wirklich seltsam. Können Sie das vollständige Protokoll einfügen, einschließlich der Stellen, an denen die Blöcke hinzugefügt/entfernt werden?
Einverstanden, können Sie uns zeigen, wo die Blockchain-Höhe auf 38 gesunken ist? In dem von dir geposteten Log steht es nicht.
Die beste Kette wird nach der größten kumulativen Schwierigkeit ausgewählt, nicht nach der Höhe. Ihre Änderungen haben im Wesentlichen für häufige Gabelungen und Umstrukturierungen gesorgt. Die Schwierigkeitsanpassungen sind bei Bitcoin lange Zeit teilweise als Angriffsresistenz, aber auch um laute Kettenbewegungen zu vermeiden. Es ist völlig legal, die Höhe der Kette drastisch zu reduzieren.
@Bitcoin Aber das von bawejakunal gepostete Protokoll zeigt, dass die Gesamtarbeit sinkt, wenn der Client die Blockchain ändert. Vorher: height=181 log2_work=37.083613Nachher: height=38 log2_work=36.832912​​Die 38-Blockchain ist vollständig in der 181-Blockchain enthalten.
@NickODell Ich denke, in diesem Fall gibt es noch andere fehlgeleitete Basteleien, die wir nicht sehen. Es ist schwer zu sagen, ohne das gesamte Patch-Set zu kennen.
@bawejakunal, ich sehe nichts in dem von Ihnen angegebenen Link. Kannst du Pastebin ausprobieren?
@JimmySong erneut hochgeladen: gist.github.com/nickodell/1d8f29faad7a566c08fd

Antworten (1)

Es sieht so aus, als ob dieser Teil des Codes all diese UpdateTip-Nachrichten hinzugefügt hat:

https://github.com/bitcoin/bitcoin/blob/8fe30fb4d130532d4a0e4c9d143f03e1b85a749e/src/main.cpp#L2234

Im Wesentlichen glaubt Bitcoind, dass eine andere Kette mit mehr kumulativer Arbeit in Ihrem 4-Knoten-Netzwerk existiert, obwohl es aus den Protokollen schwer zu sagen ist, wie viel niedriger sie geht. Sie müssen es länger laufen lassen, um es herauszufinden.

Oh, Sie meinen, das ist der Fall beim Wechseln zwischen zwei konkurrierenden Blockchains?
Ja. Dies könnte beispielsweise passieren, wenn einer Ihrer Knoten keine Blöcke empfängt, sondern nur sendet.