Skip to content

Commit f7a94c0

Browse files
authored
raise_account_cu_limits (#306)
1 parent 9a3b042 commit f7a94c0

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
---
2+
simd: '0306'
3+
title: Increase writeable account limit to 20M CUs
4+
authors:
5+
- Brennan Watt (Anza)
6+
category: Standard
7+
type: Core
8+
status: Review
9+
created: 2025-06-17
10+
feature: TBD
11+
---
12+
13+
## Summary
14+
15+
Increase the per account CU limit from a static 12M to 40% of the block CU limit.
16+
17+
## Motivation
18+
19+
This will allow more activity to target a single hot account in each block and
20+
take advantage of the performance improvements that have been made. We are
21+
consistently hitting the current 12M CU cap, so this will unlock more economic
22+
activity.
23+
24+
## New Terminology
25+
26+
No new terms, but the following definitions are given for clarity:
27+
28+
- Max Block Units - The maximum number of CUs that can be included in a block.
29+
- Max Writable Account Units - The maximum number of CUs that can be used to
30+
write any given account in a block.
31+
- Max Vote Units - The maximum number of CUs that can be used by simple votes
32+
in a block.
33+
- Max Block Accounts Data Size Delta - The maximum size of the accounts data
34+
size delta in a block.
35+
36+
## Detailed Design
37+
38+
The following table shows the current block limits and future proposed block
39+
limits:
40+
41+
| Type | Current Block Limit | SIMD-0256 Limit | SIMD-0286 Limit |
42+
|------|-----|---------------|---------------------|
43+
| Max Block Units | 50M | 60M | 100M |
44+
| Max Writable Account Units | 12M | 12M | 12M |
45+
| Max Vote Units | 36M | 36M | 36M |
46+
| Max Block Accounts Data Size Delta | 100MB | 100MB | 100MB |
47+
48+
This proposal advocates to set `Max Writable Account Units` to 40% of `Max Block
49+
Units`. This will result in the following `Max Writable Account Units` for
50+
current and future proposed `Max Block Units`:
51+
52+
| Block Limit | Max Block Units | Max Writable Account Units |
53+
| Current | 50M | 20M |
54+
| SIMD-0256 | 60M | 24M |
55+
| SIMD-0286 | 100M | 40M |
56+
57+
This proposal only changes the `Max Writable Account Units` limit. The purpose
58+
is to increase amount of activity that can target a single account. The `Max
59+
Block Unit` is left unchanged. Further increases to global limit will be
60+
addressed with SIMD-0286. Increasing `Max Writeable Account Units` while leaving
61+
`Max Block Units` unchanged takes advantage of underutilized serial execution
62+
capacity.
63+
64+
The intention is for this to follow SIMD-0256 but activate before SIMD-0286
65+
(which has not merged yet). Rationale is that we are ready to handle this
66+
increased serialized execution today but the 100M CU increase has some
67+
development dependencies. That said, we will be capable of handling a scenario
68+
where SIMD-0286 merges and gets activated first.
69+
70+
## Alternatives Considered
71+
72+
Killing per account limits altogether. But this may be too easy to attack by
73+
aggressively targeting a single account up to the global CU limit.
74+
75+
## Impact
76+
77+
This will allow for more serialized account access, making it easier for more
78+
updates to some hot state to occur. It may increase block execution times, which
79+
could impact slot times for some unforeseen cases.
80+
81+
## Security Considerations
82+
83+
Blocks may take longer to execute, slowing down network progress and catchup times.
84+
85+
## Drawbacks *(Optional)*
86+
87+
Increasing the CU limit for single account will increase worst case serialized
88+
execution, which could increase block verification and/or slot time.
89+
90+
## Backwards Compatibility *(Optional)*
91+
92+
- All previously valid blocks are still valid, since limits are only
93+
increasing.
94+
- Blocks produced after the change may be rejected by previous versions that do
95+
not support the new limits.

0 commit comments

Comments
 (0)