Proof-of-Stake
如何為新的權益證明加密貨幣創建創世塊?
大約一周以來,我一直在嘗試分叉加密貨幣 Clams。我所有的程式碼都符合硬幣的規格,但我一直堅持創建區塊鏈。開發人員已經刪除了涉及創世塊的程式碼,我似乎沒有任何方法可以生成 PoS 創世塊。如果有人對 PoS 硬幣有任何經驗,我將非常感謝任何建議。謝謝你。
快速而骯髒的解決方案?使用他們自己的初始雜湊。
如何創建創世塊
Main.h
刪除 Main Merkle 和 Genesis Merkle(範例)
主創世塊
static const uint256 hashGenesisBlock("0x000004611c87517dfd29fe7f34bd6da2e1ad3d305ac12afe80a3229069390f68");
到
static const uint256 hashGenesisBlock("");
內部
Main.h
也是Testnet Genesis
static const uint256 hashGenesisBlockTestNet("0x000004611c87517dfd29fe7f34bd6da2e1ad3d305ac12afe80a3229069390f68");
到
static const uint256 hashGenesisBlockTestNet("");
將其
Main.cpp
更改為您想要的時間戳(範例)
const char* pszTimestamp = "Blockchain.info Block #312427 2014-07-25 14:15:16";
內部:
Main.cpp
將這些都更改為您想要的紀元時間 //Unixtime check google
txNew.nTime = 1406297716; (example) (example) block.nTime = 1406297716; (example) (example) (example)
內部:
Main.cpp
將這些更改為 0block.nNonce = !fTestNet ? 190271 : 190271; (example) (example) (example)
inside:
Main.cpp
將其更改為 trueif (false && (block.GetHash() != hashGenesisBlock))
進入
if (true && (block.GetHash() != hashGenesisBlock))
內部:
Main.cpp
刪除 Merkle 根assert(block.hashMerkleRoot == uint256("0xc9c8f6250a60dc79038b9ae68ff747488ac80d4a2db0b194cf49628495448d21"));
到
assert(block.hashMerkleRoot == uint256(""));
現在編譯錢包,讓它崩潰。接下來,您在調試文件中發現 Merkle Root/Hash 將其替換為您之前步驟的空白區域。但請確保您必須添加到開頭的 0x,只需將這些步驟與新資訊進行比較並撤消即可。
將 Main.cpp 與
hashMerkleRoot
您添加的 New 一起保存。並重新編譯。然後重新開始,讓錢包像以前一樣再次崩潰。再次訪問調試日誌並替換其他資訊。您在調試中發現
block.nNonce
您提醒您之前將其刪除。和 Genesis/Block Hash .. 你提醒你先刪除它。複製並粘貼到 Main.h 中的可用空間,並在開頭添加 0x。而已。保存所有文件並再次編譯。你是一個硬幣開發者:-)