From 6449b030348ad0c6492c439ef2308fdf97fc5245 Mon Sep 17 00:00:00 2001 From: Ori Newman Date: Sat, 26 Feb 2022 22:20:08 +0200 Subject: [PATCH] Ignore transaction invs on IBD (#1960) * Ignore transaction invs on IBD * Add IsIBDRunning mock to TestHandleRelayedTransactionsNotFound Co-authored-by: Ori Newman <> --- .../flows/v4/transactionrelay/handle_relayed_transactions.go | 5 +++++ .../v4/transactionrelay/handle_relayed_transactions_test.go | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions.go b/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions.go index 1598fa5fa..74862bafa 100644 --- a/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions.go +++ b/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions.go @@ -22,6 +22,7 @@ type TransactionsRelayContext interface { SharedRequestedTransactions() *flowcontext.SharedRequestedTransactions OnTransactionAddedToMempool() EnqueueTransactionIDsForPropagation(transactionIDs []*externalapi.DomainTransactionID) error + IsIBDRunning() bool } type handleRelayedTransactionsFlow struct { @@ -49,6 +50,10 @@ func (flow *handleRelayedTransactionsFlow) start() error { return err } + if flow.IsIBDRunning() { + continue + } + requestedIDs, err := flow.requestInvTransactions(inv) if err != nil { return err diff --git a/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions_test.go b/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions_test.go index 33f6d0a06..d98045694 100644 --- a/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions_test.go +++ b/app/protocol/flows/v4/transactionrelay/handle_relayed_transactions_test.go @@ -47,6 +47,10 @@ func (m *mocTransactionsRelayContext) EnqueueTransactionIDsForPropagation(transa func (m *mocTransactionsRelayContext) OnTransactionAddedToMempool() { } +func (m *mocTransactionsRelayContext) IsIBDRunning() bool { + return false +} + // TestHandleRelayedTransactionsNotFound tests the flow of HandleRelayedTransactions when the peer doesn't // have the requested transactions in the mempool. func TestHandleRelayedTransactionsNotFound(t *testing.T) {