Update lastRebroadcastTime when we are rebroadcasting + Add some logs to mempool (#1776)

* Update lastRebroadcastTime when we are rebroadcasting

* Add some logs to mempool

Co-authored-by: stasatdaglabs <39559713+stasatdaglabs@users.noreply.github.com>
This commit is contained in:
Svarog 2021-07-04 12:08:44 +03:00 committed by GitHub
parent f7cce5cb39
commit 61aa15fd61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 20 additions and 1 deletions

View File

@ -1,6 +1,8 @@
package flowcontext
import (
"time"
peerpkg "github.com/kaspanet/kaspad/app/protocol/peer"
"github.com/kaspanet/kaspad/app/protocol/protocolerrors"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
@ -82,6 +84,7 @@ func (f *FlowContext) broadcastTransactionsAfterBlockAdded(
return err
}
txIDsToRebroadcast = consensushashing.TransactionIDs(txsToRebroadcast)
f.lastRebroadcastTime = time.Now()
}
txIDsToBroadcast := make([]*externalapi.DomainTransactionID, len(transactionsAcceptedToMempool)+len(txIDsToRebroadcast))

View File

@ -3,9 +3,13 @@ package mempool
import (
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/miningmanager/mempool/model"
"github.com/kaspanet/kaspad/infrastructure/logger"
)
func (mp *mempool) revalidateHighPriorityTransactions() ([]*externalapi.DomainTransaction, error) {
onEnd := logger.LogAndMeasureExecutionTime(log, "revalidateHighPriorityTransactions")
defer onEnd()
validTransactions := []*externalapi.DomainTransaction{}
for _, transaction := range mp.transactionsPool.highPriorityTransactions {
@ -31,6 +35,7 @@ func (mp *mempool) revalidateTransaction(transaction *model.MempoolTransaction)
return false, err
}
if len(missingParents) > 0 {
log.Debugf("Removing transaction %s, it failed revalidation", transaction.TransactionID())
err := mp.removeTransaction(transaction.TransactionID(), true)
if err != nil {
return false, err

View File

@ -99,7 +99,10 @@ func (tp *transactionsPool) expireOldTransactions() error {
}
// Remove all transactions whose addedAtDAAScore is older then TransactionExpireIntervalDAAScore
if virtualDAAScore-mempoolTransaction.AddedAtDAAScore() > tp.mempool.config.TransactionExpireIntervalDAAScore {
daaScoreSinceAdded := virtualDAAScore - mempoolTransaction.AddedAtDAAScore()
if daaScoreSinceAdded > tp.mempool.config.TransactionExpireIntervalDAAScore {
log.Debugf("Removing transaction %s, because it expired. DAAScore moved by %d, expire interval: %d",
mempoolTransaction.TransactionID(), daaScoreSinceAdded, tp.mempool.config.TransactionExpireIntervalDAAScore)
err = tp.mempool.removeTransaction(mempoolTransaction.TransactionID(), true)
if err != nil {
return err
@ -175,6 +178,8 @@ func (tp *transactionsPool) limitTransactionCount() error {
}
}
log.Debugf("Removing transaction %s, because mempoolTransaction count (%d) exceeded the limit (%d)",
transactionToRemove.TransactionID(), len(tp.allTransactions), tp.mempool.config.MaximumTransactionCount)
err := tp.mempool.removeTransaction(transactionToRemove.TransactionID(), true)
if err != nil {
return err

View File

@ -3,6 +3,8 @@ package mempool
import (
"fmt"
"github.com/kaspanet/kaspad/infrastructure/logger"
"github.com/kaspanet/kaspad/domain/consensus/model/externalapi"
"github.com/kaspanet/kaspad/domain/consensus/utils/consensushashing"
)
@ -10,6 +12,10 @@ import (
func (mp *mempool) validateAndInsertTransaction(transaction *externalapi.DomainTransaction, isHighPriority bool,
allowOrphan bool) (acceptedTransactions []*externalapi.DomainTransaction, err error) {
onEnd := logger.LogAndMeasureExecutionTime(log,
fmt.Sprintf("validateAndInsertTransaction %s", consensushashing.TransactionID(transaction)))
defer onEnd()
err = mp.validateTransactionPreUTXOEntry(transaction)
if err != nil {
return nil, err