Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: DarkArrow on May 22, 2021, 04:07:47 PM



Title: Generic genesis block miner
Post by: DarkArrow on May 22, 2021, 04:07:47 PM
Hi, I'm trying to create the genesis block for an altcoin that has a different hashing algorithm (can't use GenesisH0). I found a snippet (see below) and tested it on the litecoin code, but it doesn't work, the hashes are wrong and the litecoind crashes with a segfault. And if I try with -reindex, I get a
Code:
AcceptBlock: high-hash, proof of work failed


Is there a better generic solution that works for any altcoin no matter what hashing algo it uses? Preferably something like that gist I pasted, that can be done within chainparams.cpp. Thanks.

https://gist.github.com/moh53n/de6b2b07002d5deea4aad05fa8fd059a
Code:
        /**
        * This code is from "http://dillingers.com/blog/2015/04/18/how-to-make-an-altcoin" with some changes for newer versions of Bitcoin.
        * Use this for mine the genesis block for a new coin.
        * Put this before "consensus.hashGenesisBlock = genesis.GetHash();"
        */
        /////////GENESIS MINING///////////////
        /*
        printf("Genesis mining started\n");
        genesis.nNonce = 0;
        consensus.hashGenesisBlock = uint256S("0x001");
        for(genesis.nNonce == 0; UintToArith256(genesis.GetHash()) > UintToArith256(consensus.powLimit); genesis.nNonce++){  }
        printf("New genesis merkle root: %s\n", genesis.hashMerkleRoot.ToString().c_str());
        printf("New genesis nonce: %lu\n", (unsigned long)genesis.nNonce);
        printf("New genesis hash: %s\n", genesis.GetHash().ToString().c_str());
        printf("Now replace the values, reComment the Genesis mining code and reCompile. \n");
        */
        //////////////////////////////////////