diff --git a/domain/consensus/consensus.go b/domain/consensus/consensus.go index 03915010a..3a8903ee3 100644 --- a/domain/consensus/consensus.go +++ b/domain/consensus/consensus.go @@ -30,6 +30,7 @@ type consensus struct { pruningManager model.PruningManager reachabilityManager model.ReachabilityManager + acceptanceDataStore model.AcceptanceDataStore blockStore model.BlockStore blockHeaderStore model.BlockHeaderStore pruningStore model.PruningStore diff --git a/domain/consensus/factory.go b/domain/consensus/factory.go index ca47109ae..44fd76f48 100644 --- a/domain/consensus/factory.go +++ b/domain/consensus/factory.go @@ -273,6 +273,7 @@ func (f *factory) NewConsensus(dagParams *dagconfig.Params, db infrastructuredat pruningManager: pruningManager, reachabilityManager: reachabilityManager, + acceptanceDataStore: acceptanceDataStore, blockStore: blockStore, blockHeaderStore: blockHeaderStore, pruningStore: pruningStore, diff --git a/domain/consensus/model/testapi/test_consensus.go b/domain/consensus/model/testapi/test_consensus.go index be16dfbe0..37fbc8e67 100644 --- a/domain/consensus/model/testapi/test_consensus.go +++ b/domain/consensus/model/testapi/test_consensus.go @@ -21,6 +21,8 @@ type TestConsensus interface { SolveAndAddBlock(block *externalapi.DomainBlock) (*externalapi.DomainHash, error) + DiscardAllStores() + AcceptanceDataStore() model.AcceptanceDataStore BlockHeaderStore() model.BlockHeaderStore BlockRelationStore() model.BlockRelationStore diff --git a/domain/consensus/processes/blockbuilder/test_block_builder.go b/domain/consensus/processes/blockbuilder/test_block_builder.go index c01b8a195..a8597efa2 100644 --- a/domain/consensus/processes/blockbuilder/test_block_builder.go +++ b/domain/consensus/processes/blockbuilder/test_block_builder.go @@ -72,17 +72,17 @@ func (bb *testBlockBuilder) buildBlockWithParents( parentHashes []*externalapi.DomainHash, coinbaseData *externalapi.DomainCoinbaseData, transactions []*externalapi.DomainTransaction) (*externalapi.DomainBlock, error) { + defer bb.testConsensus.DiscardAllStores() + err := bb.blockRelationStore.StageBlockRelation(tempBlockHash, &model.BlockRelations{Parents: parentHashes}) if err != nil { return nil, err } - defer bb.blockRelationStore.Discard() err = bb.ghostdagManager.GHOSTDAG(tempBlockHash) if err != nil { return nil, err } - defer bb.ghostdagDataStore.Discard() ghostdagData, err := bb.ghostdagDataStore.Get(bb.databaseContext, tempBlockHash) if err != nil { @@ -93,10 +93,6 @@ func (bb *testBlockBuilder) buildBlockWithParents( if err != nil { return nil, err } - defer bb.testConsensus.BlockStatusStore().Discard() - defer bb.acceptanceDataStore.Discard() - defer bb.multisetStore.Discard() - defer bb.testConsensus.UTXODiffStore().Discard() _, acceptanceData, multiset, err := bb.consensusStateManager.CalculatePastUTXOAndAcceptanceData(tempBlockHash) if err != nil { diff --git a/domain/consensus/test_consensus.go b/domain/consensus/test_consensus.go index f6a19765b..d36cfce53 100644 --- a/domain/consensus/test_consensus.go +++ b/domain/consensus/test_consensus.go @@ -1,9 +1,10 @@ package consensus import ( + "math/rand" + "github.com/kaspanet/kaspad/domain/consensus/utils/consensusserialization" "github.com/kaspanet/kaspad/domain/consensus/utils/mining" - "math/rand" "github.com/kaspanet/kaspad/domain/consensus/utils/testutils" @@ -62,3 +63,18 @@ func (tc *testConsensus) SolveAndAddBlock(block *externalapi.DomainBlock) (*exte return consensusserialization.BlockHash(block), nil } + +func (tc *testConsensus) DiscardAllStores() { + tc.AcceptanceDataStore().Discard() + tc.BlockHeaderStore().Discard() + tc.BlockRelationStore().Discard() + tc.BlockStatusStore().Discard() + tc.BlockStore().Discard() + tc.ConsensusStateStore().Discard() + tc.GHOSTDAGDataStore().Discard() + tc.HeaderTipsStore().Discard() + tc.MultisetStore().Discard() + tc.PruningStore().Discard() + tc.ReachabilityDataStore().Discard() + tc.UTXODiffStore().Discard() +} diff --git a/domain/consensus/test_consensus_getters.go b/domain/consensus/test_consensus_getters.go index a61e2b069..0ab7f6ccd 100644 --- a/domain/consensus/test_consensus_getters.go +++ b/domain/consensus/test_consensus_getters.go @@ -9,7 +9,7 @@ func (tc *testConsensus) DatabaseContext() model.DBReader { } func (tc *testConsensus) AcceptanceDataStore() model.AcceptanceDataStore { - return tc.AcceptanceDataStore() + return tc.acceptanceDataStore } func (tc *testConsensus) BlockHeaderStore() model.BlockHeaderStore {