mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-05-24 15:56:42 +00:00

* [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.
79 lines
2.8 KiB
Go
79 lines
2.8 KiB
Go
package blockprocessor
|
|
|
|
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/dagconfig"
|
|
)
|
|
|
|
// blockProcessor is responsible for processing incoming blocks
|
|
// and creating blocks from the current state
|
|
type blockProcessor struct {
|
|
dagParams *dagconfig.Params
|
|
databaseContext *database.DomainDBContext
|
|
|
|
consensusStateManager model.ConsensusStateManager
|
|
pruningManager model.PruningManager
|
|
blockValidator model.BlockValidator
|
|
dagTopologyManager model.DAGTopologyManager
|
|
reachabilityTree model.ReachabilityTree
|
|
difficultyManager model.DifficultyManager
|
|
ghostdagManager model.GHOSTDAGManager
|
|
pastMedianTimeManager model.PastMedianTimeManager
|
|
acceptanceDataStore model.AcceptanceDataStore
|
|
blockStore model.BlockStore
|
|
blockStatusStore model.BlockStatusStore
|
|
blockRelationStore model.BlockRelationStore
|
|
}
|
|
|
|
// New instantiates a new BlockProcessor
|
|
func New(
|
|
dagParams *dagconfig.Params,
|
|
databaseContext *database.DomainDBContext,
|
|
consensusStateManager model.ConsensusStateManager,
|
|
pruningManager model.PruningManager,
|
|
blockValidator model.BlockValidator,
|
|
dagTopologyManager model.DAGTopologyManager,
|
|
reachabilityTree model.ReachabilityTree,
|
|
difficultyManager model.DifficultyManager,
|
|
pastMedianTimeManager model.PastMedianTimeManager,
|
|
ghostdagManager model.GHOSTDAGManager,
|
|
acceptanceDataStore model.AcceptanceDataStore,
|
|
blockStore model.BlockStore,
|
|
blockStatusStore model.BlockStatusStore,
|
|
blockRelationStore model.BlockRelationStore) model.BlockProcessor {
|
|
|
|
return &blockProcessor{
|
|
dagParams: dagParams,
|
|
databaseContext: databaseContext,
|
|
pruningManager: pruningManager,
|
|
blockValidator: blockValidator,
|
|
dagTopologyManager: dagTopologyManager,
|
|
reachabilityTree: reachabilityTree,
|
|
difficultyManager: difficultyManager,
|
|
pastMedianTimeManager: pastMedianTimeManager,
|
|
ghostdagManager: ghostdagManager,
|
|
|
|
consensusStateManager: consensusStateManager,
|
|
acceptanceDataStore: acceptanceDataStore,
|
|
blockStore: blockStore,
|
|
blockStatusStore: blockStatusStore,
|
|
blockRelationStore: blockRelationStore,
|
|
}
|
|
}
|
|
|
|
// BuildBlock builds a block over the current state, with the transactions
|
|
// selected by the given transactionSelector
|
|
func (bp *blockProcessor) BuildBlock(coinbaseData *externalapi.DomainCoinbaseData,
|
|
transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, error) {
|
|
|
|
return nil, nil
|
|
}
|
|
|
|
// ValidateAndInsertBlock validates the given block and, if valid, applies it
|
|
// to the current state
|
|
func (bp *blockProcessor) ValidateAndInsertBlock(block *externalapi.DomainBlock) error {
|
|
return nil
|
|
}
|