mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-28 09:46:50 +00:00

* [NOD-1422] Implement GHOSTDAG * [NOD-1422] Rename bluest->findSelectedParent * [NOD-1422] Remove preallocations from MergeSetBlues and add preallocation in candidateBluesAnticoneSizes * [NOD-1422] Rename blockghostdagdata.go to ghostdag.go
37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
package ghostdagmanager
|
|
|
|
import (
|
|
"github.com/kaspanet/kaspad/domain/consensus/database"
|
|
"github.com/kaspanet/kaspad/domain/consensus/model"
|
|
"github.com/kaspanet/kaspad/infrastructure/db/dbaccess"
|
|
)
|
|
|
|
// GHOSTDAGManager resolves and manages GHOSTDAG block data
|
|
type GHOSTDAGManager struct {
|
|
databaseContext *database.DomainDBContext
|
|
dagTopologyManager model.DAGTopologyManager
|
|
ghostdagDataStore model.GHOSTDAGDataStore
|
|
k model.KType
|
|
}
|
|
|
|
// New instantiates a new GHOSTDAGManager
|
|
func New(
|
|
databaseContext *dbaccess.DatabaseContext,
|
|
dagTopologyManager model.DAGTopologyManager,
|
|
ghostdagDataStore model.GHOSTDAGDataStore,
|
|
k model.KType) *GHOSTDAGManager {
|
|
|
|
return &GHOSTDAGManager{
|
|
databaseContext: database.NewDomainDBContext(databaseContext),
|
|
dagTopologyManager: dagTopologyManager,
|
|
ghostdagDataStore: ghostdagDataStore,
|
|
k: k,
|
|
}
|
|
}
|
|
|
|
// BlockData returns previously calculated GHOSTDAG data for
|
|
// the given blockHash
|
|
func (gm *GHOSTDAGManager) BlockData(blockHash *model.DomainHash) *model.BlockGHOSTDAGData {
|
|
return gm.ghostdagDataStore.Get(gm.databaseContext, blockHash)
|
|
}
|