Proof-of-Work
為什麼我的 proofOfWork() 對每個 nonce 都有效?
我通過提供任何隨機數作為隨機數,從我在乙太坊錢包中部署的合約執行工作證明功能。根據我的理解,PoW() 不應該對每個 nonce 都有效,但在我的情況下,每次交易都會執行(PoW 適用於每個 nonce)。我如何驗證它是否每次都在工作 - 通過監控 msg.sender、難度和 currentChallenge 參數的平衡。如果我在任何時候錯了,請糾正我,並就正在發生的事情提出解決方案或解釋。
我認為您指的是:https ://www.ethereum.org/token#proof-of-work 。所以如果每次都經過相關程式碼一定是:
if (n < bytes8(difficulty)) throw;
您是否嘗試將難度設置得更高?
uint public difficulty = 10**52; // Difficulty
您還可以使用日誌事件跟踪執行,例如
log0('here')
我通過提供任何隨機數作為隨機數,從我在乙太坊錢包中部署的合約執行工作證明功能。
請發布該函式的程式碼,更重要的是,您首先要定義這樣一個函式的原因。
根據我的理解,PoW() 不應該對每個 nonce 都有效,但在我的情況下,每次交易都會執行(PoW 適用於每個 nonce)。
您的理解不正確(至少從這個問題的內容來看)。PoW 功能旨在加強區塊鏈的去中心化方面,因為潛在攻擊者在區塊鏈上的成功(例如防止進行交易、雙重支出等)不是由攻擊者的對等點數量定義的控制但它的計算能力。閱讀這篇文章以獲得更清晰的畫面。
我如何驗證它是否每次都在工作 - 通過監控 msg.sender、難度和 currentChallenge 參數的平衡。如果我在任何時候錯了,請糾正我,並就正在發生的事情提出解決方案或解釋。
餘額與 PoW 無關。PoW 在那裡表明,無論誰進行交易,都是獨一無二的,而且只有一次。