Skip to content

Recover senders for imported network transactions in a blocking task #20271

@shekhirin

Description

@shekhirin

Describe the feature

When many network transactions are imported at once, this snippet becomes a bottleneck

let tx = match tx.try_into_recovered() {

This is problematic for two reasons:

  1. Senders are recovered sequentially.
  2. This is done in an async task, and with many import tasks happening simultaneously, can block the runtime for other async tasks.

We should instead recover the senders in parallel in a separate blocking task.

Additional context

No response

Metadata

Metadata

Assignees

Labels

A-tx-poolRelated to the transaction mempoolC-perfA change motivated by improving speed, memory usage or disk footprint

Type

No type

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions