diff --git a/cmd/nknd/commands/root.go b/cmd/nknd/commands/root.go index 912b41d2..e70de6df 100644 --- a/cmd/nknd/commands/root.go +++ b/cmd/nknd/commands/root.go @@ -47,7 +47,7 @@ import ( ) const ( - NetVersionNum = 33 // This will be removed later + NetVersionNum = 34 // This will be removed later ) // rootCmd represents the base command when called without any subcommands @@ -368,6 +368,20 @@ func InitLedger(account *vault.Account) error { Store: store, } + currentHeight := chain.DefaultLedger.Store.GetHeight() + if currentHeight > uint32(config.MinVerifiableHeightResetHeight) && time.Now().Before(config.MinVerifiableHeightResetTime) { + for height := currentHeight; height > uint32(config.MinVerifiableHeightResetHeight); height-- { + block, err := chain.DefaultLedger.Store.GetBlockByHeight(height) + if err != nil { + log.Fatalf("get block at height %d error: %v", height, err) + } + err = chain.DefaultLedger.Store.Rollback(block) + if err != nil { + log.Fatalf("ledger rollback error: %v", err) + } + } + } + return nil } diff --git a/config/config.go b/config/config.go index 70378140..f385719c 100644 --- a/config/config.go +++ b/config/config.go @@ -241,8 +241,8 @@ var ( // use these config for network restart MinVerifiableHeightResetHeight = 8843191 - MinVerifiableHeightResetTime = time.Unix(1767758400, 0) - ProposingStartTime = time.Unix(1767758400, 0) + MinVerifiableHeightResetTime = time.Unix(1767794400, 0) + ProposingStartTime = time.Unix(1767794400, 0) ) var ( diff --git a/consensus/state.go b/consensus/state.go index d7b05d77..bc71ba7c 100644 --- a/consensus/state.go +++ b/consensus/state.go @@ -25,6 +25,7 @@ func (consensus *Consensus) startGettingNeighborConsensusState() { go func() { time.Sleep(time.Until(config.MinVerifiableHeightResetTime)) if chain.DefaultLedger.Store.GetHeight() == uint32(config.MinVerifiableHeightResetHeight) { + consensus.setNextConsensusHeight(uint32(config.MinVerifiableHeightResetHeight + 1)) consensus.localNode.SetMinVerifiableHeight(uint32(config.MinVerifiableHeightResetHeight + 1)) consensus.localNode.SetSyncState(pb.SyncState_PERSIST_FINISHED) } diff --git a/lnode/message.go b/lnode/message.go index 8dc00262..f9a38809 100644 --- a/lnode/message.go +++ b/lnode/message.go @@ -69,7 +69,7 @@ func (localNode *LocalNode) remoteMessageRouted(remoteMessage *nnetnode.RemoteMe msgBody := &pbmsg.Bytes{} err = proto.Unmarshal(remoteMessage.Msg.Message, msgBody) if err != nil { - log.Errorf("Error unmarshal byte msg: %v", err) + log.Debugf("Error unmarshal byte msg: %v", err) return nil, nil, nil, false } @@ -77,50 +77,50 @@ func (localNode *LocalNode) remoteMessageRouted(remoteMessage *nnetnode.RemoteMe unsignedMsg := &pb.UnsignedMessage{} err = proto.Unmarshal(msgBody.Data, signedMsg) if err != nil { - log.Errorf("Error unmarshal byte msg data: %v", err) + log.Debugf("Error unmarshal byte msg data: %v", err) return nil, nil, nil, false } err = proto.Unmarshal(signedMsg.Message, unsignedMsg) if err != nil { - log.Errorf("Error unmarshal signed unsigned msg: %v", err) + log.Debugf("Error unmarshal signed unsigned msg: %v", err) return nil, nil, nil, false } err = checkMessageType(unsignedMsg.MessageType) if err != nil { - log.Errorf("Error checking message type: %v", err) + log.Debugf("Error checking message type: %v", err) return nil, nil, nil, false } err = checkMessageSigned(unsignedMsg.MessageType, len(signedMsg.Signature) > 0) if err != nil { - log.Errorf("Error checking signed: %v", err) + log.Debugf("Error checking signed: %v", err) return nil, nil, nil, false } err = checkMessageRoutingType(unsignedMsg.MessageType, remoteMessage.Msg.RoutingType) if err != nil { - log.Errorf("Error checking routing type: %v", err) + log.Debugf("Error checking routing type: %v", err) return nil, nil, nil, false } if len(signedMsg.Signature) > 0 { if remoteMessage.Msg.RoutingType != pbmsg.RoutingType_DIRECT { - log.Errorf("Signature is only allowed on direct message") + log.Debugf("Signature is only allowed on direct message") return nil, nil, nil, false } pubKey := senderNode.GetPubKey() if pubKey == nil { - log.Errorf("Neighbor public key is nil") + log.Debugf("Neighbor public key is nil") return nil, nil, nil, false } hash := sha256.Sum256(signedMsg.Message) err = crypto.Verify(pubKey, hash[:], signedMsg.Signature) if err != nil { - log.Errorf("Verify signature error: %v", err) + log.Debugf("Verify signature error: %v", err) return nil, nil, nil, false } }