forked from TrueCloudLab/neoneo-go
Merge pull request #1549 from nspcc-dev/core/fix_committee_update
core: update committee every [committee length] blocks
This commit is contained in:
commit
7044e9be40
2 changed files with 22 additions and 21 deletions
|
@ -121,7 +121,7 @@ func TestService_NextConsensus(t *testing.T) {
|
|||
require.Equal(t, h, hdr.NextConsensus)
|
||||
}
|
||||
|
||||
t.Run("vote 1 block before update", func(t *testing.T) {
|
||||
t.Run("vote 1 block before update", func(t *testing.T) { // voting occurs every block in SingleTestChain
|
||||
srv, acc := initServiceNextConsensus(t, newAcc, 1)
|
||||
bc := srv.Chain.(*core.Blockchain)
|
||||
defer bc.Close()
|
||||
|
@ -135,27 +135,28 @@ func TestService_NextConsensus(t *testing.T) {
|
|||
srv.dbft.OnTimeout(timer.HV{Height: srv.dbft.BlockIndex})
|
||||
checkNextConsensus(t, bc, height+1, hash.Hash160(script))
|
||||
})
|
||||
/*
|
||||
t.Run("vote 2 blocks before update", func(t *testing.T) {
|
||||
srv, acc := initServiceNextConsensus(t, newAcc, 2)
|
||||
bc := srv.Chain.(*core.Blockchain)
|
||||
defer bc.Close()
|
||||
|
||||
t.Run("vote 2 blocks before update", func(t *testing.T) {
|
||||
srv, acc := initServiceNextConsensus(t, newAcc, 2)
|
||||
bc := srv.Chain.(*core.Blockchain)
|
||||
defer bc.Close()
|
||||
height := bc.BlockHeight()
|
||||
checkNextConsensus(t, bc, height, acc.Contract.ScriptHash())
|
||||
// Reset <- we are here
|
||||
// OnPersist <- nothing to do
|
||||
// Block <-
|
||||
//
|
||||
// Reset <- update next consensus
|
||||
// OnPersist <- update committee
|
||||
// Block <-
|
||||
srv.dbft.OnTimeout(timer.HV{Height: srv.dbft.BlockIndex})
|
||||
checkNextConsensus(t, bc, height+1, acc.Contract.ScriptHash())
|
||||
|
||||
height := bc.BlockHeight()
|
||||
checkNextConsensus(t, bc, height, acc.Contract.ScriptHash())
|
||||
// Reset <- we are here
|
||||
// OnPersist <- nothing to do
|
||||
// Block <-
|
||||
//
|
||||
// Reset <- update next consensus
|
||||
// OnPersist <- update committee
|
||||
// Block <-
|
||||
srv.dbft.OnTimeout(timer.HV{Height: srv.dbft.BlockIndex})
|
||||
checkNextConsensus(t, bc, height+1, acc.Contract.ScriptHash())
|
||||
|
||||
srv.dbft.OnTimeout(timer.HV{Height: srv.dbft.BlockIndex})
|
||||
checkNextConsensus(t, bc, height+2, hash.Hash160(script))
|
||||
})
|
||||
srv.dbft.OnTimeout(timer.HV{Height: srv.dbft.BlockIndex})
|
||||
checkNextConsensus(t, bc, height+2, hash.Hash160(script))
|
||||
})
|
||||
*/
|
||||
}
|
||||
|
||||
func TestService_GetVerified(t *testing.T) {
|
||||
|
|
|
@ -273,7 +273,7 @@ func (n *NEO) updateCommittee(ic *interop.Context) error {
|
|||
// ShouldUpdateCommittee returns true if committee is updated at block h.
|
||||
func ShouldUpdateCommittee(h uint32, bc blockchainer.Blockchainer) bool {
|
||||
cfg := bc.GetConfig()
|
||||
r := cfg.ValidatorsCount + len(cfg.StandbyCommittee)
|
||||
r := len(cfg.StandbyCommittee)
|
||||
return h%uint32(r) == 0
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue