Feature Gate Activation Schedule - anza-xyz/agave GitHub Wiki

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.18.13 v1.18.13 v1.18.13
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
FL9RsQA6TVUoh5xJQ9d936RHSebA1NLQqe3Zv9sXZRpr v1.18.13 663 Enable Poseidon hash syscall @samkim-crypto

Pending Devnet Activation

Key Version Testnet Devnet Description Owner Comms Required
3NKRSwpySNwD3TvP5pHnRmkAQRsdkXWRr1WaQh8p4PWX v1.18.13 502 reject callx r10 bpf instructions @jackcmay

Pending Testnet Activation

Key Version Testnet Devnet Description Owner Comms Required
8199Q2gMD2kwgfopK5qqVWuDbegLgpuFUFHCcUJQDN8b v1.18.13 502 error on syscall / bpf function hash collisions @jackcmay
HooKD5NC9QNxk25QuzCssB8ecrEzGt6eXEPBUxWp1LaR v1.18.13 last restart slot sysvar/syscall @mvines
6Uf8S75PVh91MYgPQSHnjRAPQq6an5BDv9vomrCwDqLe v1.18.7 deprecate unused legacy vote tx plumbing @AshwinSekar
mrkPjRg79B2oK2ZLgd7S3AfEJaX9B6gAF3H9aEykRUS v1.18.0 generate duplicate proofs for merkle root conflicts @AshwinSekar
FNKCMBzYUdjhHyPdsKG2LSmdzH8TCHXn3ytj8RNBS4nG v1.18.1 notify state machine of duplicate proofs @wen-coding
tvcF6b1TRz353zKuhBjinZkKzjmihXmBAHJdjNYw1sQ v1.18.8 Timely vote credits @AshwinSekar Passed governance vote
chaie9S2zVfuxJKNRGkyTDokLwWxx6kD2ZLsqQHaDD8 v1.18.12 Generate duplicate proofs for chained merkle root conflicts @AshwinSekar
decoMktMcnmiq6t3u7g5BfgcQu91nKZr6RvMYf9z1Jb v1.18.0 Allow commission decreases at any time @joncinque
FuS3FPfJDKSNot99ECLXtp3rueq36hMNStJkPJwWodLh v2.0.0 error on invalid curve/op id @samkim-crypto
BtVN7YjDzNE6Dk7kTT7YTDgMNUZTNgiSJgsdzAeTg2jF v2.0.0 Removing unwanted rounding in fee calculation #34982 @tao-stones
3opE3EzAKnUftUDURkzMgwpNgimBAypW1mNDYH4x4Zg7 v2.0.0 Reward full priority fee to validators @tao-stones Passed community vote
CGB2jM8pwZkeeiXQ66kBMyBR6Np61mggL7XUsmLjVcrw v1.18.0 skip rent rewrites @jeffwashington
2ry7ygxiYURULZCrypHhveanvP5tzZ4toRwVp89oCNSj v2.0.0 Validator applies cost tracker to blocks during replay @tao-stones
zkhiy5oLowR7HY4zogXjCjeMXyruLqBwSWH21qcFtnv v2.0.0 Enable ZK ElGamal Proof program @samkim-crypto

Features are BLOCKED

DO NOT ACTIVATE!

Key Version Testnet Devnet Description Owner Comms Required
EaQpmC6GtRssaZ3PCUM5YksGqUdMLeZ46BQXYtHYakDS v1.16.0 include transaction loaded accounts data size in base fee calculation @taozhu-chicago - requires community gov vote 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
9bn2vTJUsUcnpiZWbu2woSKtTGW3ErZC9ERv88SDqQjK v2.0.0 Partitioned epoch rewards @CriesofCarrots, blocked on implementation of new SIMD
8GdovDzVwWU5edz2G697bbB7GZjrUc6aQZLWyNNAtHdg v1.17.1 Programify feature gate program @buffalojoec
2URMmUo78tana2quSMcWBvc6tBMZP83zM9gUMjA6tJiv v1.18.0 Switch program deployment to SBPFv2 @Lichtso
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
EenyoWx9UMXYKpR8mW5Jmfmy2fRjzUtM7NduYMY8bx33 v1.18.0 Enable account data direct mapping @alessandrod
CJzY83ggJHqPGDq8VisV3U91jDJLuEaALZooBrXtnnLU v1.18.0 Disable rent fees collection @Haoran Yi
wLckV1a64ngtcKPRGU4S4grVTestXjmNjxBjaKZrAcn v1.18.0 cost model uses number of requested write locks @apfitzge (held by @willhickey)
CLCoTADvV64PSrnR6QXty6Fwrt9Xc6EdxSJE4wLRePjq v2.0.0 SIMD0127: sol_get_sysvar @2501babe (held by @willhickey)
5TuppMutoyzhUSfuYdhgzD47F92GL1g89KpCZQKqedxP v1.18.13 sol_remaining_compute_units syscall @mvines (held by @willhickey)