Altcoin

如何更改比特幣的工作量證明?然後啟用礦工

  • May 2, 2019

我正在使用<https://github.com/jgarzik/pyminer/blob/master/pyminer.py>來測試一些不同的雜湊函式。相反,我想嘗試 keccak,其中一些按“X5”等順序排列。

這是一個嘗試更改比特幣工作證明並重新編譯和測試的玩具項目,要麼是舊版本 < 0.10.0,因為 getwork() 可能更容易測試,要麼是最新版本 - 顯然 bitcoin-cli 可以探勘如果從一個新的創世塊開始,並且難度設置得如此之低,以至於 CPU 可以隨心所欲地探勘,則塊。

我的問題是我在 Bitcoin Core 中找不到工作量證明。我已經查看了近一周的 pow 和驗證文件,但到目前為止沒有運氣,或者我只是因為某種原因看不到它。

我認為在我認為不再使用的 miner.cpp 中可能很明顯(但可能能夠啟用?),我能找到的最好的是 pow.cpp 中的 CheckProofOfWork。

它似乎沒有檢查 PoW 是否為 sha256d。可以?我肯定錯過了什麼。所以看起來我可以更改礦工程式碼並送出工作證明,如果符合要求,它將被接受。

是否有一種相當簡單的方法來使用玩具礦工,更改 PoW 算法,並在必要時修改比特幣核心以嘗試不同的工作證明?

編輯:這不是山寨幣開發,而是更詳細地理解比特幣程式碼的努力。請停止乞求問題。另外,請考慮僅對真正無用的問題而不是您不喜歡的問題投反對票。謝謝!

工作量證明中使用的雜湊函式不是比特幣核心需要檢查的塊中的一些變數或附加數據。此外,工作證明不僅僅是您送出的東西;事實上,它根本不是一個單獨的數據欄位。工作量證明是塊頭的雜湊值,檢查工作量證明意味著計算該雜湊值並將其與目前目標值進行比較。

因此,要更改工作量證明算法,您需要更改用於散列塊頭的散列函式。請記住,這樣做也會改變塊的辨識方式,因為塊是通過雜湊來辨識的。

被呼叫來計算和獲取塊頭雜湊的函式可以在這裡找到。該函式本身呼叫一個輔助函式,該函式呼叫其他一些輔助函式。如果你想改變 PoW 中使用的雜湊函式,你也需要改變那些助手。請記住,如果您也更改了這些函式,其他事情可能會中斷,並且比 PoW 中使用的散列函式會發生變化。

引用自:https://bitcoin.stackexchange.com/questions/87412