Private-Blockchain

在私有區塊鏈中設置塊氣體限制?

  • November 1, 2017

在具有 Parity 的私有區塊鏈中,設置 Block Gas Limit 的正確方法是什麼?當我轉到“轉賬”,然後在“收件人”欄位中指定一個地址時,會彈出一個紅色條,上面寫著:

交易執行將超過區塊氣體限制

不知道為什麼block gas limit不是預設的!我正在使用自己的鏈規範文件,但我從https://github.com/paritytech/parity/blob/master/ethcore/res/ethereum/foundation.json複製了這些值:

"gasLimit": "0x1388",

"minGasLimit": "0x1388",

錯誤所說的限制似乎是 5000 (0x1388),因為直到我手動將氣體(從現場預設的 21000)降低到 4999 之前我得到了錯誤。但是為什麼限制設置為 5000?這兩個參數與塊氣體限制沒有任何關係,是嗎?

(無論如何,當我將氣體限制降低到低於 5000 時,我會遇到這個問題:Parity genesis file - How to set “minimal cost of the transaction” aka “Gtransaction” value?

真的,我只是不明白我做了什麼來改變 Block Gas 限制。它應該預設為 21000,對吧?我是如何設法改變這一點的?

問題是:

在具有 Parity 的私有區塊鏈中,設置 Block Gas Limit 的正確方法是什麼?

答案是:

  1. 使用 Parity 鏈規範中的gasLimit參數設置初始塊氣體限制。
  2. 隨著時間的推移,礦工們投票決定提高或降低這個限制時,他們將重新設置這個限制,minGasLimit是最低限度。

在私有網路中,您可以通過使用創世文件中的參數來增加塊氣體限制。gasLimit

“gasLimit”: “0x8000000”,

創世文件中的gasLimit:

一個標量值,等於目前鏈範圍內每個區塊的 Gas 支出限制。在我們的例子中,高以避免在測試期間受到此門檻值的限制。注意:這並不表示我們不應該關注我們合約的 Gas 消耗。

您可以從What does each genesis.json parameter mean? 中了解其他 genesis參數。

PS:我沒有嘗試增加塊氣體限制,但我想這應該可行。雖然你可以增加塊氣體限制,但你不應該(理想情況下)。如果這是出於測試目的,那沒關係。但是如果你的智能合約消耗的氣體超過了區塊氣體的限制,這是一個問題。您可以嘗試拆分契約。

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