aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJimmy Hu <jimmy.hu@dexon.org>2018-10-15 11:17:59 +0800
committerWei-Ning Huang <aitjcize@gmail.com>2018-10-15 11:17:59 +0800
commit52d490fa7e6b108f71ffb8937554141d5c668ff1 (patch)
tree832567efb84766fafe67c2f83dd24e6c20e8a746 /core
parentc59b65f22bcd61b10c654ee784d6b8bef9fd3bca (diff)
downloaddexon-consensus-52d490fa7e6b108f71ffb8937554141d5c668ff1.tar
dexon-consensus-52d490fa7e6b108f71ffb8937554141d5c668ff1.tar.gz
dexon-consensus-52d490fa7e6b108f71ffb8937554141d5c668ff1.tar.bz2
dexon-consensus-52d490fa7e6b108f71ffb8937554141d5c668ff1.tar.lz
dexon-consensus-52d490fa7e6b108f71ffb8937554141d5c668ff1.tar.xz
dexon-consensus-52d490fa7e6b108f71ffb8937554141d5c668ff1.tar.zst
dexon-consensus-52d490fa7e6b108f71ffb8937554141d5c668ff1.zip
core: fix simulation error (#201)
* Sync dMoment for all consensus core * App check for randomness ignore round 0
Diffstat (limited to 'core')
-rw-r--r--core/consensus.go4
-rw-r--r--core/consensus_test.go17
2 files changed, 13 insertions, 8 deletions
diff --git a/core/consensus.go b/core/consensus.go
index b5cb445..52c896e 100644
--- a/core/consensus.go
+++ b/core/consensus.go
@@ -225,6 +225,7 @@ type Consensus struct {
// NewConsensus construct an Consensus instance.
func NewConsensus(
+ dMoment time.Time,
app Application,
gov Governance,
db blockdb.BlockDatabase,
@@ -233,8 +234,7 @@ func NewConsensus(
// TODO(w): load latest blockHeight from DB, and use config at that height.
var (
- round uint64
- dMoment = time.Now().UTC()
+ round uint64
)
config := gov.Configuration(round)
nodeSetCache := NewNodeSetCache(gov)
diff --git a/core/consensus_test.go b/core/consensus_test.go
index 1b03321..8af7a9b 100644
--- a/core/consensus_test.go
+++ b/core/consensus_test.go
@@ -145,12 +145,14 @@ func (s *ConsensusTestSuite) prepareGenesisBlock(
}
func (s *ConsensusTestSuite) prepareConsensus(
- gov *test.Governance, prvKey crypto.PrivateKey) (*test.App, *Consensus) {
+ dMoment time.Time, gov *test.Governance, prvKey crypto.PrivateKey) (
+ *test.App, *Consensus) {
app := test.NewApp()
db, err := blockdb.NewMemBackedBlockDB()
s.Require().Nil(err)
- con := NewConsensus(app, gov, db, s.conn.join(prvKey.PublicKey()), prvKey)
+ con := NewConsensus(dMoment, app, gov, db,
+ s.conn.join(prvKey.PublicKey()), prvKey)
return app, con
}
@@ -181,9 +183,10 @@ func (s *ConsensusTestSuite) TestSimpleDeliverBlock() {
app *test.App
con *Consensus
}{}
+ dMoment := time.Now().UTC()
for _, key := range prvKeys {
nID := types.NewNodeID(key.PublicKey())
- app, con := s.prepareConsensus(gov, key)
+ app, con := s.prepareConsensus(dMoment, gov, key)
objs[nID] = &struct {
app *test.App
con *Consensus
@@ -393,10 +396,11 @@ func (s *ConsensusTestSuite) TestPrepareBlock() {
prvKeys = gov.PrivateKeys()
)
s.Require().Nil(err)
+ dMoment := time.Now().UTC()
// Setup core.Consensus and test.App.
cons := map[types.NodeID]*Consensus{}
for _, key := range prvKeys {
- _, con := s.prepareConsensus(gov, key)
+ _, con := s.prepareConsensus(dMoment, gov, key)
nID := types.NewNodeID(key.PublicKey())
cons[nID] = con
nodes = append(nodes, nID)
@@ -432,7 +436,7 @@ func (s *ConsensusTestSuite) TestPrepareGenesisBlock() {
gov, err := test.NewGovernance(4, time.Second)
s.Require().NoError(err)
prvKey := gov.PrivateKeys()[0]
- _, con := s.prepareConsensus(gov, prvKey)
+ _, con := s.prepareConsensus(time.Now().UTC(), gov, prvKey)
block := &types.Block{
Position: types.Position{ChainID: 0},
}
@@ -453,8 +457,9 @@ func (s *ConsensusTestSuite) TestDKGCRS() {
gov.RoundInterval = 200 * lambda * time.Millisecond
prvKeys := gov.PrivateKeys()
cons := map[types.NodeID]*Consensus{}
+ dMoment := time.Now().UTC()
for _, key := range prvKeys {
- _, con := s.prepareConsensus(gov, key)
+ _, con := s.prepareConsensus(dMoment, gov, key)
nID := types.NewNodeID(key.PublicKey())
cons[nID] = con
go con.processMsg(con.network.ReceiveChan())