Wie schürft man einen Genesis-Block?

Nach diesem Leitfaden versuche ich zu lernen, wie man einen Genesis-Block abbaut, nicht um einen weiteren Altcoin oder irgendetwas zu starten, Blockchain-Datenbanken werden wichtig sein und ich möchte der Kurve voraus sein.

Ich verwende dieses Skript und arbeite mit der Litecoin-Quelle. Ich habe nur folgendes geändert:

find LoadBlockIndex() function, inside, change:
    - paraphrase (pszTimestamp) to any recent news phase.
    - get the latest unix time (do a google), and put in block.nTime.
    - set any nNonce (doesn't really matter)
you can change the time/nonce for testnet too, if you want to use it.

Diese Variablen befinden sich jetzt in chainparams.cppund ich habe die Testnet-Zeit/Nonce nicht geändert.

Nach dem Kompilieren, wenn ich versuche, es auszuführen, litecoinderhalte ich die folgende Fehlermeldung:

litecoind: chainparams.cpp:220: CTestNetParams::CTestNetParams(): Assertion `hashGenesisBlock == uint256("0xf5ae71e26c74beacc88382716aced69cddf3dffff24f384e1808905e0188f68f")' failed.
Aborted

Wenn jemand helfen oder mich auf eine moderne Dokumentation hinweisen kann, wäre ich sehr dankbar :)

Wenn Sie den Genesis-Block ändern, müssen Sie die Hash-Check-Assertion ändern, da sich der Hash geändert hat.
Siehe auch: bitcoin.stackexchange.com/questions/34107/… . Diese Frage scheint bessere Antworten zu haben, daher sollte die verknüpfte Frage vielleicht als Duplikat markiert werden.
Danke @StephenM347, aber wie berechne ich, was die "Hash-Check-Assertion" sein sollte?
Auch gibt es keine Antworten in dem von Ihnen angegebenen Link.
Danach leiden Sie möglicherweise unter ReadBlockFromDisk: Errors in block header at CBlockDiskPos(, you?

Antworten (2)

Sie müssen so etwas hinzufügen genesis.nNonce = 353314; hashGenesisBlock = genesis.GetHash();

LogPrintf("Genesis-Hash anzeigen, damit wir ihn unter %s\n eingeben können", hashGenesisBlock.ToString().c_str());

assert(hashGenesisBlock == uint256("0xe133d1d3f584f1c3f561e7d0606fa87dabb869325a979c2a82e2f3943c0e3370")); vFixedSeeds.clear();

dann nach ./coind in debug.log können Sie Genesis-Hash erhalten