diff --git a/app/protocol/flows/v5/blockrelay/ibd.go b/app/protocol/flows/v5/blockrelay/ibd.go index 7438c201e..8d472def8 100644 --- a/app/protocol/flows/v5/blockrelay/ibd.go +++ b/app/protocol/flows/v5/blockrelay/ibd.go @@ -285,7 +285,11 @@ func (flow *handleIBDFlow) isGenesisVirtualSelectedParent() (bool, error) { func (flow *handleIBDFlow) logIBDFinished(isFinishedSuccessfully bool, err error) { successString := "successfully" if !isFinishedSuccessfully { - successString = fmt.Sprintf("(interrupted: %s)", err) + if err != nil { + successString = fmt.Sprintf("(interrupted: %s)", err) + } else { + successString = fmt.Sprintf("(interrupted)", err) + } } log.Infof("IBD with peer %s finished %s", flow.peer, successString) } diff --git a/app/protocol/flows/v5/blockrelay/ibd_with_headers_proof.go b/app/protocol/flows/v5/blockrelay/ibd_with_headers_proof.go index 455b1c2dc..5e6adf928 100644 --- a/app/protocol/flows/v5/blockrelay/ibd_with_headers_proof.go +++ b/app/protocol/flows/v5/blockrelay/ibd_with_headers_proof.go @@ -85,7 +85,12 @@ func (flow *handleIBDFlow) shouldSyncAndShouldDownloadHeadersProof( return true, true, nil } - return false, false, nil + if !highestKnownSyncerChainHash { + log.Infof("Stopping IBD since IBD from this node will cause a finality conflict") + return false, false, nil + } + + return false, true, nil } return false, true, nil