|
|
|
@ -1,7 +1,6 @@ |
|
|
|
|
package consensus |
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
"fmt" |
|
|
|
|
"math/big" |
|
|
|
|
"time" |
|
|
|
|
|
|
|
|
@ -142,7 +141,6 @@ func (consensus *Consensus) getNextViewID() (uint64, time.Duration) { |
|
|
|
|
Uint64("stuckBlockViewID", stuckBlockViewID). |
|
|
|
|
Msg("[getNextViewID]") |
|
|
|
|
|
|
|
|
|
fmt.Println("end getNextViewID: ", nextViewID, viewChangeDuration) |
|
|
|
|
// duration is always the fixed view change duration for synchronous view change
|
|
|
|
|
return nextViewID, viewChangeDuration |
|
|
|
|
} |
|
|
|
@ -215,7 +213,6 @@ func (consensus *Consensus) getNextLeaderKey(viewID uint64) *bls.PublicKeyWrappe |
|
|
|
|
lastLeaderPubKey, |
|
|
|
|
gap) |
|
|
|
|
} |
|
|
|
|
fmt.Println("wasfoundNext", consensus.Blockchain.Config().IsAllowlistEpoch(epoch), wasFound, next.Bytes.Hex(), lastLeaderPubKey.Bytes.Hex()) |
|
|
|
|
if !wasFound { |
|
|
|
|
consensus.getLogger().Warn(). |
|
|
|
|
Str("key", consensus.LeaderPubKey.Bytes.Hex()). |
|
|
|
@ -237,7 +234,6 @@ func createTimeout() map[TimeoutType]*utils.Timeout { |
|
|
|
|
|
|
|
|
|
// startViewChange start the view change process
|
|
|
|
|
func (consensus *Consensus) startViewChange() { |
|
|
|
|
fmt.Printf("[startViewChange]: %d %s \n", utils.GetPort(), consensus.LeaderPubKey.Bytes.Hex()) |
|
|
|
|
if consensus.disableViewChange || consensus.IsBackup() { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
@ -246,7 +242,6 @@ func (consensus *Consensus) startViewChange() { |
|
|
|
|
consensus.consensusTimeout[timeoutBootstrap].Stop() |
|
|
|
|
consensus.current.SetMode(ViewChanging) |
|
|
|
|
nextViewID, duration := consensus.getNextViewID() |
|
|
|
|
//fmt.Println("startViewChange", nextViewID)
|
|
|
|
|
consensus.SetViewChangingID(nextViewID) |
|
|
|
|
// TODO: set the Leader PubKey to the next leader for view change
|
|
|
|
|
// this is dangerous as the leader change is not succeeded yet
|
|
|
|
@ -287,9 +282,7 @@ func (consensus *Consensus) startViewChange() { |
|
|
|
|
if !consensus.isValidatorInCommittee(key.Pub.Bytes) { |
|
|
|
|
continue |
|
|
|
|
} |
|
|
|
|
// Тут уже другой leader
|
|
|
|
|
msgToSend := consensus.constructViewChangeMessage(&key) |
|
|
|
|
fmt.Println("Message to send leader222: ", consensus.LeaderPubKey.Bytes.Hex()) |
|
|
|
|
if err := consensus.msgSender.SendWithRetry( |
|
|
|
|
consensus.BlockNum(), |
|
|
|
|
msg_pb.MessageType_VIEWCHANGE, |
|
|
|
|