Go-Ethereum

如果阻塞時間更改為 5 秒會發生什麼?

  • March 18, 2018

thisthis有關。

難度調整算法為:

block_diff = parent_diff + parent_diff // 2048 * max(1 - (block_timestamp - parent_timestamp) // 10, -99) + int(2**((block.number // 100000) - 2))

其中 // 是整數除法運算符,例如。6 // 2 = 3, 7 // 2 = 3, 8 // 2 = 4。

據我了解,選擇了一個 10 秒的門檻值,以將阻塞時間保持在 10-20 秒的範圍內。此外,原始碼可在此處獲得。那麼,我可以修改算法(可能更改//10//5)並創建一個5 seconds用於確認區塊的區塊鍊網路嗎?這是可以實現的嗎?我希望通過這篇部落格文章得到這個問題的答案,但無法弄清楚這樣做的確切缺點。

PS:基本上,我有一個在私有區塊鏈上執行的應用程序,它需要更少的塊確認時間。我以低難度啟動0x400區塊鏈(所以,我正在尋找一種方法來防止這種難度增加。這是否可能在不影響安全性的情況下實現?

我正在使用 geth-1.4.9

要考慮的一件事是孤兒率,這在您連結到的執行緒的評論中有所提及。

您設置的難度越低,出塊時間越短,這就是您的目標。

但是,難度越低,多個礦工同時解塊,鏈分叉的機會就越大。這最終導致其中一個分叉中的區塊被孤立,這就是為什麼乙太坊(其區塊時間為 15 秒)已經使用GHOST 協議(或其有限版本)的原因。您必須進行試驗以查看鏈重新排列是否會導致您的網路出現任何問題。

請注意,您連結到的算法包括對難度炸彈所做的更改,這意味著難度會隨著塊數的增加而增加。

... int(2**((block.number // 100000) - 2)) <---- this part

這樣做的目的是最終(有效地)使採礦變得不可能,為轉向 PoS 鋪平道路。您可能希望像在這些更改之前一樣使用該算法。

引用自:https://ethereum.stackexchange.com/questions/7077