mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-10-14 00:59:33 +00:00
[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:
parent
45882343e6
commit
b413760136
@ -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")
|
||||||
}
|
}
|
||||||
|
@ -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
|
|
||||||
}
|
|
||||||
|
@ -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,
|
||||||
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
|
@ -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)
|
|
||||||
}
|
}
|
||||||
|
@ -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
|
|
||||||
}
|
|
@ -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)
|
|
||||||
}
|
}
|
||||||
|
@ -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)
|
|
||||||
}
|
|
@ -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")
|
|
||||||
}
|
|
@ -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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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")
|
|
||||||
}
|
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
@ -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,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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")
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user