Частная сеть Ethereum без майнинга новых монет

Мне удалось создать частную сеть Ethereum, используя следующиеgenesis.json

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

Поскольку я уже размещаю монеты в этом кошельке, я не хочу, чтобы в этой сети генерировались новые монеты. Смогут ли майнеры с этой конфигурацией генезиса генерировать новые монеты? или же майнеры будут майнить только для проверки транзакций?

Как мы можем отличить эти два пути от генезисного блока?

Ответы (2)

Как мы можем отличить эти два пути от генезисного блока?

Вы не можете в Geth, по крайней мере, ничего не устанавливая в файле генезиса.

Смогут ли майнеры с этой конфигурацией генезиса генерировать новые монеты?

Да. Опять же, нет возможности напрямую отключить вознаграждение за майнинг в блоке генезиса, если вы используете клиент Geth (go-ethereum).

Я не хочу, чтобы в этой сети генерировались новые монеты

Пара вариантов, которые я могу придумать навскидку:

  • Попробуйте использовать Parity, который поддерживает blockRewardполе в своих исходных файлах.
  • Если вы собираетесь использовать Parity, проверьте, подходит ли для вашего проекта другой алгоритм консенсуса. (Четность поддерживает Pluggable Consensus .)
  • Если вы отчаянно хотите использовать клиент Geth и не возражаете против пересборки из исходного кода, измените значение ByzantiumBlockReward, которое равно 3, а не 5, в 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
)
Спасибо, что предоставили мне информацию о consensus.go. Это именно то, что я хотел, и я не против сборки из исходного кода. Последний вопрос, в чем разница между FrontierBlockReward& ByzantiumBlockRewardзначениями? Потому что мне пришлось сделать оба значения равными 0, чтобы удалить новую награду за добычу блоков.

Да, майнеры смогут генерировать новые монеты, они будут получать по 5 монет на каждый блок.

Они также будут майнить комиссии за транзакции со всех транзакций, которые были обработаны в найденном ими блоке.

Вам не нужно ничего различать, блок генезиса создается один раз в начале, он никогда не будет добыт ни одним майнером.