[NOD-1476] Make further design changes (#965)

* [NOD-1476] Add dependency to BlockRelationStore in BlockProcessor.

* [NOD-1476] Add dependency to BlockStatusStore in BlockValidator.

* [NOD-1476] Add dependency to GHOSTDAGManager in BlockValidator.

* [NOD-1476] Rename CalculateConsensusStateChanges to AddBlockToVirtual.

* [NOD-1476] Remove RestoreDiffFromVirtual.

* [NOD-1476] Remove RestorePastUTXOSet.

* [NOD-1476] Add dependency to GHOSTDAGDataStore in ConsensusStateManager.

* [NOD-1476] Rename CalculateAcceptanceDataAndUTXOMultiset to just CalculateAcceptanceData.

* [NOD-1476] Remove UTXODiffManager and add dependencies to AcceptanceManager.

* [NOD-1476] Rename CalculateAcceptanceData to CalculateAcceptanceDataAndMultiset.

* [NOD-1476] Add dependency to DAGTopologyManager from ConsensusStateManager.

* [NOD-1476] Add dependency to BlockStore from ConsensusStateManager.

* [NOD-1476] Add dependency to PruningManager from ConsensusStateManager.

* [NOD-1476] Remove unnecessary stuff from ConsensusStateChanges.

* [NOD-1476] Add dependency to UTXODiffStore from ConsensusStateManager.

* [NOD-1476] Add tips to BlockRelationsStore.

* [NOD-1476] Add dependency to BlockRelationsStore from ConsensusStateManager.

* [NOD-1476] Remove Tips() from ConsensusStateStore.

* [NOD-1476] Remove acceptanceManager.

* [NOD-1476] Remove irrelevant functions out of ConsensusStateManager.
This commit is contained in:
stasatdaglabs 2020-10-25 15:19:20 +02:00 committed by GitHub
parent 45882343e6
commit b413760136
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 106 additions and 161 deletions

View File

@ -14,12 +14,15 @@ func New() model.BlockRelationStore {
return &blockRelationStore{} return &blockRelationStore{}
} }
// Stage stages the given blockRelationData for the given blockHash func (brs *blockRelationStore) StageBlockRelation(blockHash *externalapi.DomainHash, parentHashes []*externalapi.DomainHash) {
func (brs *blockRelationStore) Stage(blockHash *externalapi.DomainHash, parentHashes []*externalapi.DomainHash) {
panic("implement me") panic("implement me")
} }
func (brs *blockRelationStore) IsStaged() bool { func (brs *blockRelationStore) StageTips(tipHashess []*externalapi.DomainHash) {
panic("implement me")
}
func (brs *blockRelationStore) IsAnythingStaged() bool {
panic("implement me") panic("implement me")
} }
@ -31,7 +34,10 @@ func (brs *blockRelationStore) Commit(dbTx model.DBTxProxy) error {
panic("implement me") panic("implement me")
} }
// Get gets the blockRelationData associated with the given blockHash func (brs *blockRelationStore) BlockRelation(dbContext model.DBContextProxy, blockHash *externalapi.DomainHash) (*model.BlockRelations, error) {
func (brs *blockRelationStore) Get(dbContext model.DBContextProxy, blockHash *externalapi.DomainHash) (*model.BlockRelations, error) { panic("implement me")
return nil, nil }
func (brs *blockRelationStore) Tips(dbContext model.DBContextProxy) ([]*externalapi.DomainHash, error) {
panic("implement me")
} }

View File

@ -35,8 +35,3 @@ func (css *consensusStateStore) Commit(dbTx model.DBTxProxy) error {
func (css *consensusStateStore) UTXOByOutpoint(dbContext model.DBContextProxy, outpoint *externalapi.DomainOutpoint) (*externalapi.UTXOEntry, error) { func (css *consensusStateStore) UTXOByOutpoint(dbContext model.DBContextProxy, outpoint *externalapi.DomainOutpoint) (*externalapi.UTXOEntry, error) {
return nil, nil return nil, nil
} }
// Tips returns the current tips
func (css *consensusStateStore) Tips(dbContext model.DBContextProxy) ([]*externalapi.DomainHash, error) {
return nil, nil
}

View File

@ -13,7 +13,6 @@ import (
"github.com/kaspanet/kaspad/domain/consensus/datastructures/reachabilitydatastore" "github.com/kaspanet/kaspad/domain/consensus/datastructures/reachabilitydatastore"
"github.com/kaspanet/kaspad/domain/consensus/datastructures/utxodiffstore" "github.com/kaspanet/kaspad/domain/consensus/datastructures/utxodiffstore"
"github.com/kaspanet/kaspad/domain/consensus/model" "github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/processes/acceptancemanager"
"github.com/kaspanet/kaspad/domain/consensus/processes/blockprocessor" "github.com/kaspanet/kaspad/domain/consensus/processes/blockprocessor"
"github.com/kaspanet/kaspad/domain/consensus/processes/blockvalidator" "github.com/kaspanet/kaspad/domain/consensus/processes/blockvalidator"
"github.com/kaspanet/kaspad/domain/consensus/processes/consensusstatemanager" "github.com/kaspanet/kaspad/domain/consensus/processes/consensusstatemanager"
@ -25,7 +24,6 @@ import (
"github.com/kaspanet/kaspad/domain/consensus/processes/pruningmanager" "github.com/kaspanet/kaspad/domain/consensus/processes/pruningmanager"
"github.com/kaspanet/kaspad/domain/consensus/processes/reachabilitytree" "github.com/kaspanet/kaspad/domain/consensus/processes/reachabilitytree"
"github.com/kaspanet/kaspad/domain/consensus/processes/transactionvalidator" "github.com/kaspanet/kaspad/domain/consensus/processes/transactionvalidator"
"github.com/kaspanet/kaspad/domain/consensus/processes/utxodiffmanager"
"github.com/kaspanet/kaspad/domain/dagconfig" "github.com/kaspanet/kaspad/domain/dagconfig"
"github.com/kaspanet/kaspad/infrastructure/db/dbaccess" "github.com/kaspanet/kaspad/infrastructure/db/dbaccess"
) )
@ -69,23 +67,26 @@ func (f *factory) NewConsensus(dagParams *dagconfig.Params, databaseContext *dba
dagTraversalManager := dagtraversalmanager.New( dagTraversalManager := dagtraversalmanager.New(
dagTopologyManager, dagTopologyManager,
ghostdagManager) ghostdagManager)
utxoDiffManager := utxodiffmanager.New(utxoDiffStore) pruningManager := pruningmanager.New(
acceptanceManager := acceptancemanager.New(utxoDiffManager) dagTraversalManager,
dagTopologyManager,
pruningStore,
blockStatusStore,
consensusStateStore)
consensusStateManager := consensusstatemanager.New( consensusStateManager := consensusstatemanager.New(
domainDBContext, domainDBContext,
dagParams, dagParams,
ghostdagManager,
dagTopologyManager,
pruningManager,
blockStatusStore,
ghostdagDataStore,
consensusStateStore, consensusStateStore,
multisetStore, multisetStore,
blockStore, blockStore,
ghostdagManager, utxoDiffStore,
acceptanceManager, blockRelationStore,
blockStatusStore) acceptanceDataStore)
pruningManager := pruningmanager.New(
dagTraversalManager,
pruningStore,
dagTopologyManager,
blockStatusStore,
consensusStateManager)
difficultyManager := difficultymanager.New( difficultyManager := difficultymanager.New(
ghostdagManager) ghostdagManager)
pastMedianTimeManager := pastmediantimemanager.New( pastMedianTimeManager := pastmediantimemanager.New(
@ -96,8 +97,8 @@ func (f *factory) NewConsensus(dagParams *dagconfig.Params, databaseContext *dba
difficultyManager, difficultyManager,
pastMedianTimeManager, pastMedianTimeManager,
transactionValidator, transactionValidator,
utxoDiffManager, ghostdagManager,
acceptanceManager) blockStatusStore)
blockProcessor := blockprocessor.New( blockProcessor := blockprocessor.New(
dagParams, dagParams,
domainDBContext, domainDBContext,
@ -111,7 +112,8 @@ func (f *factory) NewConsensus(dagParams *dagconfig.Params, databaseContext *dba
ghostdagManager, ghostdagManager,
acceptanceDataStore, acceptanceDataStore,
blockStore, blockStore,
blockStatusStore) blockStatusStore,
blockRelationStore)
return &consensus{ return &consensus{
consensusStateManager: consensusStateManager, consensusStateManager: consensusStateManager,

View File

@ -5,11 +5,6 @@ import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
// ConsensusStateChanges represents a set of changes that need to be made // ConsensusStateChanges represents a set of changes that need to be made
// to transition the current consensus state to a new one // to transition the current consensus state to a new one
type ConsensusStateChanges struct { type ConsensusStateChanges struct {
AcceptanceData *BlockAcceptanceData VirtualUTXODiff *UTXODiff
VirtualUTXODiff *UTXODiff VirtualDiffParents []*externalapi.DomainHash
NewTips []*externalapi.DomainHash
NewBlockUTXODiff *UTXODiff
NewBlockMultiset Multiset
ParentDiffChanges *map[*externalapi.DomainHash]UTXODiff
} }

View File

@ -4,9 +4,11 @@ import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
// BlockRelationStore represents a store of BlockRelations // BlockRelationStore represents a store of BlockRelations
type BlockRelationStore interface { type BlockRelationStore interface {
Stage(blockHash *externalapi.DomainHash, parentHashes []*externalapi.DomainHash) StageBlockRelation(blockHash *externalapi.DomainHash, parentHashes []*externalapi.DomainHash)
IsStaged() bool StageTips(tipHashess []*externalapi.DomainHash)
IsAnythingStaged() bool
Discard() Discard()
Commit(dbTx DBTxProxy) error Commit(dbTx DBTxProxy) error
Get(dbContext DBContextProxy, blockHash *externalapi.DomainHash) (*BlockRelations, error) BlockRelation(dbContext DBContextProxy, blockHash *externalapi.DomainHash) (*BlockRelations, error)
Tips(dbContext DBContextProxy) ([]*externalapi.DomainHash, error)
} }

View File

@ -9,5 +9,4 @@ type ConsensusStateStore interface {
Discard() Discard()
Commit(dbTx DBTxProxy) error Commit(dbTx DBTxProxy) error
UTXOByOutpoint(dbContext DBContextProxy, outpoint *externalapi.DomainOutpoint) (*externalapi.UTXOEntry, error) UTXOByOutpoint(dbContext DBContextProxy, outpoint *externalapi.DomainOutpoint) (*externalapi.UTXOEntry, error)
Tips(dbContext DBContextProxy) ([]*externalapi.DomainHash, error)
} }

View File

@ -1,9 +0,0 @@
package model
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
// AcceptanceManager manages transaction acceptance
// and related data
type AcceptanceManager interface {
CalculateAcceptanceDataAndUTXOMultiset(blockHash *externalapi.DomainHash) error
}

View File

@ -4,8 +4,6 @@ import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
// ConsensusStateManager manages the node's consensus state // ConsensusStateManager manages the node's consensus state
type ConsensusStateManager interface { type ConsensusStateManager interface {
CalculateConsensusStateChanges(blockHash *externalapi.DomainHash) error AddBlockToVirtual(blockHash *externalapi.DomainHash) error
VirtualData() (medianTime int64, blueScore uint64, err error) VirtualData() (medianTime int64, blueScore uint64, err error)
RestorePastUTXOSet(blockHash *externalapi.DomainHash) (ReadOnlyUTXOSet, error)
RestoreDiffFromVirtual(utxoDiff *UTXODiff, virtualDiffParentHash *externalapi.DomainHash) (*UTXODiff, error)
} }

View File

@ -1,10 +0,0 @@
package model
import "github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
// UTXODiffManager provides methods to access
// and store UTXO diffs
type UTXODiffManager interface {
RestoreBlockDiffFromVirtualDiffParent(blockHash *externalapi.DomainHash) (utxoDiff *UTXODiff,
virtualDiffParentHash *externalapi.DomainHash, err error)
}

View File

@ -1,23 +0,0 @@
package acceptancemanager
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// AcceptanceManager manages transaction acceptance
// and related data
type acceptanceManager struct {
utxoDiffManager model.UTXODiffManager
}
// New instantiates a new AcceptanceManager
func New(utxoDiffManager model.UTXODiffManager) model.AcceptanceManager {
return &acceptanceManager{
utxoDiffManager: utxoDiffManager,
}
}
func (a *acceptanceManager) CalculateAcceptanceDataAndUTXOMultiset(blockHash *externalapi.DomainHash) error {
panic("implement me")
}

View File

@ -22,8 +22,9 @@ type blockProcessor struct {
ghostdagManager model.GHOSTDAGManager ghostdagManager model.GHOSTDAGManager
pastMedianTimeManager model.PastMedianTimeManager pastMedianTimeManager model.PastMedianTimeManager
acceptanceDataStore model.AcceptanceDataStore acceptanceDataStore model.AcceptanceDataStore
blockMessageStore model.BlockStore blockStore model.BlockStore
blockStatusStore model.BlockStatusStore blockStatusStore model.BlockStatusStore
blockRelationStore model.BlockRelationStore
} }
// New instantiates a new BlockProcessor // New instantiates a new BlockProcessor
@ -39,8 +40,9 @@ func New(
pastMedianTimeManager model.PastMedianTimeManager, pastMedianTimeManager model.PastMedianTimeManager,
ghostdagManager model.GHOSTDAGManager, ghostdagManager model.GHOSTDAGManager,
acceptanceDataStore model.AcceptanceDataStore, acceptanceDataStore model.AcceptanceDataStore,
blockMessageStore model.BlockStore, blockStore model.BlockStore,
blockStatusStore model.BlockStatusStore) model.BlockProcessor { blockStatusStore model.BlockStatusStore,
blockRelationStore model.BlockRelationStore) model.BlockProcessor {
return &blockProcessor{ return &blockProcessor{
dagParams: dagParams, dagParams: dagParams,
@ -55,8 +57,9 @@ func New(
consensusStateManager: consensusStateManager, consensusStateManager: consensusStateManager,
acceptanceDataStore: acceptanceDataStore, acceptanceDataStore: acceptanceDataStore,
blockMessageStore: blockMessageStore, blockStore: blockStore,
blockStatusStore: blockStatusStore, blockStatusStore: blockStatusStore,
blockRelationStore: blockRelationStore,
} }
} }

View File

@ -12,8 +12,9 @@ type blockValidator struct {
difficultyManager model.DifficultyManager difficultyManager model.DifficultyManager
pastMedianTimeManager model.PastMedianTimeManager pastMedianTimeManager model.PastMedianTimeManager
transactionValidator model.TransactionValidator transactionValidator model.TransactionValidator
utxoDiffManager model.UTXODiffManager ghostdagManager model.GHOSTDAGManager
acceptanceManager model.AcceptanceManager
blockStatusStore model.BlockStatusStore
} }
// New instantiates a new BlockValidator // New instantiates a new BlockValidator
@ -22,16 +23,17 @@ func New(
difficultyManager model.DifficultyManager, difficultyManager model.DifficultyManager,
pastMedianTimeManager model.PastMedianTimeManager, pastMedianTimeManager model.PastMedianTimeManager,
transactionValidator model.TransactionValidator, transactionValidator model.TransactionValidator,
utxoDiffManager model.UTXODiffManager, ghostdagManager model.GHOSTDAGManager,
acceptanceManager model.AcceptanceManager) model.BlockValidator { blockStatusStore model.BlockStatusStore) model.BlockValidator {
return &blockValidator{ return &blockValidator{
consensusStateManager: consensusStateManager, consensusStateManager: consensusStateManager,
difficultyManager: difficultyManager, difficultyManager: difficultyManager,
pastMedianTimeManager: pastMedianTimeManager, pastMedianTimeManager: pastMedianTimeManager,
transactionValidator: transactionValidator, transactionValidator: transactionValidator,
utxoDiffManager: utxoDiffManager, ghostdagManager: ghostdagManager,
acceptanceManager: acceptanceManager,
blockStatusStore: blockStatusStore,
} }
} }

View File

@ -9,44 +9,62 @@ import (
// consensusStateManager manages the node's consensus state // consensusStateManager manages the node's consensus state
type consensusStateManager struct { type consensusStateManager struct {
dagParams *dagconfig.Params dagParams *dagconfig.Params
databaseContext *database.DomainDBContext
databaseContext *database.DomainDBContext ghostdagManager model.GHOSTDAGManager
dagTopologyManager model.DAGTopologyManager
pruningManager model.PruningManager
blockStatusStore model.BlockStatusStore
ghostdagDataStore model.GHOSTDAGDataStore
consensusStateStore model.ConsensusStateStore consensusStateStore model.ConsensusStateStore
multisetStore model.MultisetStore multisetStore model.MultisetStore
blockStore model.BlockStore blockStore model.BlockStore
ghostdagManager model.GHOSTDAGManager utxoDiffStore model.UTXODiffStore
acceptanceManager model.AcceptanceManager blockRelationStore model.BlockRelationStore
blockStatusStore model.BlockStatusStore acceptanceDataStore model.AcceptanceDataStore
} }
// New instantiates a new ConsensusStateManager // New instantiates a new ConsensusStateManager
func New( func New(
databaseContext *database.DomainDBContext, databaseContext *database.DomainDBContext,
dagParams *dagconfig.Params, dagParams *dagconfig.Params,
ghostdagManager model.GHOSTDAGManager,
dagTopologyManager model.DAGTopologyManager,
pruningManager model.PruningManager,
blockStatusStore model.BlockStatusStore,
ghostdagDataStore model.GHOSTDAGDataStore,
consensusStateStore model.ConsensusStateStore, consensusStateStore model.ConsensusStateStore,
multisetStore model.MultisetStore, multisetStore model.MultisetStore,
blockStore model.BlockStore, blockStore model.BlockStore,
ghostdagManager model.GHOSTDAGManager, utxoDiffStore model.UTXODiffStore,
acceptanceManager model.AcceptanceManager, blockRelationStore model.BlockRelationStore,
blockStatusStore model.BlockStatusStore) model.ConsensusStateManager { acceptanceDataStore model.AcceptanceDataStore) model.ConsensusStateManager {
return &consensusStateManager{ return &consensusStateManager{
dagParams: dagParams, dagParams: dagParams,
databaseContext: databaseContext,
ghostdagManager: ghostdagManager,
dagTopologyManager: dagTopologyManager,
pruningManager: pruningManager,
databaseContext: databaseContext,
consensusStateStore: consensusStateStore,
multisetStore: multisetStore, multisetStore: multisetStore,
blockStore: blockStore, blockStore: blockStore,
ghostdagManager: ghostdagManager,
acceptanceManager: acceptanceManager,
blockStatusStore: blockStatusStore, blockStatusStore: blockStatusStore,
ghostdagDataStore: ghostdagDataStore,
consensusStateStore: consensusStateStore,
utxoDiffStore: utxoDiffStore,
blockRelationStore: blockRelationStore,
acceptanceDataStore: acceptanceDataStore,
} }
} }
// CalculateConsensusStateChanges returns a set of changes that must occur in order // AddBlockToVirtual submits the given block to be added to the
// to transition the current consensus state into the one including the given block // current virtual. This process may result in a new virtual block
func (csm *consensusStateManager) CalculateConsensusStateChanges(blockHash *externalapi.DomainHash) error { // getting created
func (csm *consensusStateManager) AddBlockToVirtual(blockHash *externalapi.DomainHash) error {
return nil return nil
} }
@ -54,14 +72,3 @@ func (csm *consensusStateManager) CalculateConsensusStateChanges(blockHash *exte
func (csm *consensusStateManager) VirtualData() (medianTime int64, blueScore uint64, err error) { func (csm *consensusStateManager) VirtualData() (medianTime int64, blueScore uint64, err error) {
return 0, 0, nil return 0, 0, nil
} }
// RestoreUTXOSet calculates and returns the UTXOSet of the given blockHash
func (csm *consensusStateManager) RestorePastUTXOSet(blockHash *externalapi.DomainHash) (model.ReadOnlyUTXOSet, error) {
return nil, nil
}
// RestoreDiffFromVirtual restores the diff between the given virtualDiffParentHash
// and the virtual
func (csm *consensusStateManager) RestoreDiffFromVirtual(utxoDiff *model.UTXODiff, virtualDiffParentHash *externalapi.DomainHash) (*model.UTXODiff, error) {
panic("implement me")
}

View File

@ -29,7 +29,7 @@ func New(
// Parents returns the DAG parents of the given blockHash // Parents returns the DAG parents of the given blockHash
func (dtm *dagTopologyManager) Parents(blockHash *externalapi.DomainHash) ([]*externalapi.DomainHash, error) { func (dtm *dagTopologyManager) Parents(blockHash *externalapi.DomainHash) ([]*externalapi.DomainHash, error) {
blockRelations, err := dtm.blockRelationStore.Get(dtm.databaseContext, blockHash) blockRelations, err := dtm.blockRelationStore.BlockRelation(dtm.databaseContext, blockHash)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -38,7 +38,7 @@ func (dtm *dagTopologyManager) Parents(blockHash *externalapi.DomainHash) ([]*ex
// Children returns the DAG children of the given blockHash // Children returns the DAG children of the given blockHash
func (dtm *dagTopologyManager) Children(blockHash *externalapi.DomainHash) ([]*externalapi.DomainHash, error) { func (dtm *dagTopologyManager) Children(blockHash *externalapi.DomainHash) ([]*externalapi.DomainHash, error) {
blockRelations, err := dtm.blockRelationStore.Get(dtm.databaseContext, blockHash) blockRelations, err := dtm.blockRelationStore.BlockRelation(dtm.databaseContext, blockHash)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -47,7 +47,7 @@ func (dtm *dagTopologyManager) Children(blockHash *externalapi.DomainHash) ([]*e
// IsParentOf returns true if blockHashA is a direct DAG parent of blockHashB // IsParentOf returns true if blockHashA is a direct DAG parent of blockHashB
func (dtm *dagTopologyManager) IsParentOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) { func (dtm *dagTopologyManager) IsParentOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) {
blockRelations, err := dtm.blockRelationStore.Get(dtm.databaseContext, blockHashB) blockRelations, err := dtm.blockRelationStore.BlockRelation(dtm.databaseContext, blockHashB)
if err != nil { if err != nil {
return false, err return false, err
} }
@ -56,7 +56,7 @@ func (dtm *dagTopologyManager) IsParentOf(blockHashA *externalapi.DomainHash, bl
// IsChildOf returns true if blockHashA is a direct DAG child of blockHashB // IsChildOf returns true if blockHashA is a direct DAG child of blockHashB
func (dtm *dagTopologyManager) IsChildOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) { func (dtm *dagTopologyManager) IsChildOf(blockHashA *externalapi.DomainHash, blockHashB *externalapi.DomainHash) (bool, error) {
blockRelations, err := dtm.blockRelationStore.Get(dtm.databaseContext, blockHashB) blockRelations, err := dtm.blockRelationStore.BlockRelation(dtm.databaseContext, blockHashB)
if err != nil { if err != nil {
return false, err return false, err
} }

View File

@ -7,26 +7,29 @@ import (
// pruningManager resolves and manages the current pruning point // pruningManager resolves and manages the current pruning point
type pruningManager struct { type pruningManager struct {
dagTraversalManager model.DAGTraversalManager dagTraversalManager model.DAGTraversalManager
pruningStore model.PruningStore dagTopologyManager model.DAGTopologyManager
dagTopologyManager model.DAGTopologyManager
blockStatusStore model.BlockStatusStore pruningStore model.PruningStore
consensusStateManager model.ConsensusStateManager blockStatusStore model.BlockStatusStore
consensusStateStore model.ConsensusStateStore
} }
// New instantiates a new PruningManager // New instantiates a new PruningManager
func New( func New(
dagTraversalManager model.DAGTraversalManager, dagTraversalManager model.DAGTraversalManager,
pruningStore model.PruningStore,
dagTopologyManager model.DAGTopologyManager, dagTopologyManager model.DAGTopologyManager,
pruningStore model.PruningStore,
blockStatusStore model.BlockStatusStore, blockStatusStore model.BlockStatusStore,
consensusStateManager model.ConsensusStateManager) model.PruningManager { consensusStateStore model.ConsensusStateStore) model.PruningManager {
return &pruningManager{ return &pruningManager{
dagTraversalManager: dagTraversalManager, dagTraversalManager: dagTraversalManager,
pruningStore: pruningStore, dagTopologyManager: dagTopologyManager,
dagTopologyManager: dagTopologyManager,
blockStatusStore: blockStatusStore, pruningStore: pruningStore,
consensusStateManager: consensusStateManager, blockStatusStore: blockStatusStore,
consensusStateStore: consensusStateStore,
} }
} }

View File

@ -1,25 +0,0 @@
package utxodiffmanager
import (
"github.com/kaspanet/kaspad/domain/consensus/model"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
)
// UTXODiffManager provides methods to access
// and store UTXO diffs
type utxoDiffManager struct {
utxoDiffStore model.UTXODiffStore
}
// New instantiates a new UTXODiffManager
func New(utxoDiffStore model.UTXODiffStore) model.UTXODiffManager {
return &utxoDiffManager{
utxoDiffStore: utxoDiffStore,
}
}
// RestoreBlockDiffFromVirtualDiffParent restores the UTXO diff of
// the block for the given blockHash.
func (u *utxoDiffManager) RestoreBlockDiffFromVirtualDiffParent(blockHash *externalapi.DomainHash) (utxoDiff *model.UTXODiff, virtualDiffParentHash *externalapi.DomainHash, err error) {
panic("implement me")
}