雜湊劑量匹配 nbits
我試圖複製一個硬幣並創建了一個創世塊,但是當我執行錢包時,它沒有啟動。當我轉到日誌文件時,我看到了這個錯誤,老實說我不知道如何解決這個問題。如何為夸克雜湊算法創建創世塊。我嘗試了一些生成器,但它沒有工作。任何幫助,將不勝感激。
這是來自 debug.log 文件…
錯誤:CheckProofOfWork():雜湊與 nBits 不匹配錯誤:CheckBlockHeader():工作證明失敗錯誤:CheckBlock():CheckBlockHeader 失敗錯誤:ConnectTip():ConnectBlock 7451cc25dd4fdfc6f441298e59dfc012d2dc078d687a120bf94a20d98beefd16 失敗
好的,我正在複製BitcoinGreen…它使用夸克算法。我生成創世塊和 MerkleRoot 的方式是將程式碼粘貼到 chainparams.cpp 上,即這個..
printf(“genesis.GetHash = %s\n”, genesis.GetHash().ToString().c_str());
printf(“Gensis Hash Merkle: %s\n”, genesis.hashMerkleRoot.ToString().c_str());
即使這給了我創世塊的程式碼,它也沒有為硬幣生成正確的程式碼。我什至使用這個特殊的程式碼,它也生成了創世塊……
常量 int SCRYPT_SCRATCHPAD_SIZE = 131072 + 63;
//if (true && genesis.GetHash() != hashGenesisBlock) if(true) { 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(genesis.nBits).getuint256(); uint256 thash; char scratchpad[SCRYPT_SCRATCHPAD_SIZE]; while(true) { scrypt_1024_1_1_256_sp_generic(BEGIN(genesis.nVersion), BEGIN(thash), scratchpad); if (thash <= hashTarget) break; if ((genesis.nNonce & 0xFFF) == 0) { printf("nonce %08X: hash = %s (target = %s)\n", genesis.nNonce, thash.ToString().c_str(), hashTarget.ToString().c_str()); } ++genesis.nNonce; if (genesis.nNonce == 0) { printf("NONCE WRAPPED, incrementing time\n"); ++genesis.nTime; } } printf("block.nTime = %u \n", genesis.nTime); printf("block.nNonce = %u \n", genesis.nNonce); printf("block.GetHash = %s\n", genesis.GetHash().ToString().c_str()); }
這也沒有奏效。差不多就是這樣。我試過了。
請提供更多數據。你是如何產生你的創世區塊的?(具體參數)你用什麼PoW算法複製哪個幣?您在編輯原始碼方面採取了哪些步驟?
編輯:
好的,看起來您依賴客戶端將創世雜湊列印到調試日誌中,如果客戶端從未成功啟動,這將不起作用。要麼是這個,要麼是基於調試日誌輸出的某種檢查點錯誤。無論哪種方式,我都建議使用 genesis python 腳本 @ <https://github.com/lhartikk/GenesisH0/blob/master/genesis.py>
成功下載所有依賴項後,您可以在下載它的目錄中執行終端命令 python genesis.py help 以獲取可用命令/標誌的完整列表。本質上,它要求生成有效的創世雜湊所需的所有必需參數(Unix 時間戳、pzTimestamp、PubKey、PoW 算法、隨機數等)。
然後,您需要替換原始碼中的所有這些參數以及實際的創世雜湊本身,並確保沒有對任何其他區塊的引用,因為我們實際上是從創世區塊開始的。
如果需要,請隨時發布更新以獲得進一步的幫助。