mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-24 06:25:55 +00:00
Merge remote-tracking branch 'origin/dev' into show-serialized
This commit is contained in:
commit
d9b84f0a7c
@ -618,6 +618,12 @@ func (flow *handleIBDFlow) syncMissingBlockBodies(highHash *externalapi.DomainHa
|
|||||||
progressReporter := newIBDProgressReporter(lowBlockHeader.DAAScore(), highBlockHeader.DAAScore(), "blocks")
|
progressReporter := newIBDProgressReporter(lowBlockHeader.DAAScore(), highBlockHeader.DAAScore(), "blocks")
|
||||||
highestProcessedDAAScore := lowBlockHeader.DAAScore()
|
highestProcessedDAAScore := lowBlockHeader.DAAScore()
|
||||||
|
|
||||||
|
// If the IBD is small, we want to update the virtual after each block in order to avoid complications and possible bugs.
|
||||||
|
updateVirtual, err := flow.Domain().Consensus().IsNearlySynced()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
for offset := 0; offset < len(hashes); offset += ibdBatchSize {
|
for offset := 0; offset < len(hashes); offset += ibdBatchSize {
|
||||||
var hashesToRequest []*externalapi.DomainHash
|
var hashesToRequest []*externalapi.DomainHash
|
||||||
if offset+ibdBatchSize < len(hashes) {
|
if offset+ibdBatchSize < len(hashes) {
|
||||||
@ -654,7 +660,7 @@ func (flow *handleIBDFlow) syncMissingBlockBodies(highHash *externalapi.DomainHa
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = flow.Domain().Consensus().ValidateAndInsertBlock(block, false)
|
err = flow.Domain().Consensus().ValidateAndInsertBlock(block, updateVirtual)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if errors.Is(err, ruleerrors.ErrDuplicateBlock) {
|
if errors.Is(err, ruleerrors.ErrDuplicateBlock) {
|
||||||
log.Debugf("Skipping IBD Block %s as it has already been added to the DAG", blockHash)
|
log.Debugf("Skipping IBD Block %s as it has already been added to the DAG", blockHash)
|
||||||
@ -673,7 +679,15 @@ func (flow *handleIBDFlow) syncMissingBlockBodies(highHash *externalapi.DomainHa
|
|||||||
progressReporter.reportProgress(len(hashesToRequest), highestProcessedDAAScore)
|
progressReporter.reportProgress(len(hashesToRequest), highestProcessedDAAScore)
|
||||||
}
|
}
|
||||||
|
|
||||||
return flow.resolveVirtual(highestProcessedDAAScore)
|
// We need to resolve virtual only if it wasn't updated while syncing block bodies
|
||||||
|
if !updateVirtual {
|
||||||
|
err := flow.resolveVirtual(highestProcessedDAAScore)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return flow.OnNewBlockTemplate()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (flow *handleIBDFlow) banIfBlockIsHeaderOnly(block *externalapi.DomainBlock) error {
|
func (flow *handleIBDFlow) banIfBlockIsHeaderOnly(block *externalapi.DomainBlock) error {
|
||||||
@ -705,9 +719,5 @@ func (flow *handleIBDFlow) resolveVirtual(estimatedVirtualDAAScoreTarget uint64)
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Infof("Resolved virtual")
|
log.Infof("Resolved virtual")
|
||||||
err = flow.OnNewBlockTemplate()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,7 @@ const validCharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs
|
|||||||
const (
|
const (
|
||||||
appMajor uint = 0
|
appMajor uint = 0
|
||||||
appMinor uint = 12
|
appMinor uint = 12
|
||||||
appPatch uint = 5
|
appPatch uint = 6
|
||||||
)
|
)
|
||||||
|
|
||||||
// appBuild is defined as a variable so it can be overridden during the build
|
// appBuild is defined as a variable so it can be overridden during the build
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user