-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Feature Gate Activation Schedule
The scheduling of feature gate activations is be based on the following principles:
- Relative priority
- The same order on each network
Those two principles will not always agree, exceptions will occur.
Feature gate activation so far has been ad-hoc, to help organize and communicate the upcoming feature gate activations the following table will indicate which features will be activated next and on which networks.
- Feature gates are ordered by priority, highest at the top, priority might change and circumvent activation.
- When a feature gate is activated on a network, the epoch will be added to the table by the person who activated the feature gate.
- The feature gate in the first row is implicitly next to be activated on mainnet beta
- Once a feature gate is activated on mainnet beta the person who activated the feature gate must remove it from the table.
- Feature gate owners are responsible for inserting their feature gates into this list following the above principles, exceptions will occur, get consensus from others before re-ordering priority.
- Some feature gates will need to be soaked before being activated on the next network, soaking will delay all lower-priority feature gates, exceptions will occur.
- Feature gates should be activated one at a time per network, exceptions will occur.
To determine which feature gate will be activated next:
- Feature gates must be activated on testnet, then devnet, then finally mainnet beta
- For each network, the next feature gate that has not been enabled will be enabled next
Given the following schedule:
- nWBqjr3gpETbiaVj3CBJ3HFC5TMdnJDGt21hnvSTvVZ will be activated on testnet next
- DpJREPyuMZ5nDfU6H3WTqSqUFSXAfw8u7xqmWtEwJDcP will be activated on devnet next
- 7GUcYgq4tVtaqNCKT3dho9r4665Qp5TxCZ27Qgjx3829 will be activated on mainnet beta next
Key | Version | Testnet | Devnet | Description | Comms Required |
---|---|---|---|---|---|
7GUcYgq4tVtaqNCKT3dho9r4665Qp5TxCZ27Qgjx3829 | v1.10.24 | 331 | 332 | Executables incur CPI data costs | |
DpJREPyuMZ5nDfU6H3WTqSqUFSXAfw8u7xqmWtEwJDcP | v1.10.25 | 333 | quick bail on panic | ||
7g9EUwj4j7CS21Yx1wvgWLjSZeh5aPq8x9kpoPwXM8n8 | v1.10.3 | 334 | limit secp256k1 recovery id | ||
nWBqjr3gpETbiaVj3CBJ3HFC5TMdnJDGt21hnvSTvVZ | v1.10.1 | check physical overlapping regions |
The version floor is the current minimum supported software version for a cluster. As new feature gates are activated, the version floor is raised to match the software release that the feature gate shipped in. For minor version updates on mainnet-beta the version floor will be raised (and activations will begin) two full epochs after 95% of stake adopts the new minor version.
Testnet | Devnet | Mainnet Beta | |
---|---|---|---|
Current floor | v1.17.2 | v1.17.5 | v1.16.17 |
Next expected floor * | -- | -- | -- |
* These dates are tentative. Please keep an eye out for comms as the dates near
Key | Version | Testnet | Devnet | Description | Owner | Comms Required |
---|---|---|---|---|---|---|
D31EFnLgdiysi84Woo3of4JMu7VmasUS3Z7j9HYXCeLY | v1.14.12 | 542 | 590 | experiments different turbine fanouts for propagating shreds | @behzadnouri | |
FKAcEvNgSY79RpqsPNUV5gDyumopH4cEHqUxyfm8b8Ap | v1.16.0 | 543 | 591 | Relax authority signer check in lookup table creation | @jstarry | |
5x3825XS7M2A3Ekbn5VGGkvFoAg5qrRWkTrY4bARP1GL | v1.16.0 | 546 | 592 | Add SetAuthorityChecked instruction to bpf upgradeable loader | @jstarry | |
D2aip4BBr8NPWtU9vLrwrBvbuaQ8w1zV38zFLxx4pfBV | v1.16.14 | 549 | 594 | Rent-exempt split recipients | @CriesofCarrots | yes |
Cdkc8PPTeTNUPoZEfCY5AyetUrEdkZtNPMgz58nqyaHD | v1.17.5 | 486 | 542 | switch to new ELF parser | @Lichtso | |
3NKRSwpySNwD3TvP5pHnRmkAQRsdkXWRr1WaQh8p4PWX | v1.17.5 | 413 | 502 | reject callx r10 bpf instructions | @jackcmay | |
8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b | v1.17.5 | 416 | 502 | error on syscall / bpf function hash collisions | @jackcmay | |
A16q37opZdQMCbe5qJ6xpBB9usykfv8jZaMkxvZQi4GJ | v1.17.5 | 490 | 546 | enable alt_bn128 syscall | @Lichtso | |
7axKe5BTYBDD87ftzWbk5DfzWMGyRvqmWTduuo22Yaqy | v1.17.0 | 553 | 598 | New vote state to track vote latency | @AshwinSekar | |
EWme9uFqfy1ikK1jhJs8fM5hxWnK336QJpbscNtizkTU | v1.17.2 | 588 | 636 | Update hashes per tick 2.8M | @bw-solana | |
8C8MCtsab5SsfammbzvYz65HHauuUYdbY2DZ4sznH6h5 | v1.17.2 | 589 | 639 | Update hashes per tick 4.4M | @bw-solana | |
8We4E7DPwF2WfAN8tRTtWQNhi98B99Qpuj7JoZ3Aikgg | v1.17.2 | 591 | 640 | Update hashes per tick 7.6M | @bw-solana | |
BsKLKAn1WM4HVhPRDsjosmqSg2J8Tq5xP2s2daDS6Ni4 | v1.17.2 | 592 | 642 | Update hashes per tick 9.2M | @bw-solana |
Key | Version | Testnet | Devnet | Description | Owner | Comms Required |
---|---|---|---|---|---|---|
FKu1qYwLQSiehz644H6Si65U5ZQ2cp9GxsyFUfYcuADv | v1.17.2 | 594 | Update hashes per tick 10M | @bw-solana | ||
prpFrMtgNmzaNzkPJg9o753fVvbHKqNrNTm76foJ2wm | v1.17.5 | 596 | Validate fee collector account | @jstarry |
Key | Version | Testnet | Devnet | Description | Owner | Comms Required |
---|---|---|---|---|---|---|
EJJewYSddEEtSZHiqugnvhQHiWyZKjkFDQASd7oKSagn | v1.17.5 | Enable altbn128 compression | @samkim-crypto | |||
HooKD5NC9QNxk25QuzCssB8ecrEzGt6eXEPBUxWp1LaR | v1.17.5 | last restart slot sysvar/syscall | @mvines | |||
5TuppMutoyzhUSfuYdhgzD47F92GL1g89KpCZQKqedxP | v1.17.5 | sol_remaining_compute_units syscall | @mvines | |||
FL9RsQA6TVUoh5xJQ9d936RHSebA1NLQqe3Zv9sXZRpr | v1.17.5 | Enable Poseidon hash syscall | @samkim-crypto | |||
GV49KKQdBNaiv2pgqhS2Dy3GWYJGXMTVYbYkdk91orRy | v1.17.8 | adds feature gated code to drop legacy shreds #34328 | @behzadnouri | |||
7WeS1vfPRgeeoXArLh7879YcB9mgE9ktjPDtajXeWfXn | v1.17.19 | Disable bpf loader management instructions | @HaoranYi | |||
EenyoWx9UMXYKpR8mW5Jmfmy2fRjzUtM7NduYMY8bx33 | v1.18.0 | Enable account data direct mapping | @alessandrod | |||
CJzY83ggJHqPGDq8VisV3U91jDJLuEaALZooBrXtnnLU | v1.18.0 | Disable rent fees collection | @Haoran Yi | |||
6YsBCejwK96GZCkJ6mkZ4b68oP63z2PLoQmWjC7ggTqZ | v1.17.23 | read duplicate proofs from blockstore | @AshwinSekar | |||
dupPajaLy2SSn8ko42aZz4mHANDNrLe8Nw8VQgFecLa | v1.17.23 | LastIndex and Erasure duplicate proofs | @AshwinSekar | |||
mrkPjRg79B2oK2ZLgd7S3AfEJaX9B6gAF3H9aEykRUS | v1.18.0 | generate duplicate proofs for merkle root conflicts | @AshwinSekar | |||
eca6zf6JJRjQsYYPkBHF3N32MTzur4n2WL4QiiacPCL | v1.17.17 | Restrict curve25519 multiscalar multiplication vector lengths | @samkimcrypto | |||
wLckV1a64ngtcKPRGU4S4grVTestXjmNjxBjaKZrAcn | v1.18.0 | cost model uses number of requested write locks | @apfitzge | |||
FNKCMBzYUdjhHyPdsKG2LSmdzH8TCHXn3ytj8RNBS4nG | v1.18.1 | notify state machine of duplicate proofs | @wen-coding |
DO NOT ACTIVATE!
Key | Version | Testnet | Devnet | Description | Owner | Comms Required |
---|---|---|---|---|---|---|
2ry7ygxiYURULZCrypHhveanvP5tzZ4toRwVp89oCNSj | v1.16.0 | Validator applies cost tracker to blocks during replay | @taozhu-chicago, blocked on https://github.com/solana-labs/solana/issues/31379 | |||
EaQpmC6GtRssaZ3PCUM5YksGqUdMLeZ46BQXYtHYakDS | v1.16.0 | include transaction loaded accounts data size in base fee calculation | @taozhu-chicago - block on #27839 and #30366 | Yes | ||
HTW2pSyErTj4BV6KBM9NZ9VBUJVxt7sacNWcf76wtzb3 | v1.17.5 | 277 | 368 | blake3 syscall | @jackcmay blocked on user demand | |
9LZdXeKGeBV6hRLdxS1rHbHoEUsKqesCC2ZAPTPKJAbK | v1.17.0 | 430 | 386 | Increase transaction account lock limit | @jstarry - Blocked for mainnet activation pending benchmarking | |
GDH5TVdbTPUpRnXaRyQqiKUa7uZAbZ28Q2N9bhbKoMLm | v1.17.0 | 419 | loosen cpi restrictions | @jstarry -- blocked by direct mapping and perf/cost modelling | ||
41tVp5qR1XwWRt5WifvtSQyuxtqQWJgEK8w91AtBqSwP | v1.18.0 | Partitioned epoch rewards - blocked on #33888 | @HaoranYi, blocked on RPC support | |||
8GdovDzVwWU5edz2G697bbB7GZjrUc6aQZLWyNNAtHdg | v1.17.1 | Programify feature gate program | @buffalojoec | |||
2URMmUo78tana2quSMcWBvc6tBMZP83zM9gUMjA6tJiv | v1.18.0 | Switch program deployment to SBPFv2 | @Lichtso | |||
7rcw5UtqgDTBBv2EcynNfYckgdAaH1MAsCjKgXMkN7Ri | v1.17.17 | 496 | 556 | enable curve25519 syscalls | @samkim-crypto | |
2KKG3C6RBnxQo9jVVrbzsoSh41TDXLK7gBc9gduyxSzW | v1.17.5 | add Redelegate instruction to stake program | @HaoranYi | |||
EBq48m8irRKuE7ZnMTLvLg2UuGSqhe8s8oMqnmja1fJw | v1.17.5 | enable big modular exponentiation | @samkim-crypto | |||
zk1snxsc6Fh3wsGNbbHAJNHiJoYgF29mMnTSusGx5EJ | v1.17.12 | enable zk token proof program | @samkimcrypto |
DO NOT ACTIVATE!
Key | Version | Testnet | Devnet | Description | Owner | Comms Required |
---|---|---|---|---|---|---|
Gz1aLrbeQ4Q6PTSafCZcGWZXz91yVRi7ASFzFEr1U4sa | v1.14.12 | experiments different turbine fanouts for propagating shreds | @behzadnouri | |||
2oXpeh141pPZCTCFHBsvCwG2BtaHZZAtrVhwaxSy6brS | v1.18.0 | Timely vote credits | @AshwinSekar | Requires community vote, strongly prefer to wait until new feature-gate program doesn't require trusted setup for this vote |
- General
- Feature Gates
- Technical
- Schedule
- Testnet