Мне удалось создать частную сеть Ethereum, используя следующиеgenesis.json
{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"difficulty": "200000000",
"gasLimit": "2100000",
"alloc": {
"1A77F77E1e523f9f68D97A89b0502f136fB7F942": { "balance": "300000000000000000000000000000000000000" }
}
}
Поскольку я уже размещаю монеты в этом кошельке, я не хочу, чтобы в этой сети генерировались новые монеты. Смогут ли майнеры с этой конфигурацией генезиса генерировать новые монеты? или же майнеры будут майнить только для проверки транзакций?
Как мы можем отличить эти два пути от генезисного блока?
Как мы можем отличить эти два пути от генезисного блока?
Вы не можете в Geth, по крайней мере, ничего не устанавливая в файле генезиса.
Смогут ли майнеры с этой конфигурацией генезиса генерировать новые монеты?
Да. Опять же, нет возможности напрямую отключить вознаграждение за майнинг в блоке генезиса, если вы используете клиент Geth (go-ethereum).
Я не хочу, чтобы в этой сети генерировались новые монеты
Пара вариантов, которые я могу придумать навскидку:
blockReward
поле в своих исходных файлах.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
)
Да, майнеры смогут генерировать новые монеты, они будут получать по 5 монет на каждый блок.
Они также будут майнить комиссии за транзакции со всех транзакций, которые были обработаны в найденном ими блоке.
Вам не нужно ничего различать, блок генезиса создается один раз в начале, он никогда не будет добыт ни одним майнером.
ДилумN
consensus.go
. Это именно то, что я хотел, и я не против сборки из исходного кода. Последний вопрос, в чем разница междуFrontierBlockReward
&ByzantiumBlockReward
значениями? Потому что мне пришлось сделать оба значения равными 0, чтобы удалить новую награду за добычу блоков.