Tag-Beschreibung locate
Pieter ' s Antwort ist gut, die chainwork Wert ist die zu erwartende Menge Arbeit in der Kette, ausgedrückt als 32-Byte-Ganzzahl, für den doppelten SHA-256 hashes für die Berechnung der Arbeit.
Die chainwork wird verwendet, um identifizieren, die richtige Kette, den größten chainwork Wert bedeutet den stärksten oder die passende Kette.
Durch die Art und Weise, Satoshi hat nicht zunächst erkennen, dass die Wahl der richtigen Kette von nur-zählen-blocks ermöglicht für einige sehr einfache Angriffe. Version 0.1 nur gezählt Blöcke. Das ist, warum Sie das Papier sagt nur "längste". Die Idee der "Kette" war ein wenig später hinzu. Für Details über diese, entnehmen Sie bitte hier.
Ich möchte einige Informationen darüber, wie diese 'chainwork' Wert kommt, zum besseren oder tieferen Verständnis darüber, was es ist.
Lassen Sie uns nehmen einen Blick auf Satoshi ' s genesis-block-header (Teil-Informationen):
$ bitcoin-cli getblockhash 0
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
$ bitcoin-cli getblockheader 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
{
...
"Höhe": 0,
...
"bits": "1d00ffff",
"Schwierigkeiten": 1,
"chainwork": "0000000000000000000000000000000000000000000000000000000100010001",
...
}
Wie Sie oben sehen, ist die genesis-block eine '1', Schwierigkeit und [0x01,0001,0001] chainwork . Wenn Sie eine Frage haben über das, was eine 'Schwierigkeit', können Sie einen Blick auf diese Antwort. So, das ist die richtige definition:
Schwierigkeit '1' = chainwork Höhe [0x01,0001,0001]
Dann, jedes mal, wenn ein neuer block generiert, die wir gerade sammeln sich die chainwork mit neuen Blocks 'Schwierigkeit' - Feld Wert, aber denken Sie daran, für jede " 1 " die Schwierigkeit fügen wir eine chainwork Höhe [0x01,0001,0001].
Als die block-Kette wächst, die Schwierigkeit erhöht (oder auch manchmal etwas verkleinern) ganz allmählich. Sie können werfen Sie einen Blick auf die Schwierigkeit, die Geschichte hier.
Vor der ersten Zeit der Schwierigkeiten geändert, die Kette blockieren Höhe erreicht hatte 32255.
$ bitcoin-cli getblockhash 32255
00000000984f962134a7291e3693075ae03e521f0ee33378ec30a334d860034b
$ bitcoin-cli getblockheader 00000000984f962134a7291e3693075ae03e521f0ee33378ec30a334d860034b
{
...
"Höhe": 32255,
...
"bits": "1d00ffff",
"Schwierigkeiten": 1,
"chainwork": "00000000000000000000000000000000000000000000000000007e007e007e00",
...
}
Wie Sie oben sehen können, die chainwork Wert [0x7e00,0x7e00,0x7e00], was exakt der Höhe[32255]+1(für den genesis block) mal [0x01,0001,0001].
[0x7e00,0x7e00,0x7e00] = 32256 * [1.0] * [0x01,0001,0001]
Dann lassen Sie uns nehmen einen Blick auf block 32256:
$ bitcoin-cli getblockhash 32256
000000004f2886a170adb7204cb0c7a824217dd24d11a74423d564c4e0904967
$ bitcoin-cli getblockheader 000000004f2886a170adb7204cb0c7a824217dd24d11a74423d564c4e0904967
{
...
"Höhe": 32256,
...
"bits": "1d00d86a",
"Schwierigkeiten": 1.182899534312841,
"chainwork": "00000000000000000000000000000000000000000000000000007e01acd42dd2",
...
}
Bei block 32256, denn die Schwierigkeit steigt von 1,0 auf 1.182899534312841, dann
[chainwork Wert] = [vorige chainwork-Wert] + [Schwierigkeit] * [0x01,0001,0001]
[0x7e01,acd4,2dd2] = [0x7e00,0x7e00,0x7e00] + [1.182899534312841] * [0x01,0001,0001]