diff --git a/consensus/ethash/consensus.go b/consensus/ethash/consensus.go index 59712f45d9..88df3a09f6 100644 --- a/consensus/ethash/consensus.go +++ b/consensus/ethash/consensus.go @@ -36,8 +36,8 @@ import ( // Ethash proof-of-work protocol constants. var ( - FrontierBlockReward *big.Int = big.NewInt(9000000000000000000) // Block reward in wei for successfully mining a block - ByzantiumBlockReward *big.Int = big.NewInt(3e+18) // Block reward in wei for successfully mining a block upward from Byzantium + egemBlockReward *big.Int = big.NewInt(8000000000000000000) // Block reward in wei for successfully mining a block 8 EGEM + egemDevReward *big.Int = big.NewInt(500000000000000000) // Dev reward 0.5 EGEM x 2 sent to two address maxUncles = 2 // Maximum number of uncles allowed in a single block allowedFutureBlockTime = 15 * time.Second // Max time from current time allowed for blocks, before they're considered future blocks ) @@ -428,36 +428,37 @@ func calcDifficultyHomestead(time uint64, parent *types.Header) *big.Int { // calcDifficultyFrontier is the difficulty adjustment algorithm. It returns the // difficulty that a new block should have when created at time given the parent // block's time and difficulty. The calculation uses the Frontier rules. -func calcDifficultyFrontier(time uint64, parent *types.Header) *big.Int { - diff := new(big.Int) - adjust := new(big.Int).Div(parent.Difficulty, params.DifficultyBoundDivisor) - bigTime := new(big.Int) - bigParentTime := new(big.Int) - - bigTime.SetUint64(time) - bigParentTime.Set(parent.Time) - - if bigTime.Sub(bigTime, bigParentTime).Cmp(params.DurationLimit) < 0 { - diff.Add(parent.Difficulty, adjust) - } else { - diff.Sub(parent.Difficulty, adjust) - } - if diff.Cmp(params.MinimumDifficulty) < 0 { - diff.Set(params.MinimumDifficulty) - } - - periodCount := new(big.Int).Add(parent.Number, big1) - periodCount.Div(periodCount, expDiffPeriod) - if periodCount.Cmp(big1) > 0 { - // diff = diff + 2^(periodCount - 2) - expDiff := periodCount.Sub(periodCount, big2) - expDiff.Exp(big2, expDiff, nil) - diff.Add(diff, expDiff) - diff = math.BigMax(diff, params.MinimumDifficulty) - } - return diff -} +// func calcDifficultyFrontier(time uint64, parent *types.Header) *big.Int { +// diff := new(big.Int) +// adjust := new(big.Int).Div(parent.Difficulty, params.DifficultyBoundDivisor) +// bigTime := new(big.Int) +// bigParentTime := new(big.Int) +// +// bigTime.SetUint64(time) +// bigParentTime.Set(parent.Time) +// +// if bigTime.Sub(bigTime, bigParentTime).Cmp(params.DurationLimit) < 0 { +// diff.Add(parent.Difficulty, adjust) +// } else { +// diff.Sub(parent.Difficulty, adjust) +// } +// if diff.Cmp(params.MinimumDifficulty) < 0 { +// diff.Set(params.MinimumDifficulty) +// } +// +// periodCount := new(big.Int).Add(parent.Number, big1) +// periodCount.Div(periodCount, expDiffPeriod) +// if periodCount.Cmp(big1) > 0 { +// // diff = diff + 2^(periodCount - 2) +// expDiff := periodCount.Sub(periodCount, big2) +// expDiff.Exp(big2, expDiff, nil) +// diff.Add(diff, expDiff) +// diff = math.BigMax(diff, params.MinimumDifficulty) +// } +// return diff +// } +// EGEM Difficulty Algo func calcDifficultyEGEM(time uint64, parent *types.Header) *big.Int { diff := new(big.Int) adjust := new(big.Int).Div(parent.Difficulty, big10) @@ -553,10 +554,9 @@ var ( // included uncles. The coinbase of each uncle block is also rewarded. func accumulateRewards(config *params.ChainConfig, state *state.StateDB, header *types.Header, uncles []*types.Header) { // Select the correct block reward based on chain progression - blockReward := FrontierBlockReward - if config.IsByzantium(header.Number) { - blockReward = ByzantiumBlockReward - } + blockReward := egemBlockReward + dev1Reward := egemDevReward + dev2Reward := egemDevReward // Accumulate the rewards for the miner and any included uncles reward := new(big.Int).Set(blockReward) r := new(big.Int) @@ -571,4 +571,9 @@ func accumulateRewards(config *params.ChainConfig, state *state.StateDB, header reward.Add(reward, r) } state.AddBalance(header.Coinbase, reward) + + state.AddBalance(common.HexToAddress("0xe6923aec35a0bcbaad4a045923cbd61c75eb65d8"), dev1Reward) + state.AddBalance(common.HexToAddress("0xc393659c2918a64cdfb44d463de9c747aa4ce3f7"), dev2Reward) + + }