SIMD-0160
Static Instruction Limit
TL;DR
Transactions will fail execution in SVM if the transactions use more than 64 instructions, including CPI calls. This proposal is to make transactions that use more than 64 top-level instructions fail sanitization checks and be rejected by the network.
Summary
Transactions will fail execution in SVM if the transactions use more than 64 instructions, including CPI calls. This proposal is to make transactions that use more than 64 top-level instructions fail sanitization checks and be rejected by the network.
Motivation
The current limit of 64 instructions is a runtime failure, and makes sense in the context of CPIs. It is bad user experience to allow creation and submission of transactions that have no chance of being executed successfully. Several other checks worst-case performance scales with the number of top-level instructions in a transaction, so limiting this number can help the worst-case performance.
Impact
- Users are prevented from creating transactions that cannot be executed successfully. - Smaller upper bound on number of instructions can help performance of validator.
Backwards Compatibility
*(Optional)* - Some transactions that are currently valid will be rejected.
Security Considerations
- Requires a feature-gate to enable the new limit.