Context: We are benchmarking the throughput of move VM across different standard smart contracts.
Problem: We found that the signature check is the bottleneck for simple payments in moveVM . How do we parallelize the signature check for all transactions in a block? If that’s not possible, is there any way of disabling the signature check altogether?
It looks like the VM already checks signatures for transactions in the same block in parallel:
If you want to benchmark without signature checking, the easiest way is probably to add an unsafe wrapper for creating a SignatureCheckedTransaction without actually checking the signature, then use that in the code referenced above?
One other optimization that might be worth trying is to begin executing the transactions in parallel with checking the signatures. Today, execution is blocked until signature checking concludes.