cómo insertar nuevos puntos de control en un clon de bitcoin

Sé que los puntos de control son bloques antiguos codificados en la fuente: ¿ Qué son los puntos de control?

{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")},

estos son bloques extraídos por la cadena, ¿verdad?

¿Cómo puedo obtener estos bloques e insertarlos en mi próxima compilación?

¿Cuáles son estos números? 11111, 33333, 74000

Entonces, déjame entender que inserto estos puntos de control y reconstruyo la aplicación nuevamente.

Entonces, si inserto 10 puntos de control, la cadena de bloques comenzará con 10 bloques extraídos, ¿verdad?

¿Cómo puedo obtener hash de bloques de tesis?

editar:

Nuevo bloque de prueba de trabajo encontrado

 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

en mi caso, supongo que extraigo las monedas manualmente, obtengo la altura y el hash, las inserto en los puntos de control y reconstruyo la billetera, ¿verdad? Entonces, la billetera comienza con ciertos bloques o extraídos, ¿verdad?

Entonces, ¿dar esa información sobre será así?:

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

Respuestas (1)

esta en forma de

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

Por ejemplo,

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

Si busca "00000000000005b12ffd4cd315cd34ffd4a594f430ac814c91184a0d42d2b0fe", el hash de ese bloque en Blockchair, encontrará el bloque con la altura 134444.

Sencillo, ¿eh?

EDITAR : Su edición está parcialmente corregida. Tenga en cuenta que cuando agrega un punto de control, no codifica el bloque en el cliente. Cuando un usuario lo abre por primera vez, descargará todos los bloques a partir del primer bloque. Los puntos de control permiten a los clientes verificar si alguien que creó su cadena de bloques completamente diferente a la cadena principal le está enviando la cadena falsa. Los clientes descargan toda la cadena y verifican los bloques con puntos de control (ver también: assumevalid)

sí, muy simple, edito mi pregunta, ¿puede confirmar que lo que dije tiene sentido? gracias por tu tiempo