Skip to content

Feature Gate Activation Schedule

Alexander Meißner edited this page Feb 21, 2024 · 398 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 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

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. 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

Current Schedule

Pending Mainnet Beta activation

Key Version Testnet Devnet Description Owner Comms Required
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
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
FKu1qYwLQSiehz644H6Si65U5ZQ2cp9GxsyFUfYcuADv v1.17.2 594 647 Update hashes per tick 10M @bw-solana

Pending Devnet Activation

Key Version Testnet Devnet Description Owner Comms Required
prpFrMtgNmzaNzkPJg9o753fVvbHKqNrNTm76foJ2wm v1.17.5 596 Validate fee collector account @jstarry

Pending Testnet Activation

Key Version Testnet Devnet Description Owner Comms Required
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

Features are BLOCKED

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
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
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
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

Features are HELD

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