Skip to content
Ryo Onodera edited this page Jun 12, 2023 · 5 revisions

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

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 Floor

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

Current Schedule

Pending Mainnet Beta activation

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

Pending Devnet Activation

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

Pending Testnet Activation

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

Features are BLOCKED

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

Feature are HELD

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