mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-18 02:40:45 +00:00
Refine comments for feature add reward to validators and signers block.
This commit is contained in:
parent
831626de23
commit
bbd132c1a3
2 changed files with 13 additions and 7 deletions
|
|
@ -607,9 +607,13 @@ func (c *Clique) Prepare(chain consensus.ChainReader, header *types.Header) erro
|
||||||
func (c *Clique) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
|
func (c *Clique) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
|
||||||
// set block reward
|
// set block reward
|
||||||
// FIXME: unit Ether could be too plump
|
// FIXME: unit Ether could be too plump
|
||||||
if c.HookReward != nil {
|
number := header.Number.Uint64()
|
||||||
if error := c.HookReward(chain, state, header); error != nil {
|
rCheckpoint := chain.Config().Clique.RewardCheckpoint
|
||||||
return nil, error
|
|
||||||
|
if c.HookReward != nil && number%rCheckpoint == 0 {
|
||||||
|
if err := c.HookReward(chain, state, header); err != nil {
|
||||||
|
return nil, err
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -195,6 +195,9 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
|
||||||
Reward float64 `json:"reward"`
|
Reward float64 `json:"reward"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
number := header.Number.Uint64()
|
||||||
|
rCheckpoint := chain.Config().Clique.RewardCheckpoint
|
||||||
|
|
||||||
// Call to smart contract signer.
|
// Call to smart contract signer.
|
||||||
config := ctx.GetConfig()
|
config := ctx.GetConfig()
|
||||||
client, err := ethclient.Dial(config.IPCEndpoint())
|
client, err := ethclient.Dial(config.IPCEndpoint())
|
||||||
|
|
@ -208,12 +211,11 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
|
||||||
}
|
}
|
||||||
opts := new(bind.CallOpts)
|
opts := new(bind.CallOpts)
|
||||||
|
|
||||||
number := header.Number.Uint64()
|
|
||||||
rCheckpoint := chain.Config().Clique.RewardCheckpoint
|
|
||||||
prevCheckpoint := number - rCheckpoint
|
prevCheckpoint := number - rCheckpoint
|
||||||
|
|
||||||
if number > 0 && prevCheckpoint > 0 && number%rCheckpoint == 0 {
|
if number > 0 && prevCheckpoint > 0 {
|
||||||
// Not reward for singer of genesis block and only calculate reward at checkpoint block.
|
// Not reward for singer of genesis block and only calculate reward at checkpoint block.
|
||||||
startBlockNumber := number - (rCheckpoint * 2) + 1
|
startBlockNumber := number - (rCheckpoint * 2) + 1
|
||||||
endBlockNumber := startBlockNumber + rCheckpoint - 2
|
endBlockNumber := startBlockNumber + rCheckpoint - 2
|
||||||
signers := make(map[common.Address]*rewardLog)
|
signers := make(map[common.Address]*rewardLog)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue