Skip to content

Instantly share code, notes, and snippets.

@dmikey
Created January 10, 2014 18:36
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save dmikey/8359944 to your computer and use it in GitHub Desktop.
Save dmikey/8359944 to your computer and use it in GitHub Desktop.
create litecoin genesis block, the missing code
assert(block.hashMerkleRoot == uint256("0x38ca78a781d3c571a681ea2241ffb1e0d89bd1ecd3499f1bf6edeaa8751e7151"));
// If genesis block hash does not match, then generate new genesis hash.
if (false && block.GetHash() != hashGenesisBlock)
{
printf("Searching for genesis block...\n");
// This will figure out a valid hash and Nonce if you're
// creating a different genesis block:
uint256 hashTarget = CBigNum().SetCompact(block.nBits).getuint256();
uint256 thash;
char scratchpad[SCRYPT_SCRATCHPAD_SIZE];
loop
{
scrypt_1024_1_1_256_sp_generic(BEGIN(block.nVersion), BEGIN(thash), scratchpad);
if (thash <= hashTarget)
break;
if ((block.nNonce & 0xFFF) == 0)
{
printf("nonce %08X: hash = %s (target = %s)\n", block.nNonce, thash.ToString().c_str(), hashTarget.ToString().c_str());
}
++block.nNonce;
if (block.nNonce == 0)
{
printf("NONCE WRAPPED, incrementing time\n");
++block.nTime;
}
}
printf("block.nTime = %u \n", block.nTime);
printf("block.nNonce = %u \n", block.nNonce);
printf("block.GetHash = %s\n", block.GetHash().ToString().c_str());
}
block.print();
@webdev866
Copy link

Hello,
This doesn't work for litecoin 0.18.1 code base, can you update it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment