Skip to content

Feature Activation Schedule

Jeff Washington (jwash) edited this page Oct 24, 2022 · 149 revisions

Feature Activation Schedule

The scheduling of feature 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 activation so far has been ad-hoc, to help organize and communicate the upcoming feature activations the following table will indicate which features will be activated next and on which networks.

  • Features are ordered by priority, highest at the top, priority might change and circumvent activation.
  • When a feature is activated on a network, the epoch will be added to the table by the person who activated the feature.
  • The feature in the first row is implicitly next to be activated on mainnet beta
  • Once a feature is activated on mainnet beta the person who activated the feature must remove it from the table.
  • Feature owners are responsible for inserting their features into this list following the above principles, exceptions will occur, get consensus from others before re-ordering priority.
  • Some features will need to be soaked before being activated on the next network, soaking will delay all lower-priority features, exceptions will occur.
  • Features should be activated one at a time per network, exceptions will occur.

To determine which feature will be activated next:

  • Features must be activated on Testnet, then Devnet, then mainnet beta
  • For each network, the next feature that has not been enabled will be enabled next

Example

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

Version Ceiling

The version ceiling is the currently recommended software version for a cluster. A feature introduced in any higher software version is incompatible with the given cluster

Testnet Devnet Mainnet Beta
v1.14.4 v1.13.2 v1.10.39

Current Schedule

Key Version Testnet Devnet Description Owner
Features below are pending Mainnet Beta activation - - - - -
ALBk3EWdeAg2WAGf6GPDUf1nynyNqCdEVmgouG7rpuCj v1.10.29 339 342 prevent closing active vote accounts @willhickey
4Di3y24QFLt5QEUPZtbnjyfQKfm6ZMTfa6Dw1psfoMKU v1.10.10 326 324 drops redundant turbine propagation path @behzadnouri
HTW2pSyErTj4BV6KBM9NZ9VBUJVxt7sacNWcf76wtzb3 v1.10.0 277 368 blake3 syscall @jstarry
HH3MUYReL2BvqqA3oEcAa7txju5GY6G4nxJ51zvsEjEZ v1.10.34 350 372 preserves rent_epoch for rent exempt accounts @behzadnouri
812kqX67odAp5NFwM8D2N24cku7WTm9CHUTFUXaDkWPn v1.10.32 353 386 restricts rent-paying accounts lifetime extension @behzadnouri
sigrs6u1EWeHuoKFkY8RR7qcSsPmrAeBBPESyf5pnYe v1.10.35 357 375 sign repair requests @jbiseda
3gtZPqvPpsbXZVCx6hceMfWxtsmrjMzmg8C7PLKSxS2d v1.10.0 315 387 filter votes outside of slot hashes @AshwinSekar
Features below are pending Devnet activation - - - - -
437r62HoAdUb63amq3D7ENnBLDhHT2xY8eFkLJYVKK4x v1.11.0 348 add DeactivateDelinquent instruction to stake program @mvines
St8k9dVXP97xT6faW24YmRSYConLbhsMJA4TJTBLmMT v1.11.0 349 add GetMinimumDelegation instruction to stake program @brooksprumo
sTKz343FM8mqtyGvYWvbLpTThw3ixRM4Xk8QvZ985mw v1.11.0 351 allow undelegated stakes to be below the minimum delegation @joncinque
BUS12ciZ5gCoFafUHWW8qaFMMtwFQGVxjsDheWLdqBE2 v1.11.0 355 automatically rewind stake credits when zero vote-account credits @CriesofCarrots
54KAoNiUERNoWWUhTWWwXgym94gzoXFVnHyQwPA18V9A v1.11.2 356 fail libsec256k1_verify if count appears wrong @jackcmay
G74BkWBzmsByZ1kxHy44H3wjwp5hp7JbrGRuDpco22tY v1.11.8 360 fix root in vote state updates @carllin
3EPmAX94PvVJCjMeFfRFvj4avqCPL8vv3TGsZQg7ydMx v1.11.5 361 add Redelegate instruction to stake program @mvines
Ff8b1fBeB86q8cjq47ZhsQLgv5EkHu3G1C99zjUfAzrq v1.14.1 315 new vote state update instructions @AshwinSekar
86HpNqzutEZwLcPxS6EHDcMNYWk6ikhteg9un7Y2PBKE v1.14.1 365 Compact vote state updates to lower block size @AshwinSekar
FQnc7U4koHqWgRvFaBJjZnV8VPg6L6wWK33yJeDp4yvV v1.11.0 373 stake split instruction uses rent sysvar @jstarry
GTUMCZ8LTNxVfxdrw7ZsDFTxXb7TutYkzJnFwinpE6dg v1.10.4 379 disable the deprecated BPF loader @jackcmay
Features below are pending Testnet activation - - - - -
7rcw5UtqgDTBBv2EcynNfYckgdAaH1MAsCjKgXMkN7Ri v1.10.18 enable curve25519 syscalls @samkim-crypto
6iyggb5MTcsvdcugX7bEKbHV8c6jdLbpHwkncrgLMhfo v1.11.0 stop adding hashes for skipped slots to recent blockhashes @jstarry
3NKRSwpySNwD3TvP5pHnRmkAQRsdkXWRr1WaQh8p4PWX v1.11.0 reject callx r10 bpf instructions @jackcmay
8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b v1.11.0 error on syscall / bpf function hash collisions @jackcmay
7Vced912WrRnfjaiKRiNBcbuFw7RrnLv3E3z95Y4GTNc v1.11.4 enable early verification of account modifications @Lichtso
9k5ijzTbYPtjzu8wj2ErH9v45xecHzQ1x4PMYMMxFgdM v1.11.4 cap number of accounts passed to bpf program instructions @jstarry
GDH5TVdbTPUpRnXaRyQqiKUa7uZAbZ28Q2N9bhbKoMLm v1.11.5 loosen cpi restrictions @jstarry
B9cdB55u4jQsDNsdTK525yE9dmSc5Ga7YBaBrDFvEhM9 v1.12.0 disable CPI setting is_executable and rent_epoch @Lichtso
CveezY6FDLVBToHDcvJRmtMouqzsmj4UXYh5ths5G5Uv v1.11.0 Calculate vote credits for VoteStateUpdate per vote dequeue to match credit awards for Vote instruction @AshwinSekar
28s7i3htzhahXQKqmS2ExzbEoUypg9krwvtK2M9UWXh9 v1.11.0 updates rewards at epoch boundary using cached accounts @behzadnouri
8sKQrMQoUHtQSUP83SPG4ta2JDjSAiWs7t5aJ9uEd6To v1.11.5 use default units per instruction in fee calculation @taozhu-chicago
9gxu85LYRAcZL38We8MYJ4A9AwgBBPtVBAqebMcT1241 v1.12.0 cap accounts data allocations per transaction @brooksprumo
GQALDaC48fEhZGWRj9iL5Q889emJKcj3aCvHF7VCbbF4 v1.15.0 limit max instruction trace length @Lichtso
8Zs9W7D9MpSEtUWSQdGniZk2cNmV22y6FLJwCx53asme v1.14.3 enable the ExtendProgram ix for the bpf upgradeable loader @jstarry
GDH5TVdbTPUpRnXaRyQqiKUa7uZAbZ28Q2N9bhbKoMLm v1.14.0 Loosen CPI restrictions and charge compute for ix data len @jstarry
9LZdXeKGeBV6hRLdxS1rHbHoEUsKqesCC2ZAPTPKJAbK v1.14.3 Increase transaction account lock limit @jstarry
SVn36yVApPLYsa8koK3qUcy14zXDnqkNYWyUh1f4oK1. v1.15.0 ignore slot when calculating an account hash @jeffwashington
5GpmAKxaGsWWbPp4bNXFLJxZVvG92ctxf7jQnzTQjF3n v1.15.0 Epoch Accounts Hash @brooksprumo
CpkdQmspsaZZ8FVAouQTtTWZkc8eeQ7V3uj7dWz543rZ v1.14.? on bank load account, do not try to fix up rent_epoch (this will be a no-op on mnb) @jeffwashington