diff options
author | Jimmy Hu <jimmy.hu@dexon.org> | 2019-02-22 13:14:55 +0800 |
---|---|---|
committer | Wei-Ning Huang <w@dexon.org> | 2019-03-12 12:19:09 +0800 |
commit | c9104455be030e69fd499d6df646c3e0f021a9c0 (patch) | |
tree | 729516a01483e1a8aea3356e5a9000e6c6e53e25 /consensus | |
parent | 57998d5b9eceec5967637028c51aee374a812664 (diff) | |
download | dexon-c9104455be030e69fd499d6df646c3e0f021a9c0.tar dexon-c9104455be030e69fd499d6df646c3e0f021a9c0.tar.gz dexon-c9104455be030e69fd499d6df646c3e0f021a9c0.tar.bz2 dexon-c9104455be030e69fd499d6df646c3e0f021a9c0.tar.lz dexon-c9104455be030e69fd499d6df646c3e0f021a9c0.tar.xz dexon-c9104455be030e69fd499d6df646c3e0f021a9c0.tar.zst dexon-c9104455be030e69fd499d6df646c3e0f021a9c0.zip |
core: Remove K, Phi and NumChains from Governance (#198)
* change default sync_core.sh
* vendor: sync to latest core
* core: Remove K, Phi and NumChain
Diffstat (limited to 'consensus')
-rw-r--r-- | consensus/dexcon/dexcon.go | 23 | ||||
-rw-r--r-- | consensus/dexcon/dexcon_test.go | 15 |
2 files changed, 11 insertions, 27 deletions
diff --git a/consensus/dexcon/dexcon.go b/consensus/dexcon/dexcon.go index 2e406f0b0..aff5c9c45 100644 --- a/consensus/dexcon/dexcon.go +++ b/consensus/dexcon/dexcon.go @@ -111,26 +111,17 @@ func (d *Dexcon) calculateBlockReward(round int64, state *state.StateDB) *big.In gs := d.govStateFetcer.GetGovStateHelperAtRound(uint64(round)) config := gs.Configuration() - gsCurrent := vm.GovernanceStateHelper{state} - configCurrent := gsCurrent.Configuration() - heightCurrent := gsCurrent.RoundHeight(big.NewInt(round)).Uint64() + blocksPerRound := config.RoundLength + roundInterval := new(big.Float).Mul( + big.NewFloat(float64(blocksPerRound)), + big.NewFloat(float64(config.MinBlockInterval))) - blocksPerRound := uint64(0) - - // The initial round, calculate an approximate number of round base on config. - if round == 0 || heightCurrent == 0 { - blocksPerRound = uint64(config.NumChains) * config.RoundInterval / config.MinBlockInterval - } else { - heightPrev := gsCurrent.RoundHeight(big.NewInt(round - 1)).Uint64() - blocksPerRound = heightCurrent - heightPrev - } - - // blockReard = miningVelocity * totalStaked * roundInterval / aYear / numBlocksInPrevRound + // blockReard = miningVelocity * totalStaked * roundInterval / aYear / numBlocksInCurRound numerator, _ := new(big.Float).Mul( new(big.Float).Mul( - big.NewFloat(float64(configCurrent.MiningVelocity)), + big.NewFloat(float64(config.MiningVelocity)), new(big.Float).SetInt(gs.TotalStaked())), - new(big.Float).SetInt(gs.RoundInterval())).Int(nil) + roundInterval).Int(nil) reward := new(big.Int).Div(numerator, new(big.Int).Mul( diff --git a/consensus/dexcon/dexcon_test.go b/consensus/dexcon/dexcon_test.go index 7ba1be876..65ed77cc8 100644 --- a/consensus/dexcon/dexcon_test.go +++ b/consensus/dexcon/dexcon_test.go @@ -63,8 +63,7 @@ func (d *DexconTestSuite) SetupTest() { config.NextHalvingSupply = new(big.Int).Mul(big.NewInt(1e18), big.NewInt(2.5e9)) config.LastHalvedAmount = new(big.Int).Mul(big.NewInt(1e18), big.NewInt(1.5e9)) config.MiningVelocity = 0.1875 - config.RoundInterval = 3600000 - config.NumChains = 6 + config.RoundLength = 3600 config.MinBlockInterval = 1000 d.config = config @@ -91,15 +90,9 @@ func (d *DexconTestSuite) TestBlockRewardCalculation() { d.s.IncTotalStaked(big.NewInt(1e18)) - // blockReard = miningVelocity * totalStaked * roundInterval / aYear / numBlocksInPrevRound - // 0.1875 * 1e18 * 3600 * 1000 / (86400 * 1000 * 365 * 6 * 3600) = 990930999.4926434 - d.Require().Equal(big.NewInt(990930999), consensus.calculateBlockReward(0, d.stateDB)) - - // Round 1 - d.s.PushRoundHeight(big.NewInt(4000 * 6)) - - // 0.1875 * 1e18 * 3600 * 1000 / (86400 * 1000 * 365 * 6 * 4000) = 891837899 - d.Require().Equal(big.NewInt(891837899), consensus.calculateBlockReward(1, d.stateDB)) + // blockReard = miningVelocity * totalStaked * roundInterval / aYear / numBlocksInCurRound + // 0.1875 * 1e18 * 3600 * 1000 / (86400 * 1000 * 365 * 3600) = 5945585996.96 + d.Require().Equal(big.NewInt(5945585996), consensus.calculateBlockReward(0, d.stateDB)) } func TestDexcon(t *testing.T) { |