Skip to content

Conversation

@dmkozh
Copy link
Contributor

@dmkozh dmkozh commented Jan 20, 2026

No description provided.

Copilot AI review requested due to automatic review settings January 20, 2026 20:31
Copy link
Contributor

Copilot AI left a 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).
Copy link

Copilot AI Jan 20, 2026

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:

  1. "every thread still must be able to apply at least 300M instructions" should be "400M instructions"
  2. "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.

Suggested change
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).

Copilot uses AI. Check for mistakes.
@anupsdf anupsdf merged commit d88f0fc into stellar:master Jan 20, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants