snarkOS icon indicating copy to clipboard operation
snarkOS copied to clipboard

Limit amount of transactions which clients verify in parallel

Open vicsn opened this issue 1 year ago • 0 comments

Motivation

Our clients can and do run out of memory, probably because they have no limit on how many transactions they verify in parallel. This PR proposes to queue them (just like the validator does in Consensus) and limit how much parallel verification we do.

We can do a lot of clever things to increase the processing speed, like check how many constraints the incoming transactions have, await on a channel to rapidly start verifying, but the focus for now is simplicity and safety.

Test Plan

  • Verified that the client still runs fine with https://github.com/AleoHQ/snarkOS/pull/2972

Related PRs

Implicitly assumes we have https://github.com/AleoHQ/snarkVM/pull/2271 to limit size of transactions coming through. And this would help to minimize the overhead of transaction verification when syncing blocks with already seen transactions: https://github.com/AleoHQ/snarkVM/pull/2270

vicsn avatar Jan 03 '24 21:01 vicsn