Go-Ethereum
在私有鏈上使難度靜態化有什麼缺點嗎?
我在我的私有區塊鏈中將難度設置為靜態,所以我可以有靜態的響應時間。這樣做有什麼缺點嗎?
在私有鏈上使難度靜態化有什麼缺點嗎?
一個潛在的問題是你不能在不改變區塊時間的情況下增加更多的雜湊能力。
使難度靜態化
這是通過更改難度調整算法程式碼以使其返回靜態值來實現的,而不是計算通常需要進行的任何難度更改。
請注意,這與更改
difficulty
創世塊中的值不同,後者僅設置起始難度。主要難度調整算法還在。如果您的雜湊能力也保持靜態,那麼靜態難度很好,但是……
如果您打算增加雜湊算力
如果你增加了散列能力,並且你已經移除了調整算法,那麼你的出塊時間將會減少。從您的問題來看,這不是您想要的:
…所以我可以有靜態響應時間…
你真正想要實現的是特定的出塊時間,不一定是特定的難度。
為此,您需要保留調整算法,但對其進行調整以提供您想要的塊時間。
在這個(精彩的)先前的答案中,對該算法的工作原理進行了非常詳細的描述。我建議通過算法並了解您需要進行哪些更改才能獲得所需的時間。
需要注意的一點是,該算法包含難度炸彈的程式碼(參見上一個連結中的子公式 B),其目的是隨著時間的推移成倍增加難度,以減少工作量證明探勘的激勵。(為了從 PoW 轉向權益證明。)您可能希望刪除這部分算法,以防止難度呈指數增長。