mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-24 06:25:55 +00:00
fix pruning notification
This commit is contained in:
parent
09b2c53b3f
commit
600f39ffc6
@ -44,7 +44,6 @@ func HandleGetAcceptingBlockHashOfTx(context *rpccontext.Context, _ *router.Rout
|
||||
errorMessage := &appmessage.GetAcceptingBlockHashOfTxResponseMessage{}
|
||||
errorMessage.Error = appmessage.RPCErrorf("Could not find accepting block hash in the txindex database for txID: %s", domainTxID.String())
|
||||
return errorMessage, nil
|
||||
|
||||
}
|
||||
|
||||
response := appmessage.NewGetAcceptingBlockHashOfTxResponse(acceptingBlockHash.String())
|
||||
|
||||
@ -941,9 +941,11 @@ func (s *consensus) resolveVirtualNoLock(maxBlocksToResolve uint64) (bool, error
|
||||
return false, err
|
||||
}
|
||||
|
||||
err = s.sendPruningPointChangedEvent(pruningPointChange)
|
||||
if err != nil {
|
||||
return false, err
|
||||
if pruningPointChange != nil {
|
||||
err = s.sendPruningPointChangedEvent(pruningPointChange)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
}
|
||||
|
||||
err = s.sendVirtualChangedEvent(virtualChangeSet, true)
|
||||
|
||||
@ -190,12 +190,13 @@ func (pm *pruningManager) UpdatePruningPointByVirtualAndReturnChange(stagingArea
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &externalapi.PruningPointChange{
|
||||
OldPruningPoint: currentPruningPoint,
|
||||
NewPruningPoint: newPruningPoint,
|
||||
}, nil
|
||||
}
|
||||
|
||||
return &externalapi.PruningPointChange{
|
||||
OldPruningPoint: currentPruningPoint,
|
||||
NewPruningPoint: newPruningPoint,
|
||||
}, err
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
type blockIteratorFromOneBlock struct {
|
||||
|
||||
@ -90,17 +90,18 @@ func (tis *txIndexStore) commit() error {
|
||||
|
||||
defer dbTransaction.RollbackUnlessClosed()
|
||||
|
||||
for toRemoveTxID := range tis.toRemove { //safer to remove first
|
||||
key := tis.convertTxIDToKey(txAcceptedIndexBucket, toRemoveTxID)
|
||||
err := dbTransaction.Delete(key)
|
||||
for toAddTxID, blockHash := range tis.toAdd {
|
||||
delete(tis.toRemove, toAddTxID) //safeguard
|
||||
key := tis.convertTxIDToKey(txAcceptedIndexBucket, toAddTxID)
|
||||
dbTransaction.Put(key, blockHash.ByteSlice())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for toAddTxID, blockHash := range tis.toAdd {
|
||||
key := tis.convertTxIDToKey(txAcceptedIndexBucket, toAddTxID)
|
||||
dbTransaction.Put(key, blockHash.ByteSlice())
|
||||
for toRemoveTxID := range tis.toRemove {
|
||||
key := tis.convertTxIDToKey(txAcceptedIndexBucket, toRemoveTxID)
|
||||
err := dbTransaction.Delete(key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -49,6 +49,8 @@ func (ti *TXIndex) Reset() error {
|
||||
ti.mutex.Lock()
|
||||
defer ti.mutex.Unlock()
|
||||
|
||||
log.Info("Reseting TX Index")
|
||||
|
||||
err := ti.store.deleteAll()
|
||||
if err != nil {
|
||||
return err
|
||||
@ -188,7 +190,7 @@ func (ti *TXIndex) addTXIDs(selectedParentChainChanges *externalapi.SelectedChai
|
||||
chainBlockAcceptanceData := chainBlocksAcceptanceData[i]
|
||||
for _, blockAcceptanceData := range chainBlockAcceptanceData {
|
||||
for _, transactionAcceptanceData := range blockAcceptanceData.TransactionAcceptanceData {
|
||||
log.Info("TX index Adding: ", len(blockAcceptanceData.TransactionAcceptanceData))
|
||||
log.Tracef("TX index Adding: %d transactions", len(blockAcceptanceData.TransactionAcceptanceData))
|
||||
if transactionAcceptanceData.IsAccepted {
|
||||
ti.store.add(
|
||||
*consensushashing.TransactionID(transactionAcceptanceData.Transaction),
|
||||
@ -222,12 +224,12 @@ func (ti *TXIndex) removeTXIDs(selectedParentChainChanges *externalapi.SelectedC
|
||||
for i, removedChainBlock := range chainBlocksChunk {
|
||||
chainBlockAcceptanceData := chainBlocksAcceptanceData[i]
|
||||
for _, blockAcceptanceData := range chainBlockAcceptanceData {
|
||||
log.Info("TX index Removing: ", len(blockAcceptanceData.TransactionAcceptanceData))
|
||||
log.Tracef("TX index Removing: %d transactions", len(blockAcceptanceData.TransactionAcceptanceData))
|
||||
for _, transactionAcceptanceData := range blockAcceptanceData.TransactionAcceptanceData {
|
||||
if transactionAcceptanceData.IsAccepted {
|
||||
ti.store.remove(
|
||||
*consensushashing.TransactionID(transactionAcceptanceData.Transaction),
|
||||
removedChainBlock,
|
||||
*consensushashing.TransactionID(transactionAcceptanceData.Transaction),
|
||||
removedChainBlock,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,7 +24,7 @@ type appHarness struct {
|
||||
config *config.Config
|
||||
database database.Database
|
||||
utxoIndex bool
|
||||
txIndex bool
|
||||
txIndex bool
|
||||
overrideDAGParams *dagconfig.Params
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@ type harnessParams struct {
|
||||
miningAddress string
|
||||
miningAddressPrivateKey string
|
||||
utxoIndex bool
|
||||
txIndex bool
|
||||
txIndex bool
|
||||
overrideDAGParams *dagconfig.Params
|
||||
protocolVersion uint32
|
||||
}
|
||||
@ -47,7 +47,7 @@ func setupHarness(t *testing.T, params *harnessParams) (harness *appHarness, tea
|
||||
miningAddress: params.miningAddress,
|
||||
miningAddressPrivateKey: params.miningAddressPrivateKey,
|
||||
utxoIndex: params.utxoIndex,
|
||||
txIndex: params.txIndex,
|
||||
txIndex: params.txIndex,
|
||||
overrideDAGParams: params.overrideDAGParams,
|
||||
}
|
||||
|
||||
@ -103,34 +103,6 @@ func standardSetup(t *testing.T) (appHarness1, appHarness2, appHarness3 *appHarn
|
||||
return harnesses[0], harnesses[1], harnesses[2], teardown
|
||||
}
|
||||
|
||||
// standardSetupWithTxindex creates a standard setup of 3 appHarnesses, with txindexes.
|
||||
func standardSetupWithTxindex(t *testing.T) (appHarness1, appHarness2, appHarness3 *appHarness, teardownFunc func()) {
|
||||
harnesses, teardown := setupHarnesses(t, []*harnessParams{
|
||||
{
|
||||
p2pAddress: p2pAddress1,
|
||||
rpcAddress: rpcAddress1,
|
||||
miningAddress: miningAddress1,
|
||||
miningAddressPrivateKey: miningAddress1PrivateKey,
|
||||
txIndex: true,
|
||||
},
|
||||
{
|
||||
p2pAddress: p2pAddress2,
|
||||
rpcAddress: rpcAddress2,
|
||||
miningAddress: miningAddress2,
|
||||
miningAddressPrivateKey: miningAddress2PrivateKey,
|
||||
txIndex: true,
|
||||
}, {
|
||||
p2pAddress: p2pAddress3,
|
||||
rpcAddress: rpcAddress3,
|
||||
miningAddress: miningAddress3,
|
||||
miningAddressPrivateKey: miningAddress3PrivateKey,
|
||||
|
||||
},
|
||||
})
|
||||
|
||||
return harnesses[0], harnesses[1], harnesses[2], teardown
|
||||
}
|
||||
|
||||
func setRPCClient(t *testing.T, harness *appHarness) {
|
||||
var err error
|
||||
harness.rpcClient, err = newTestRPCClient(harness.rpcAddress)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user