Skip to content

perf: offload tx signature verification from chunk production #12999

Open
@mooori

Description

@mooori

During chunk production transaction signatures are verified sequentially (called from here) on the critical path. To get that work off the critical path, add a second pool containing only transactions for which the signature has been verified.

High level overview

Assume the pool is called SigVerifiedPool:

  • A node receives a transaction.
  • After it's checks excluding signature verification have passed, it sends the transaction to SigVerifiedPool.
  • SigVerifiedPool continuously runs signature verification on a dedicated thread and rejects transactions with invalid signature.
  • A CP interacts with SigVerifiedPool and then can skip signature verification during chunk production.

To consider

  • Make sure all transactions are sent to SigVerifiedPool or add a mechanism for SigVerifiedPool to pull in transactions.
  • Under high load, more than one thread might be required to verify signatures fast enough.
  • Are there opportunities to skip signature verification in other places too by interacting with SigVerifiedPool?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions