aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBojie Wu <bojie@dexon.org>2018-10-14 11:54:17 +0800
committerWei-Ning Huang <w@dexon.org>2019-03-12 12:19:09 +0800
commitdd691835a779329303e1a4b4aea744d9f1a0f18e (patch)
tree1591c6ae73451a01731cc99c665f82461af036b6
parent6161c027582c5adde9df18cd96290ee651324dc0 (diff)
downloaddexon-dd691835a779329303e1a4b4aea744d9f1a0f18e.tar
dexon-dd691835a779329303e1a4b4aea744d9f1a0f18e.tar.gz
dexon-dd691835a779329303e1a4b4aea744d9f1a0f18e.tar.bz2
dexon-dd691835a779329303e1a4b4aea744d9f1a0f18e.tar.lz
dexon-dd691835a779329303e1a4b4aea744d9f1a0f18e.tar.xz
dexon-dd691835a779329303e1a4b4aea744d9f1a0f18e.tar.zst
dexon-dd691835a779329303e1a4b4aea744d9f1a0f18e.zip
app: calculate block reward according to chain num
-rw-r--r--consensus/dexcon/dexcon.go5
-rw-r--r--params/config.go23
2 files changed, 14 insertions, 14 deletions
diff --git a/consensus/dexcon/dexcon.go b/consensus/dexcon/dexcon.go
index 919e920dc..c3d42d599 100644
--- a/consensus/dexcon/dexcon.go
+++ b/consensus/dexcon/dexcon.go
@@ -27,8 +27,6 @@ import (
"github.com/dexon-foundation/dexon/rpc"
)
-var blockReward = big.NewInt(5e+18)
-
// Config is the configuration for DEXON consensus.
type Config struct {
}
@@ -101,7 +99,8 @@ func (d *Dexcon) Prepare(chain consensus.ChainReader, header *types.Header) erro
// Finalize implements consensus.Engine, ensuring no uncles are set, nor block
// rewards given, and returns the final block.
func (d *Dexcon) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
- state.AddBalance(header.Coinbase, blockReward)
+ reward := new(big.Int).Div(d.config.MiningReward, new(big.Int).SetUint64(uint64(d.config.NumChains)))
+ state.AddBalance(header.Coinbase, reward)
header.Root = state.IntermediateRoot(chain.Config().IsEIP158(header.Number))
return types.NewBlock(header, txs, uncles, receipts), nil
diff --git a/params/config.go b/params/config.go
index b2f70c6ab..500a44e29 100644
--- a/params/config.go
+++ b/params/config.go
@@ -218,17 +218,18 @@ func (c *CliqueConfig) String() string {
// DexconConfig is the consensus engine configs for DEXON consensus.
type DexconConfig struct {
- GenesisCRSText string `json:"genesisCRSText"`
- NumChains uint32 `json:"numChains"`
- LambdaBA uint64 `json:"lambdaBA"`
- LambdaDKG uint64 `json:"lambdaDKG"`
- K int `json:"k"`
- PhiRatio float32 `json:"phiRatio"`
- NotarySetSize uint32 `json:"notarySetSize"`
- DKGSetSize uint32 `json:"dkgSetSize"`
- RoundInterval uint64 `json:"roundInterval"`
- MinBlockInterval uint64 `json:"minBlockInterval"`
- MaxBlockInterval uint64 `json:"maxBlockInterval"`
+ GenesisCRSText string `json:"genesisCRSText"`
+ NumChains uint32 `json:"numChains"`
+ LambdaBA uint64 `json:"lambdaBA"`
+ LambdaDKG uint64 `json:"lambdaDKG"`
+ K int `json:"k"`
+ PhiRatio float32 `json:"phiRatio"`
+ NotarySetSize uint32 `json:"notarySetSize"`
+ DKGSetSize uint32 `json:"dkgSetSize"`
+ RoundInterval uint64 `json:"roundInterval"`
+ MinBlockInterval uint64 `json:"minBlockInterval"`
+ MaxBlockInterval uint64 `json:"maxBlockInterval"`
+ MiningReward *big.Int `json:"miningReward"`
}
// String implements the stringer interface, returning the consensus engine details.