Wo ist die Funktion, die die Miner-Adresse für das Mining des Blocks belohnt?

Ich habe mich kürzlich mit Go-Ethereum beschäftigt und meinen eigenen Konsensmechanismus "eingesteckt", der einen Knoten erfordert, um eine einfache Gleichung (2 + 2) usw. zu lösen, um einen Block zu versiegeln.Geben Sie hier die Bildbeschreibung ein

Aber selbst nachdem es auf 4392 Blöcke laufen gelassen wurde, hat die Miner-Adresse immer noch keine eth?

Geben Sie hier die Bildbeschreibung ein

Kann mich jemand in die richtige Richtung weisen, z. B. eine Dokumentation darüber, wo die Belohnung in der Codebasis angegeben ist? Ich kann es nicht finden. Beifall!

Antworten (1)

Kann mich jemand in die richtige Richtung weisen, z. B. eine Dokumentation darüber, wo die Belohnung in der Codebasis angegeben ist?

Die statische Blockbelohnung ist definiert in 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

Später in der gleichen Datei ist 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.
Ah ja, ich sehe jetzt, ich musste während der Finalisierungsfunktion Ether hinzufügen, indem ich die Coinbase-Adresse dieses Blocks verwendete. Beifall!