2

I create my new altercoin,but when I first run it,it already shows:"No block source available 5 week(s) behind". And I start anther computer in the LAN, they link succefully. I use the code of Datacoin.

static const uint256 hashGenesisBlockOfficial("f9f6d9a689f7a4093c71f397d8fe3fbef3a05cd6f919d51b4a9447aa22743dfb");
static const uint256 hashGenesisBlockTestNet("f9f6d9a689f7a4093c71f397d8fe3fbef3a05cd6f919d51b4a9447aa22743dfb");

  // Genesis block
        qDebug()<<"Genesis block";
        const char* pszStartTopic = "The Times 26/Dec/2013 Chancellor on brink of second bailout for banks";//https://bitcointalk.org/index.php?topic=325735.0";
        CTransaction txNew;
        txNew.vin.resize(1);
        txNew.vout.resize(1);
        txNew.vin[0].scriptSig = CScript() << 0 << CBigNum(999) << vector<unsigned char>((const unsigned char*)pszStartTopic, (const unsigned char*)pszStartTopic + strlen(pszStartTopic));
        txNew.vout[0].nValue = COIN;
        txNew.vout[0].scriptPubKey = CScript();
        CBlock block;
        block.vtx.push_back(txNew);
        block.hashPrevBlock = 0;
        block.hashMerkleRoot = block.BuildMerkleTree();
        block.nTime    = 1387977869 ;//http://www.unixtimestamp.com/index.php
        block.nBits    = TargetFromInt(6);
        block.nNonce   = 49030125;
        block.bnPrimeChainMultiplier = (uint64) 5651310;

        if (fTestNet)
        {
            block.nTime    = 1387977869 ;
            block.nBits    = TargetFromInt(4);
            block.nNonce   = 46032;
            block.bnPrimeChainMultiplier = (uint64) 211890;
        }

        //// debug print
        uint256 hash = block.GetHash();
        printf("%s\n", hash.ToString().c_str());

        qDebug()<<"hash:"<<hash.ToString().c_str();
        printf("%s\n", hashGenesisBlock.ToString().c_str());
        qDebug()<<"hashGenesisBlock:"<<hashGenesisBlock.ToString().c_str();
        printf("%s\n", block.hashMerkleRoot.ToString().c_str());
         qDebug()<<"block.hashMerkleRoot:"<<block.hashMerkleRoot.ToString().c_str();
        assert(block.hashMerkleRoot == uint256("a0c44c1b6dd50fcaa2bc1c4d7f8ca406506caee88578d751fb3824b41bc34d84"));
        block.print();

        assert(hash == hashGenesisBlock);
        {
            CValidationState state;
            assert(block.CheckBlock(state, true, true));
            assert(CheckProofOfWork(block.GetHeaderHash(), block.nBits, block.bnPrimeChainMultiplier, block.nPrimeChainType, block.nPrimeChainLength));
        }

Failed at assert(CheckProofOfWork(block.GetHeaderHash(), block.nBits, block.bnPrimeChainMultiplier, block.nPrimeChainType, block.nPrimeChainLength));. And the debug.log says:

    CBlock(hash=f9f6d9a689f7a4093c71f397d8fe3fbef3a05cd6f919d51b4a9447aa22743dfb, hashBlockHeader=7d6aeeb7ca2b87d2f48bbd7a675c8374691c4f44f0db1a10de66436bfbcb0188, ver=2, hashPrevBlock=0000000000000000000000000000000000000000000000000000000000000000, hashMerkleRoot=a0c44c1b6dd50fcaa2bc1c4d7f8ca406506caee88578d751fb3824b41bc34d84, nTime=1387977869, nBits=06000000, nNonce=49030125, vtx=1)
      CTransaction(hash=a0c44c1b6dd50fcaa2bc1c4d7f8ca406506caee88578d751fb3824b41bc34d84, ver=1, vin.size=1, vout.size=1, nLockTime=0, data.size=0)
        CTxIn(COutPoint(0000000000000000000000000000000000000000000000000000000000000000, 4294967295), coinbase 0002e703455468652054696d65732032362f4465632f32303133204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73)
        CTxOut(error)
ERROR: CheckPrimeProofOfWork() : block header hash under limit
ERROR: CheckProofOfWork() : check failed for prime proof-of-work

Anything else can I change to make the genesis block work?

1
  • I know this is kind of digging the past. But, Were you able to find the solution? Aug 2, 2017 at 23:10

1 Answer 1

0

I think you can use this : https://bitcointalk.org/index.php?topic=225690.0 This is all you need to make your altcoin working ;)

According to this link, you need to launch your alt coin's software and see in debug.log which hash your software is waiting for.

1
  • I know how to generate bitcoin genesis block,but primecoin and datacoin are different.They can't just change the time and hash code to make it run successfully.There must be something else to modify.
    – Gank
    Jan 23, 2014 at 18:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.