mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-04 13:16:43 +00:00

* Refactor mergeSetIncrease to return the current BFS block to allow easier merging * Remove unneeded Heap/HashSet usages * Add new IsAnyAncestorOf to DagTopolyManager * Check if the new candidate is in the future of any existing candidate * Add comments and fix off-by-one in the mergeSetIncrease queue * Fixed DAGToplogy test mock * Fix review comments
20 lines
1.2 KiB
Go
20 lines
1.2 KiB
Go
package model
|
|
|
|
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
|
|
|
|
// DAGTopologyManager exposes methods for querying relationships
|
|
// between blocks in the DAG
|
|
type DAGTopologyManager interface {
|
|
Parents(blockHash *externalapi.DomainHash) ([]*externalapi.DomainHash, error)
|
|
Children(blockHash *externalapi.DomainHash) ([]*externalapi.DomainHash, error)
|
|
IsParentOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error)
|
|
IsChildOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error)
|
|
IsAncestorOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error)
|
|
IsAncestorOfAny(blockHash *externalapi.DomainHash, potentialDescendants []*externalapi.DomainHash) (bool, error)
|
|
IsAnyAncestorOf(potentialAncestors []*externalapi.DomainHash, blockHash *externalapi.DomainHash) (bool, error)
|
|
IsInSelectedParentChainOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error)
|
|
ChildInSelectedParentChainOf(context, highHash *externalapi.DomainHash) (*externalapi.DomainHash, error)
|
|
|
|
SetParents(blockHash *externalapi.DomainHash, parentHashes []*externalapi.DomainHash) error
|
|
}
|