Skip to content

Commit 3e9cd45

Browse files
committed
Do not forward rejected requests.
Signed-off-by: Karolis Petrauskas <karolis.petrauskas@ext.iota.org>
1 parent a11e773 commit 3e9cd45

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

packages/chain/mempool/mempool.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -505,8 +505,7 @@ func (mpi *mempoolImpl) distSyncRequestReceivedCB(request isc.Request) bool {
505505
return false
506506
}
507507
if err := mpi.shouldAddOffledgerRequest(offLedgerReq); err == nil {
508-
mpi.addOffledger(offLedgerReq)
509-
return true
508+
return mpi.addOffledger(offLedgerReq)
510509
}
511510
return false
512511
}
@@ -558,10 +557,13 @@ func (mpi *mempoolImpl) shouldAddOffledgerRequest(req isc.OffLedgerRequest) erro
558557
return nil
559558
}
560559

561-
func (mpi *mempoolImpl) addOffledger(request isc.OffLedgerRequest) {
562-
mpi.offLedgerPool.Add(request)
560+
func (mpi *mempoolImpl) addOffledger(request isc.OffLedgerRequest) bool {
561+
if !mpi.offLedgerPool.Add(request) {
562+
return false
563+
}
563564
mpi.metrics.IncRequestsReceived(request)
564565
mpi.log.Debugf("accepted by the mempool, requestID: %s", request.ID().String())
566+
return true
565567
}
566568

567569
func (mpi *mempoolImpl) handleServerNodesUpdated(recv *reqServerNodesUpdated) {
@@ -806,8 +808,9 @@ func (mpi *mempoolImpl) handleReceiveOnLedgerRequest(request isc.OnLedgerRequest
806808

807809
func (mpi *mempoolImpl) handleReceiveOffLedgerRequest(request isc.OffLedgerRequest) {
808810
mpi.log.Debugf("Received request %v from outside.", request.ID())
809-
mpi.addOffledger(request)
810-
mpi.sendMessages(mpi.distSync.Input(distsync.NewInputPublishRequest(request)))
811+
if mpi.addOffledger(request) {
812+
mpi.sendMessages(mpi.distSync.Input(distsync.NewInputPublishRequest(request)))
813+
}
811814
}
812815

813816
func (mpi *mempoolImpl) handleTangleTimeUpdated(tangleTime time.Time) {

packages/chain/mempool/offledger_pool.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ func (p *OffLedgerPool) Get(reqRef *isc.RequestRef) isc.OffLedgerRequest {
6767
return entry.req
6868
}
6969

70-
func (p *OffLedgerPool) Add(request isc.OffLedgerRequest) {
70+
func (p *OffLedgerPool) Add(request isc.OffLedgerRequest) bool {
7171
ref := isc.RequestRefFromRequest(request)
7272
entry := &OrderedPoolEntry{req: request, ts: time.Now()}
7373
account := request.SenderAccount().String()
@@ -76,7 +76,7 @@ func (p *OffLedgerPool) Add(request isc.OffLedgerRequest) {
7676
// add the request to the "request ref" Lookup Table
7777
if !p.refLUT.Set(ref.AsKey(), entry) {
7878
p.log.Debugf("NOT ADDED, already exists. reqID: %v as key=%v, senderAccount: ", request.ID(), ref, account)
79-
return // not added already exists
79+
return true // not added already exists
8080
}
8181

8282
//
@@ -134,14 +134,15 @@ func (p *OffLedgerPool) Add(request isc.OffLedgerRequest) {
134134
deleted := p.LimitPoolSize()
135135
if lo.Contains(deleted, entry) {
136136
// this exact request was deleted from the pool, do not update metrics, or mark available
137-
return
137+
return false
138138
}
139139

140140
//
141141
// update metrics and signal that the request is available
142142
p.log.Debugf("ADD %v as key=%v, senderAccount: %s", request.ID(), ref, account)
143143
p.sizeMetric(p.refLUT.Size())
144144
p.waitReq.MarkAvailable(request)
145+
return true
145146
}
146147

147148
// LimitPoolSize drops the txs with the lowest price if the total number of requests is too big

0 commit comments

Comments
 (0)