diff options
author | Mission Liao <mission.liao@dexon.org> | 2019-04-01 12:25:09 +0800 |
---|---|---|
committer | Jimmy Hu <jimmy.hu@dexon.org> | 2019-04-01 12:25:09 +0800 |
commit | ecc5e12b1ac4826e302607769f5b831ab4c27046 (patch) | |
tree | e01fbf5d796c555f1d343e14023c282ad83bcba8 /core/test/governance.go | |
parent | 46f00c345dc0993cf888523e482ae0ff385c4391 (diff) | |
download | dexon-consensus-ecc5e12b1ac4826e302607769f5b831ab4c27046.tar dexon-consensus-ecc5e12b1ac4826e302607769f5b831ab4c27046.tar.gz dexon-consensus-ecc5e12b1ac4826e302607769f5b831ab4c27046.tar.bz2 dexon-consensus-ecc5e12b1ac4826e302607769f5b831ab4c27046.tar.lz dexon-consensus-ecc5e12b1ac4826e302607769f5b831ab4c27046.tar.xz dexon-consensus-ecc5e12b1ac4826e302607769f5b831ab4c27046.tar.zst dexon-consensus-ecc5e12b1ac4826e302607769f5b831ab4c27046.zip |
core: clean TODOs (#539)
* core: fix block timestamp (#529)
* Remove TODO
dMoment is still required when the block timestamp of
the genesis block is still need to be verified.
* Refine timestamp when preparing blocks
* Add timestamp checking in sanity check
* Revert code to patch position when preparing
* Remove TODOs that seems meaningless now
* Remove TODOs related to refactoring
* core: remove finalization (#531)
- Remove types.FinalizationResult, randomness
field would be moved to `types.Block` directly.
- Add a placeholder for types.Block.Randomness
field for blocks proposed from
round < DKGDelayRound. (refer to core.NoRand)
- Make the height of the genesis block starts
from 1. (refer to types.GenesisHeight)
- The fullnode's behavior of
core.Governance.GetRoundHeight is (assume
round-length is 100):
- round: 0 -> 0 (we need to workaround this)
- round: 1 -> 101
- round: 2 -> 201
- test.Governance already simulate this
behavior, and the workaround is wrapped at
utils.GetRoundHeight.
* core: fix issues (#536)
fixing code in these condition:
- assigning position without initializing them
and expected it's for genesis
- compare height with 0
Diffstat (limited to 'core/test/governance.go')
-rw-r--r-- | core/test/governance.go | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/core/test/governance.go b/core/test/governance.go index 4ee20d8..14b7838 100644 --- a/core/test/governance.go +++ b/core/test/governance.go @@ -56,7 +56,7 @@ func NewGovernance(state *State, roundShift uint64) (g *Governance, err error) { pendingConfigChanges: make(map[uint64]map[StateChangeType]interface{}), stateModule: state, prohibitedTypes: make(map[StateChangeType]struct{}), - roundBeginHeights: []uint64{0}, + roundBeginHeights: []uint64{types.GenesisHeight}, } return } @@ -94,6 +94,8 @@ func (g *Governance) Configuration(round uint64) *types.Config { // GetRoundHeight returns the begin height of a round. func (g *Governance) GetRoundHeight(round uint64) uint64 { + // This is a workaround to fit fullnode's behavior, their 0 is reserved for + // a genesis block unseen to core. if round == 0 { return 0 } @@ -103,8 +105,7 @@ func (g *Governance) GetRoundHeight(round uint64) uint64 { panic(fmt.Errorf("round begin height is not ready: %d %d", round, len(g.roundBeginHeights))) } - // TODO(jimmy): remove this workaround. - return g.roundBeginHeights[round] + 1 + return g.roundBeginHeights[round] } // CRS returns the CRS for a given round. @@ -342,7 +343,7 @@ func (g *Governance) CatchUpWithRound(round uint64) { // begin height of round 0 and round 1 should be ready, they won't be // afected by DKG reset mechanism. g.roundBeginHeights = append(g.roundBeginHeights, - g.configs[0].RoundLength) + g.configs[0].RoundLength+g.roundBeginHeights[0]) } } |