forked from solana-labs/solana
-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Ryo Onodera edited this page Jun 12, 2023
·
5 revisions
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 |
---|---|---|---|---|
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.
aaaa
Testnet | Devnet | Mainnet Beta |
---|---|---|
v1.14.18 | v1.14.10 | v1.14.0 |
ccccc dd
Key | Version | Testnet | Devnet | Description | Owner |
---|---|---|---|---|---|
4Di3y24QFLt5QEUPZtbnjyfQKfm6ZMTfa6Dw1psfoMKU | v1.14.0 | 326 / 466 | 324 | drops redundant turbine propagation path | @behzadnouri |
7Vced912WrRnfjaiKRiNBcbuFw7RrnLv3E3z95Y4GTNc | v1.14.0 | 402 | 498 | enable early verification of account modifications | @Lichtso |
437r62HoAdUb63amq3D7ENnBLDhHT2xY8eFkLJYVKK4x | v1.14.0 | 348 | 423 | add DeactivateDelinquent instruction to stake program | @mvines |
St8k9dVXP97xT6faW24YmRSYConLbhsMJA4TJTBLmMT | v1.14.0 | 349 | 425 | add GetMinimumDelegation instruction to stake program | @brooksprumo |
sTKz343FM8mqtyGvYWvbLpTThw3ixRM4Xk8QvZ985mw | v1.14.0 | 351 | 426 | allow undelegated stakes to be below the minimum delegation | @joncinque |
BUS12ciZ5gCoFafUHWW8qaFMMtwFQGVxjsDheWLdqBE2 | v1.14.0 | 355 | 432 | automatically rewind stake credits when zero vote-account credits | @CriesofCarrots |
54KAoNiUERNoWWUhTWWwXgym94gzoXFVnHyQwPA18V9A | v1.14.0 | 356 | 433 | fail libsec256k1_verify if count appears wrong | @jackcmay |
G74BkWBzmsByZ1kxHy44H3wjwp5hp7JbrGRuDpco22tY | v1.14.0 | 360 | 434 | fix root in vote state updates | @AshwinSekar |
86HpNqzutEZwLcPxS6EHDcMNYWk6ikhteg9un7Y2PBKE | v1.14.1 | 365 | 437 | Compact vote state updates to lower block size | @AshwinSekar |
CveezY6FDLVBToHDcvJRmtMouqzsmj4UXYh5ths5G5Uv | v1.14.0 | 414 | 443 | Calculate vote credits for VoteStateUpdate per vote dequeue to match credit awards for Vote instruction | @AshwinSekar |
74CoWuBmt3rUVUrCb2JiSTvh6nXyBWUsK4SaMj3CtE3T | v1.14.12 | 415 | 445 | Move serialized_len_ptr in CPI | @Lichtso |
FQnc7U4koHqWgRvFaBJjZnV8VPg6L6wWK33yJeDp4yvV | v1.14.9 | 373 | 441 | stake split instruction uses rent sysvar | @jstarry |
CpkdQmspsaZZ8FVAouQTtTWZkc8eeQ7V3uj7dWz543rZ | v1.14.9 | 385 | 497 | on bank load account, do not try to fix up rent_epoch (this will be a no-op on mnb) | @jeffwashington |
DTVTkmw3JSofd8CJVJte8PXEbxNQ2yZijvVr3pe2APPj | v1.14.9 | 394 | 497 | on accounts hash calculation, do not try to rehash accounts (this will be a no-op on mnb) | @jeffwashington |
6iyggb5MTcsvdcugX7bEKbHV8c6jdLbpHwkncrgLMhfo | v1.14.0 | 399 | 497 | stop adding hashes for skipped slots to recent blockhashes | @jstarry |
9k5ijzTbYPtjzu8wj2ErH9v45xecHzQ1x4PMYMMxFgdM | v1.14.0 | 418 | 505 | cap number of accounts passed to bpf program instructions | @jstarry |
28s7i3htzhahXQKqmS2ExzbEoUypg9krwvtK2M9UWXh9 | v1.14.0 | 420 / 470 | 506 | updates rewards at epoch boundary using cached accounts | @behzadnouri |
8sKQrMQoUHtQSUP83SPG4ta2JDjSAiWs7t5aJ9uEd6To | v1.14.0 | 423 | 509 | use default units per instruction in fee calculation | @taozhu-chicago |
Key | Version | Testnet | Devnet | Description | Owner |
---|---|---|---|---|---|
4UDcAfQ6EcA6bdcadkeHpkarkhZGJ7Bpq7wTAiRMjkoi | v1.14.18 | 474 | disable builtin loader ownership chains | @Lichtso | |
GmC19j9qLn2RFk5NduX6QXaDhVpGncVVBzyM8e9WMz2F | v1.14.0 | 426 | check size when translating slices | @jackcmay | |
79HWsX9rpnnJBPcdNURVqygpMAfxdrAirzAGAVmf92im | v1.14.0 | 428 | disable new deployments of deprecated sol_alloc_free_ syscall | @jackcmay | |
noRuG2kzACwgaY7TVmLRnUNPLKNVQE1fb7X55YWBehp | v1.14.12 | 471 | vote: Prevent commission update in the second half of epochs | @joncinque | |
Bj2jmUsM2iRhfdLLDSTkhM5UQRQvQHm57HSmPibPtEyu | v1.14.18 | 479 | clean up delegation errors | @2501babe |
Key | Version | Testnet | Devnet | Description | Owner |
---|---|---|---|---|---|
EYVpEP7uzH1CoXzbD6PubGhYmnxRXPeq3PPsm1ba3gpo | v1.16.0 | stop sibling instruction search at parent | @Lichtso | ||
B9cdB55u4jQsDNsdTK525yE9dmSc5Ga7YBaBrDFvEhM9 | v1.16.0 | disable CPI setting is_executable and rent_epoch |
@Lichtso | ||
9gxu85LYRAcZL38We8MYJ4A9AwgBBPtVBAqebMcT1241 | v1.16.0 | cap accounts data allocations per transaction | @brooksprumo | ||
GQALDaC48fEhZGWRj9iL5Q889emJKcj3aCvHF7VCbbF4 | v1.16.0 | limit max instruction trace length | @Lichtso | ||
SVn36yVApPLYsa8koK3qUcy14zXDnqkNYWyUh1f4oK1. | v1.16.0 | ignore slot when calculating an account hash | @jeffwashington | ||
5GpmAKxaGsWWbPp4bNXFLJxZVvG92ctxf7jQnzTQjF3n | v1.16.0 | Epoch Accounts Hash | @brooksprumo | ||
J4HFT8usBxpcF63y46t1upYobJgChmKyZPm5uTBRg25Z | v1.16.0 | enable program redeployment cooldown | @Lichtso | ||
7rcw5UtqgDTBBv2EcynNfYckgdAaH1MAsCjKgXMkN7Ri | v1.16.0 | enable curve25519 syscalls | @samkim-crypto | ||
EfhYd3SafzGT472tYQDUc4dPd2xdEfKs5fwkowUgVt4W | v1.16.0 | Remove support for RequestUnitsDeprecated instruction | @taozhu-chicago | ||
3uFHb9oKdGfgZGJK9EHaAXN4USvnQtAFC13Fh5gGFS5B | v1.16.0 | Update hashes per tick | @brennanwatt | ||
EBq48m8irRKuE7ZnMTLvLg2UuGSqhe8s8oMqnmja1fJw | v1.16.0 | enable big modular exponentiation | @samkim-crypto | ||
DdLwVYuvDz26JohmgSbA7mjpJFgX5zP2dkp8qsF2C33V | v1.16.0 | Limit loaded data per transaction to a fixed cap | @taozhu-chicago | ||
A8xyMHZovGXFkorFqEmVH2PKGLiBip5JD7jt4zsUWo4H | v1.16.0 | remove congestion multiplier | @taozhu-chicago | ||
8Zs9W7D9MpSEtUWSQdGniZk2cNmV22y6FLJwCx53asme | v1.16.0 | enable the ExtendProgram ix for the bpf upgradeable loader | @jstarry | ||
Fab5oP3DmsLYCiQZXdjyqT3ukFFPrsmqhXU4WU1AWVVF | v1.16.0 | prevent rent-paying rent recipients | @CriesofCarrots | ||
2ry7ygxiYURULZCrypHhveanvP5tzZ4toRwVp89oCNSj | v1.16.0 | Validator applies cost tracker to blocks during replay | @taozhu-chicago | ||
G6vbf1UBok8MWb8m25ex86aoQHeKTzDKzuZADHkShqm6 | v1.16.0 | add compute budget instruction for setting account data size per transaction | @taozhu-chicago | ||
Cdkc8PPTeTNUPoZEfCY5AyetUrEdkZtNPMgz58nqyaHD | v1.16.0 | switch to new ELF parser | @Lichtso | ||
CE2et8pqgyQMP2mQRg3CgvX8nJBKUArMu3wfiQiQKY1y | v1.16.0 | round up heap size when calculating heap cost | @taozhu-chicago | ||
2HmTkCj9tXuPE4ueHzdD7jPeMf9JGCoZh5AsyoATiWEe | v1.16.0 | stop incorrectly throwing IncorrectProgramId in bpf_loader | @Lichtso | ||
A16q37opZdQMCbe5qJ6xpBB9usykfv8jZaMkxvZQi4GJ | v1.16.0 | enable alt_bn128 syscall | @Lichtso | ||
EaQpmC6GtRssaZ3PCUM5YksGqUdMLeZ46BQXYtHYakDS | v1.16.0 | include transaction loaded accounts data size in base fee calculation | @taozhu-chicago | ||
8pgXCMNXC8qyEFypuwpXyRxLXZdpM4Qo72gJ6k87A6wL | v1.16.0 | Native program should consume compute units | @taozhu-chicago | ||
5ZCcFAzJ1zsFKe1KSZa9K92jhx7gkcKj97ci2DBo1vwj | v1.16.0 | Simplify checks performed for writable upgradeable program accounts | @pgarg66 | ||
16FMCmgLzCNNz6eTwGanbyN2ZxvTBSLuQ6DZhgeMshg | v1.16.0 | stop truncating strings in syscalls | @Lichtso | ||
5Pecy6ie6XGm22pc9d4P9W5c31BugcFBuy6hsP2zkETv | v1.16.0 | checked arithmetic in fee validation | @taozhu-chicago | ||
25vqsfjk7Nv1prsQJmA4Xu1bN61s8LXCBGUPp8Rfy1UF | v1.16.0 | Incremental Accounts Hash | @apfitzge |
DO NOT ACTIVATE!
Key | Version | Testnet | Devnet | Description | Owner |
---|---|---|---|---|---|
Ff8b1fBeB86q8cjq47ZhsQLgv5EkHu3G1C99zjUfAzrq | v1.14.1 | 315 / | 454 | new vote state update instructions | @AshwinSekar - Needs to be re-activated on testnet to test updated behavior. Blocked until de-activated on testnet during next downgrade restart |
3EPmAX94PvVJCjMeFfRFvj4avqCPL8vv3TGsZQg7ydMx | v1.14.0 | 435 | add Redelegate instruction to stake program | @mvines - blocked on GHSA | |
9LZdXeKGeBV6hRLdxS1rHbHoEUsKqesCC2ZAPTPKJAbK | v1.14.3 | 430 | 386 | Increase transaction account lock limit | @jstarry - Blocked for mainnet activation pending benchmarking |
3NKRSwpySNwD3TvP5pHnRmkAQRsdkXWRr1WaQh8p4PWX | v1.14.0 | 413 | 502 | reject callx r10 bpf instructions | @jackcmay blocked on RBPF feature transition fix |
8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b | v1.14.0 | 416 | 502 | error on syscall / bpf function hash collisions | @jackcmay blocked on RBPF feature transition fix |
HTW2pSyErTj4BV6KBM9NZ9VBUJVxt7sacNWcf76wtzb3 | v1.10.0 | 277 | 368 | blake3 syscall | @jackcmay blocked on RBPF feature transition fix and user demand |
GDH5TVdbTPUpRnXaRyQqiKUa7uZAbZ28Q2N9bhbKoMLm | v1.14.0 | 419 | loosen cpi restrictions | @jstarry -- blocked by direct mapping and perf/cost modelling | |
D31EFnLgdiysi84Woo3of4JMu7VmasUS3Z7j9HYXCeLY | v1.14.12 | experiments different turbine fanouts for propagating shreds | @behzadnouri, blocked on merkle shreds rollout |
DO NOT ACTIVATE!
Key | Version | Testnet | Devnet | Description | Owner |
---|---|---|---|---|---|
Gz1aLrbeQ4Q6PTSafCZcGWZXz91yVRi7ASFzFEr1U4sa | v1.14.12 | experiments different turbine fanouts for propagating shreds | @behzadnouri, can be skipped for now | ||
84zy5N23Q9vTZuLc9h1HWUtyM9yCFV2SCmyP9W9C3yHZ | v1.14.13 | adds feature to (temporarily) drop merkle shreds from testnet #29711 | @behzadnouri, can be skipped for now | ||
HyNQzc7TMNmRhpVHXqDGjpsHzeQie82mDQXSF9hj7nAH | v1.14.13 | adds feature to (temporarily) drop merkle shreds from testnet #29711 | @behzadnouri, can be skipped for now |