Skip to content

Commit

Permalink
Block 350k mandatory update
Browse files Browse the repository at this point in the history
EVEYONE NEEDS TO BE UP TO DATE BY BLOCK 350,000k
  • Loading branch information
riddlez666 committed May 16, 2018
1 parent bad03ad commit 377acbc
Show file tree
Hide file tree
Showing 2 changed files with 207 additions and 11 deletions.
214 changes: 205 additions & 9 deletions consensus/ethash/consensus.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,20 @@ var (
egemRewardSwitchBlockEra4 *big.Int = big.NewInt(10000000) // 10M block transtiton
egemRewardSwitchBlockEra5 *big.Int = big.NewInt(12500000) // 12.5M block transtiton
egemRewardSwitchBlockEra6 *big.Int = big.NewInt(15000000) // 15M block transtiton
devFund0 = common.HexToAddress("0x3fa6576610cac6c68e88ee68de07b104c9524fda") //ri
devFund1 = common.HexToAddress("0xfc0f0a5F06cB00c9EB435127142ac79ac6F48B94") //oz
devFund2 = common.HexToAddress("0x0666bf13ab1902de7dee4f8193c819118d7e21a6") //os
devFund3 = common.HexToAddress("0xcEf0890408b4FC0DC025c8F581c77383529D38B6") //ja
devFund0 = common.HexToAddress("0x3fa6576610cac6c68e88ee68de07b104c9524fda") // invalid as of block 350k
devFund1 = common.HexToAddress("0xfc0f0a5F06cB00c9EB435127142ac79ac6F48B94") // invalid as of block 350k
devFund2 = common.HexToAddress("0x0666bf13ab1902de7dee4f8193c819118d7e21a6") // invalid as of block 350k
devFund3 = common.HexToAddress("0xcEf0890408b4FC0DC025c8F581c77383529D38B6") // invalid as of block 350k
)

// Fork Variables
// Moves funds to multisigs.
var (
egemSwitchBlock *big.Int = big.NewInt(350000) // 350k block transtiton
devFund0F = common.HexToAddress("0x1140e31A4A7ae014E55f6c235af027C5CFABCA17") // riddlez
devFund1F = common.HexToAddress("0x63e9ceFD428D37430205c0ab8fa2a34A21F911Ac") // beast/tbates
devFund2F = common.HexToAddress("0x2025ed239a8dec4de0034a252d5c5e385b73fcd0") // osoese
devFund3F = common.HexToAddress("0xe485aA04bb231f331B85BF64614737c6495CC4b3") // jal
)

// Various error messages to mark blocks invalid. These should be private to
Expand Down Expand Up @@ -431,12 +441,25 @@ func (ethash *Ethash) Prepare(chain consensus.ChainReader, header *types.Header)
// Finalize implements consensus.Engine, accumulating the block and uncle rewards,
// setting the final state and assembling the block.
func (ethash *Ethash) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
// Accumulate any block and uncle rewards and commit the final state root
accumulateRewards(chain.Config(), state, header, uncles)
header.Root = state.IntermediateRoot(chain.Config().IsEIP158(header.Number))
if (header.Number.Cmp(egemSwitchBlock) == 1) {

// Accumulate any block and uncle rewards and commit the final state root
accumulateRewards2(chain.Config(), state, header, uncles)
header.Root = state.IntermediateRoot(chain.Config().IsEIP158(header.Number))

// Header seems complete, assemble into a block and return
return types.NewBlock(header, txs, uncles, receipts), nil

// Header seems complete, assemble into a block and return
return types.NewBlock(header, txs, uncles, receipts), nil
} else {

// Accumulate any block and uncle rewards and commit the final state root
accumulateRewards(chain.Config(), state, header, uncles)
header.Root = state.IntermediateRoot(chain.Config().IsEIP158(header.Number))

// Header seems complete, assemble into a block and return
return types.NewBlock(header, txs, uncles, receipts), nil

}
}

// Some weird constants to avoid constant memory allocs for them.
Expand Down Expand Up @@ -617,3 +640,176 @@ func accumulateRewards(config *params.ChainConfig, state *state.StateDB, header
}

}

// AccumulateRewards credits the coinbase of the given block with the mining
// reward. The total reward consists of the static block reward and rewards for
// included uncles. The coinbase of each uncle block is also rewarded.
func accumulateRewards2(config *params.ChainConfig, state *state.StateDB, header *types.Header, uncles []*types.Header) {

// Select the correct block reward based on chain progression
block0Reward := egem0BlockReward
block1Reward := egem1BlockReward
block2Reward := egem2BlockReward
block3Reward := egem3BlockReward
block4Reward := egem4BlockReward
block5Reward := egem5BlockReward
block6Reward := egem6BlockReward
d0Reward := egem0DevReward
d1Reward := egem1DevReward
d2Reward := egem2DevReward
d3Reward := egem3DevReward
d4Reward := egem4DevReward
d5Reward := egem5DevReward
d6Reward := egem6DevReward

// Accumulate the rewards for the miner and any included uncles
if (header.Number.Cmp(egemRewardSwitchBlockEra6) == 1) {
reward := new(big.Int).Set(block6Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.", "|", "Dev Block Fee:", d6Reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
state.AddBalance(devFund0F, d6Reward)
state.AddBalance(devFund1F, d6Reward)
state.AddBalance(devFund2F, d6Reward)
state.AddBalance(devFund3F, d6Reward)

} else if (header.Number.Cmp(egemRewardSwitchBlockEra5) == 1) {
reward := new(big.Int).Set(block5Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.", "|", "Dev Block Fee:", d5Reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
state.AddBalance(devFund0F, d5Reward)
state.AddBalance(devFund1F, d5Reward)
state.AddBalance(devFund2F, d5Reward)
state.AddBalance(devFund3F, d5Reward)

} else if (header.Number.Cmp(egemRewardSwitchBlockEra4) == 1) {
reward := new(big.Int).Set(block4Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.", "|", "Dev Block Fee:", d4Reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
state.AddBalance(devFund0F, d4Reward)
state.AddBalance(devFund1F, d4Reward)
state.AddBalance(devFund2F, d4Reward)
state.AddBalance(devFund3F, d4Reward)

} else if (header.Number.Cmp(egemRewardSwitchBlockEra3) == 1) {
reward := new(big.Int).Set(block3Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.", "|", "Dev Block Fee:", d3Reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
state.AddBalance(devFund0F, d3Reward)
state.AddBalance(devFund1F, d3Reward)
state.AddBalance(devFund2F, d3Reward)
state.AddBalance(devFund3F, d3Reward)

} else if (header.Number.Cmp(egemRewardSwitchBlockEra2) == 1) {
reward := new(big.Int).Set(block2Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.", "|", "Dev Block Fee:", d2Reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
state.AddBalance(devFund0F, d2Reward)
state.AddBalance(devFund1F, d2Reward)
state.AddBalance(devFund2F, d2Reward)
state.AddBalance(devFund3F, d2Reward)

} else if (header.Number.Cmp(egemRewardSwitchBlockEra1) == 1) {
reward := new(big.Int).Set(block1Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.", "|", "Dev Block Fee:", d1Reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
state.AddBalance(devFund0F, d1Reward)
state.AddBalance(devFund1F, d1Reward)
state.AddBalance(devFund2F, d1Reward)
state.AddBalance(devFund3F, d1Reward)

} else if (header.Number.Cmp(egemRewardSwitchBlockEra0) == 1) {
reward := new(big.Int).Set(block0Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.", "|", "Dev Block Fee:", d0Reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
state.AddBalance(devFund0F, d0Reward)
state.AddBalance(devFund1F, d0Reward)
state.AddBalance(devFund2F, d0Reward)
state.AddBalance(devFund3F, d0Reward)

} else {
reward := new(big.Int).Set(block0Reward)
r := new(big.Int)
for _, uncle := range uncles {
r.Add(uncle.Number, big8)
r.Sub(r, header.Number)
r.Mul(r, reward)
r.Div(r, big8)

r.Div(reward, big32)
reward.Add(reward, r)
}
//fmt.Println("Miner Block Reward:", reward, "in Wei.")
state.AddBalance(header.Coinbase, reward)
}

}
4 changes: 2 additions & 2 deletions params/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import (
const (
VersionMajor = 1 // Major version component of the current release
VersionMinor = 0 // Minor version component of the current release
VersionPatch = 2 // Patch version component of the current release
VersionMeta = "charis" // Version metadata to append to the version string
VersionPatch = 3 // Patch version component of the current release
VersionMeta = "syrius" // Version metadata to append to the version string
)

// Version holds the textual version string.
Expand Down

0 comments on commit 377acbc

Please sign in to comment.