From bbd132c1a3f7e9cbc80bf9735c842827433522af Mon Sep 17 00:00:00 2001 From: parmarrushabh Date: Thu, 9 Aug 2018 14:24:16 +0530 Subject: [PATCH] Refine comments for feature add reward to validators and signers block. --- consensus/clique/clique.go | 10 +++++++--- eth/backend.go | 10 ++++++---- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/consensus/clique/clique.go b/consensus/clique/clique.go index 284f338b2a..48fd76d44e 100644 --- a/consensus/clique/clique.go +++ b/consensus/clique/clique.go @@ -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) { // set block reward // FIXME: unit Ether could be too plump - if c.HookReward != nil { - if error := c.HookReward(chain, state, header); error != nil { - return nil, error + number := header.Number.Uint64() + rCheckpoint := chain.Config().Clique.RewardCheckpoint + + if c.HookReward != nil && number%rCheckpoint == 0 { + if err := c.HookReward(chain, state, header); err != nil { + return nil, err + } } diff --git a/eth/backend.go b/eth/backend.go index 019e7fb7c9..a10979d08c 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -195,6 +195,9 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { Reward float64 `json:"reward"` } + number := header.Number.Uint64() + rCheckpoint := chain.Config().Clique.RewardCheckpoint + // Call to smart contract signer. config := ctx.GetConfig() client, err := ethclient.Dial(config.IPCEndpoint()) @@ -208,12 +211,11 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) { } opts := new(bind.CallOpts) - number := header.Number.Uint64() - rCheckpoint := chain.Config().Clique.RewardCheckpoint + prevCheckpoint := number - rCheckpoint - if number > 0 && prevCheckpoint > 0 && number%rCheckpoint == 0 { - // Not reward for singer of genesis block and only calculate reward at checkpoint block. + if number > 0 && prevCheckpoint > 0 { + // Not reward for singer of genesis block and only calculate reward at checkpoint block. startBlockNumber := number - (rCheckpoint * 2) + 1 endBlockNumber := startBlockNumber + rCheckpoint - 2 signers := make(map[common.Address]*rewardLog)