-
Notifications
You must be signed in to change notification settings - Fork 353
[SLP-4] Bump tx instructions back to 400M. #1853
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR increases the per-transaction instruction limit in the Soroban Ledger Proposal (SLP-4) from 300 million to 400 million instructions. The change updates the proposed limits table and adjusts related performance benchmark data and overhead estimates to reflect the increased computational capacity.
Changes:
- Increased proposed per-transaction instruction limit from 300M to 400M
- Updated the ledger/transaction ratio from 3.87 to 2.9 to reflect the new limit
- Adjusted benchmark timing reference from 282ms to 342ms
- Reduced overhead estimate from 100% to 50% for per-thread parallelization
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| This SLP proposes increases to a number of per-transaction limits. Footprint-related changes are unlikely to have significant long-term impact, as it's unlikely that the respective ledger limits will need to go down significantly, and thus these should remain low enough relatively to the ledger limits in the long term. | ||
|
|
||
| The instruction limit increase is significant and it limits the ability to reduce per-thread instruction count. Specifically, if ledgers are closed more often and with more threads, every thread still must be able to apply at least 300M instructions. However, even with a rather conservative estimate of 100% per-thread overhead (due to imperfect parallelization), we would still end up with ~300ms ledger close time, which should be acceptable even given much higher ledger close frequency. As a reference point, with the current build of Stellar Core a benchmark for 300M instructions per thread and 8 threads, 1000 transactions per ledger, and 1000 entries/286KB of writes takes 282ms on average. Note, that some amount of future optimization is assumed here (such as parallelizing some steps that are currently sequential). | ||
| The instruction limit increase is significant and it limits the ability to reduce per-thread instruction count. Specifically, if ledgers are closed more often and with more threads, every thread still must be able to apply at least 300M instructions. However, even with a rather conservative estimate of 50% per-thread overhead (due to imperfect parallelization), we would still end up with ~300ms ledger close time, which should be acceptable even given much higher ledger close frequency. As a reference point, with the current build of Stellar Core a benchmark for 300M instructions per thread and 8 threads, 1000 transactions per ledger, and 1000 entries/286KB of writes takes 342ms on average. Note, that some amount of future optimization is assumed here (such as parallelizing some steps that are currently sequential). |
Copilot
AI
Jan 20, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This paragraph contains two references to "300M instructions" that should be updated to "400M instructions" to match the proposed per-transaction limit in the table. Specifically:
- "every thread still must be able to apply at least 300M instructions" should be "400M instructions"
- "a benchmark for 300M instructions per thread" should be "400M instructions per thread"
These updates are necessary to maintain consistency with the table changes and accurately reflect the performance implications of the new limits.
| The instruction limit increase is significant and it limits the ability to reduce per-thread instruction count. Specifically, if ledgers are closed more often and with more threads, every thread still must be able to apply at least 300M instructions. However, even with a rather conservative estimate of 50% per-thread overhead (due to imperfect parallelization), we would still end up with ~300ms ledger close time, which should be acceptable even given much higher ledger close frequency. As a reference point, with the current build of Stellar Core a benchmark for 300M instructions per thread and 8 threads, 1000 transactions per ledger, and 1000 entries/286KB of writes takes 342ms on average. Note, that some amount of future optimization is assumed here (such as parallelizing some steps that are currently sequential). | |
| The instruction limit increase is significant and it limits the ability to reduce per-thread instruction count. Specifically, if ledgers are closed more often and with more threads, every thread still must be able to apply at least 400M instructions. However, even with a rather conservative estimate of 50% per-thread overhead (due to imperfect parallelization), we would still end up with ~300ms ledger close time, which should be acceptable even given much higher ledger close frequency. As a reference point, with the current build of Stellar Core a benchmark for 400M instructions per thread and 8 threads, 1000 transactions per ledger, and 1000 entries/286KB of writes takes 342ms on average. Note, that some amount of future optimization is assumed here (such as parallelizing some steps that are currently sequential). |
No description provided.