Где функция, которая вознаграждает адрес майнера за добычу блока?

Недавно я копался в go-ethereum и «подключил» свой собственный механизм консенсуса, который требует, чтобы узел решал простое уравнение (2+2) и т. д., чтобы запечатать блок.введите описание изображения здесь

Однако даже после того, как он запустился до 4392 блоков, адрес майнера все еще не получил eth?

введите описание изображения здесь

Может ли кто-нибудь указать мне правильное направление, например документацию о том, где в кодовой базе дается вознаграждение? Кажется, я не могу найти его. Ваше здоровье!

Ответы (1)

Может ли кто-нибудь указать мне правильное направление, например документацию о том, где в кодовой базе дается вознаграждение?

Награда за статический блок определяется в consensus.go:

FrontierBlockReward       = big.NewInt(5e+18) // Block reward in wei for successfully mining a block
ByzantiumBlockReward      = big.NewInt(3e+18) // Block reward in wei for successfully mining a block upward from Byzantium
ConstantinopleBlockReward = big.NewInt(2e+18) // Block reward in wei for successfully mining a block upward from Constantinople

Далее в том же файле accumulateRewards():

// AccumulateRewards credits the coinbase of the given block with the mining
// reward. The total reward consists of the static block reward and rewards for
// included uncles. The coinbase of each uncle block is also rewarded.
Ах да, теперь я вижу, мне пришлось добавить эфир во время функции финализации, используя адрес монетной базы этого блока. Ваше здоровье!