mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-22 14:56:44 +00:00

* Add TestValidateAndInsertPruningPointWithSideBlocks * Optimize infrastracture bucket paths * Update infrastracture tests * Refactor the consensus/database layer * Remove utils/dbkeys * Use consensus/database in consensus instead of infrastructure * Fix a bug in dbBucketToDatabaseBucket and MakeBucket combination Co-authored-by: Elichai Turkel <elichai.turkel@gmail.com> Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
63 lines
1.9 KiB
Go
63 lines
1.9 KiB
Go
package reachabilitymanager
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/database"
|
|
"github.com/kaspanet/kaspad/domain/consensus/model"
|
|
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
"github.com/kaspanet/kaspad/domain/consensus/utils/reachabilitydata"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
func (rt *reachabilityManager) reachabilityDataForInsertion(
|
|
blockHash *externalapi.DomainHash) (model.MutableReachabilityData, error) {
|
|
data, err := rt.reachabilityDataStore.ReachabilityData(rt.databaseContext, blockHash)
|
|
if err == nil {
|
|
return data.CloneMutable(), nil
|
|
}
|
|
|
|
if errors.Is(err, database.ErrNotFound) {
|
|
return reachabilitydata.EmptyReachabilityData(), nil
|
|
}
|
|
return nil, err
|
|
}
|
|
|
|
func (rt *reachabilityManager) futureCoveringSet(blockHash *externalapi.DomainHash) (model.FutureCoveringTreeNodeSet, error) {
|
|
data, err := rt.reachabilityDataStore.ReachabilityData(rt.databaseContext, blockHash)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return data.FutureCoveringSet(), nil
|
|
}
|
|
|
|
func (rt *reachabilityManager) interval(blockHash *externalapi.DomainHash) (*model.ReachabilityInterval, error) {
|
|
data, err := rt.reachabilityDataStore.ReachabilityData(rt.databaseContext, blockHash)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return data.Interval(), nil
|
|
}
|
|
|
|
func (rt *reachabilityManager) children(blockHash *externalapi.DomainHash) ([]*externalapi.DomainHash, error) {
|
|
data, err := rt.reachabilityDataStore.ReachabilityData(rt.databaseContext, blockHash)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return data.Children(), nil
|
|
}
|
|
|
|
func (rt *reachabilityManager) parent(blockHash *externalapi.DomainHash) (*externalapi.DomainHash, error) {
|
|
data, err := rt.reachabilityDataStore.ReachabilityData(rt.databaseContext, blockHash)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return data.Parent(), nil
|
|
}
|
|
|
|
func (rt *reachabilityManager) reindexRoot() (*externalapi.DomainHash, error) {
|
|
return rt.reachabilityDataStore.ReachabilityReindexRoot(rt.databaseContext)
|
|
}
|