wie man neue Kontrollpunkte in einen Bitcoin-Klon einfügt

Ich weiß, dass Checkpoints alte Blöcke sind, die in der Quelle fest codiert sind: Was sind Checkpoints?

{11111, uint256S("0x0000000069e244f73d78e8fd29ba2fd2ed618bd6fa2ee92559f542fdb26e7c1d")},
{33333, uint256S("0x000000002dd5588a74784eaa7ab0507a18ad16a236e7b1ce69f00d7ddfb5d0a6")},
{74000, uint256S("0x0000000000573993a3c9e41ce34471c079dcf5f52a0e824a81e7f953b8661a20")},
{105000, uint256S("0x00000000000291ce28027faea320c8d2b054b2e0fe44a773f3eefb151d6bdc97")},
{134444, uint256S("0x00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe")},
{168000, uint256S("0x000000000000099e61ea72015e79632f216fe6cb33d7899acb35b75c8303b763")},
{193000, uint256S("0x000000000000059f452a5f7340de6682a977387c17010ff6e6c3bd83ca8b1317")},
{210000, uint256S("0x000000000000048b95347e83192f69cf0366076336c639f9b7228e9ba171342e")},
{216116, uint256S("0x00000000000001b4f4b433e81ee46494af945cf96014816a4e2370f11b23df4e")},
{225430, uint256S("0x00000000000001c108384350f74090433e7fcf79a606b8e797f065b130575932")},
{250000, uint256S("0x000000000000003887df1f29024b06fc2200b55f8af8f35453d7be294df2d214")},
{279000, uint256S("0x0000000000000001ae8c72a0b0c301f67e3afca10e819efa9041e458e9bd7e40")},
{295000, uint256S("0x00000000000000004d9b4ef50f0f9d686fd69db2e03af35a100370c64632a983")},

Das sind Blöcke, die von der Kette abgebaut wurden, oder?

Wie kann ich diese Blöcke erhalten und in meinen nächsten Build einfügen?

was sind diese Nummern? 11111, 33333, 74000

Lassen Sie mich verstehen, dass ich diese Prüfpunkte einfüge und die App erneut aufbaue?

Wenn ich also 10 Checkpoints einfüge, beginnt die Blockchain mit 10 abgebauten Blöcken, richtig?

Wie bekomme ich diesen Block-Hash?

bearbeiten:

Neuer Proof-of-Work-Block gefunden

 Block hash: 00000bbbcb87a6d709ec944f6bdccdc41a59240d27ba3bbb759ef933c93bc890
     Target: 00007fffff000000000000000000000000000000000000000000000000000000

CBlock(hash=00000bbbcb87a6d709ec, ver=1, hashPrevBlock=00000d7e8a80fec4057c, hashMerkleRoot=c5912b6765, nTime=1523401728, nBits=1e7fffff, nNonce=84537, vtx=1, vchBlockSig=3045022054f16ce64dbc74934f59bef40cc20d08d9a01ac7b43308f6aeecb9321eff56ac022100c96e1b59a7b7d4c6b2436b34f6559d24b2997fc77d7a64588b20997aa632eeb6)
CBlock General PoB(nBurnBits=1f00ffff nEffectiveBurnCoins=0 (formatted 0.00))
  Coinbase(hash=c5912b6765, nTime=1523401728, ver=1, vin.size=1, vout.size=1, nLockTime=0)
    CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000, -1), coinbase 040044cd5a0101062f503253482f)
    CTxOut(nValue=42.04, scriptPubKey=0325fa33db34946070c7efb69e8fdfa74b9174e3abc2ec4232926bdf47725ac377 OP_CHECKSIG)
  vMerkleTree: c5912b6765 
2018-04-10 23:08:48 UTC generated 42.04
AddToWallet c5912b6765  new
SetBestChain: new best=00000bbbcb87a6d709ec  height=1  trust=2  moneysupply=42.04 nEffectiveBurnCoins=0.00
ProcessBlock: ACCEPTED
Running  with 1 transaction in block

In meinem Fall nehme ich an, dass ich die Münzen manuell schürfe, die Höhe und den Hash bekomme und sie an den Kontrollpunkten einfüge und die Brieftasche wieder aufbaue, richtig? Die Brieftasche beginnt also mit bestimmten o-Blöcken, die abgebaut werden, oder?

also wird es so sein, diese Informationen zu geben?:

{1, uint256S("0x00000bbbcb87a6d709ec944f6bdccdc41a59240d27ba3bbb759ef933c93bc890")},

Antworten (1)

Es hat die Form von

{block_height, uint256S("0xblock_hash")},

Zum Beispiel,

{134444, uint256S("0x00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe")},

Wenn Sie nach "00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe" suchen, dem Hash dieses Blocks auf Blockchair, finden Sie den Block mit der Höhe 134444.

Einfach, oder?

EDIT : Ihre Bearbeitung ist teilweise korrigiert. Beachten Sie, dass Sie beim Hinzufügen eines Prüfpunkts den Block nicht fest in den Client codieren. Wenn ein Benutzer es zum ersten Mal öffnet, lädt er alle Blöcke herunter, beginnend mit dem ersten Block. Checkpoints ermöglichen es den Kunden zu überprüfen, ob jemand, der seine Blockchain völlig anders als die Hauptkette erstellt hat, Ihnen die gefälschte Kette sendet. Die Clients laden die gesamte Kette herunter und verifizieren die Blöcke mit Checkpoints (siehe auch: assumevalid)

Ja, sehr einfach, ich bearbeite meine Frage. Kann bitte bestätigen, was ich gesagt habe, macht Sinn? danke für deine zeit