mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-10-14 00:59:33 +00:00
[NOD-1549] Properly handle errors in unorphanBlock (#1107)
* [NOD-1549] In AddBlock, simply log RuleErrors. * [NOD-1549] Properly handle errors in unorphanBlock.
This commit is contained in:
parent
3f92ddd827
commit
75d21d39cc
@ -2,6 +2,8 @@ package flowcontext
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/kaspanet/kaspad/app/protocol/blocklogger"
|
"github.com/kaspanet/kaspad/app/protocol/blocklogger"
|
||||||
|
"github.com/kaspanet/kaspad/domain/consensus/ruleerrors"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
|
|
||||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||||
@ -81,6 +83,10 @@ func (f *FlowContext) SharedRequestedBlocks() *blockrelay.SharedRequestedBlocks
|
|||||||
func (f *FlowContext) AddBlock(block *externalapi.DomainBlock) error {
|
func (f *FlowContext) AddBlock(block *externalapi.DomainBlock) error {
|
||||||
err := f.Domain().Consensus().ValidateAndInsertBlock(block)
|
err := f.Domain().Consensus().ValidateAndInsertBlock(block)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.As(err, &ruleerrors.RuleError{}) {
|
||||||
|
log.Infof("Validation failed for block %s: %s", consensusserialization.BlockHash(block), err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = f.OnNewBlock(block)
|
err = f.OnNewBlock(block)
|
||||||
|
@ -2,6 +2,7 @@ package flowcontext
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
||||||
|
"github.com/kaspanet/kaspad/domain/consensus/ruleerrors"
|
||||||
"github.com/kaspanet/kaspad/domain/consensus/utils/consensusserialization"
|
"github.com/kaspanet/kaspad/domain/consensus/utils/consensusserialization"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
@ -104,12 +105,17 @@ func (f *FlowContext) unorphanBlock(orphanHash externalapi.DomainHash) error {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return errors.Errorf("attempted to unorphan a non-orphan block %s", orphanHash)
|
return errors.Errorf("attempted to unorphan a non-orphan block %s", orphanHash)
|
||||||
}
|
}
|
||||||
err := f.domain.Consensus().ValidateAndInsertBlock(orphanBlock)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
delete(f.orphans, orphanHash)
|
delete(f.orphans, orphanHash)
|
||||||
|
|
||||||
log.Debugf("Unorphaned block %s", orphanHash)
|
err := f.domain.Consensus().ValidateAndInsertBlock(orphanBlock)
|
||||||
|
if err != nil {
|
||||||
|
if errors.As(err, &ruleerrors.RuleError{}) {
|
||||||
|
log.Infof("Validation failed for orphan block %s: %s", orphanHash, err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Infof("Unorphaned block %s", orphanHash)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user