Go-Ethereum

沒有新幣挖礦的乙太坊專用網路

  • March 27, 2018

我設法使用以下方法創建了一個私有乙太坊網路genesis.json

{
   "config": {
       "chainId": 15,
       "homesteadBlock": 0,
       "eip155Block": 0,
       "eip158Block": 0
   },
   "difficulty": "200000000",
   "gasLimit": "2100000",
   "alloc": {
       "1A77F77E1e523f9f68D97A89b0502f136fB7F942": { "balance": "300000000000000000000000000000000000000" }
   }
}

因為我已經將硬幣分配到上述錢包中,所以我不希望在此網路中生成任何新硬幣。有了這種創世配置,礦工是否能夠生成新幣?或者礦工只會為交易驗證而挖礦?

我們如何將這兩種方式與創世區塊區分開來?

我們如何將這兩種方式與創世區塊區分開來?

您不能在 Geth 中,至少不能通過在 genesis 文件中設置任何內容。

有了這種創世配置,礦工是否能夠生成新幣?

是的。同樣,如果您正在執行 Geth (go-ethereum) 客戶端,則無法直接關閉創世區塊中的挖礦獎勵。

我不希望在此網路中生成任何新硬幣

我能想到的幾個選項:

  • 研究使用 Parity,它支持blockReward其 genesis 文件中的欄位。
  • 如果您要使用 Parity,請檢查不同的共識算法是否適合您的項目。(Parity 支持Pluggable Consensus。)
  • 如果您非常想使用 Geth 客戶端,並且不介意從原始碼重新建構,請ByzantiumBlockReward更改consensus.go.

要更改的程式碼:

var (
   FrontierBlockReward    *big.Int = big.NewInt(5e+18) // Block reward in wei for successfully mining a block
   ByzantiumBlockReward   *big.Int = big.NewInt(3e+18) // Block reward in wei for successfully mining a block upward from Byzantium
   maxUncles                       = 2                 // Maximum number of uncles allowed in a single block
   allowedFutureBlockTime          = 15 * time.Second  // Max time from current time allowed for blocks, before they're considered future blocks
)

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