👎Deprecated since 2.2.5: Use agave-feature-set instead
Expand description
Collection of all runtime features.
Steps to add a new feature are outlined below. Note that these steps only cover the process of getting a feature into the core Solana code.
- For features that are unambiguously good (ie bug fixes), these steps are sufficient.
- For features that should go up for community vote (ie fee structure changes), more information on the additional steps to follow can be found at: https://spl.solana.com/feature-proposal#feature-proposal-life-cycle
- Generate a new keypair with
solana-keygen new --outfile feature.json --no-passphrase
- Keypairs should be held by core contributors only. If you’re a non-core contributor going through these steps, the PR process will facilitate a keypair holder being picked. That person will generate the keypair, provide pubkey for PR, and ultimately enable the feature.
- Add a public module for the feature, specifying keypair pubkey as the id with
solana_pubkey::declare_id!()
within the module. Additionally, add an entry toFEATURE_NAMES
map. - Add desired logic to check for and switch on feature availability.
For more information on how features are picked up, see comments for Feature
.
Modules§
- abort_
on_ invalid_ curve Deprecated - account_
hash_ ignore_ slot Deprecated - accounts_
lt_ hash Deprecated - add_
compute_ budget_ program Deprecated - add_
get_ minimum_ delegation_ instruction_ to_ stake_ program Deprecated - add_
get_ processed_ sibling_ instruction_ syscall Deprecated - add_
new_ reserved_ account_ keys Deprecated - add_
set_ compute_ unit_ price_ ix Deprecated - add_
set_ tx_ loaded_ accounts_ data_ size_ instruction Deprecated - add_
shred_ type_ to_ shred_ seed Deprecated - allow_
commission_ decrease_ at_ any_ time Deprecated - allow_
votes_ to_ directly_ update_ vote_ state Deprecated - apply_
cost_ tracker_ during_ replay Deprecated - bank_
transaction_ count_ fix Deprecated - better_
error_ codes_ for_ tx_ lamport_ check Deprecated - blake3_
syscall_ enabled Deprecated - bpf_
account_ data_ direct_ mapping Deprecated - cap_
accounts_ data_ allocations_ per_ transaction Deprecated - cap_
bpf_ program_ instruction_ accounts Deprecated - cap_
transaction_ accounts_ data_ size Deprecated - chained_
merkle_ conflict_ duplicate_ proofs Deprecated - check_
init_ vote_ data Deprecated - check_
physical_ overlapping Deprecated - check_
slice_ translation_ size Deprecated - check_
syscall_ outputs_ do_ not_ overlap Deprecated - checked_
arithmetic_ in_ fee_ validation Deprecated - clean_
up_ delegation_ errors Deprecated - commission_
updates_ only_ allowed_ in_ first_ half_ of_ epoch Deprecated - compact_
vote_ state_ updates Deprecated - consume_
blockstore_ duplicate_ proofs Deprecated - cost_
model_ requested_ write_ lock_ cost Deprecated - create_
slashing_ program Deprecated - credits_
auto_ rewind Deprecated - curve25519_
restrict_ msm_ length Deprecated - curve25519_
syscall_ enabled Deprecated - dedupe_
config_ program_ signers Deprecated - default_
units_ per_ instruction Deprecated - delay_
visibility_ of_ program_ deployment Deprecated - demote_
program_ write_ locks Deprecated - deplete_
cu_ meter_ on_ vm_ failure Deprecated - deprecate_
legacy_ vote_ ixs Deprecated - deprecate_
rewards_ sysvar Deprecated - deprecate_
unused_ legacy_ vote_ plumbing Deprecated - disable_
account_ loader_ special_ case Deprecated - disable_
bpf_ deprecated_ load_ instructions Deprecated - disable_
bpf_ loader_ instructions Deprecated - disable_
bpf_ unresolved_ symbols_ at_ runtime Deprecated - disable_
builtin_ loader_ ownership_ chains Deprecated - disable_
cpi_ setting_ executable_ and_ rent_ epoch Deprecated - disable_
deploy_ of_ alloc_ free_ syscall Deprecated - disable_
deprecated_ loader Deprecated - disable_
fee_ calculator Deprecated - disable_
fees_ sysvar Deprecated - disable_
new_ loader_ v3_ deployments Deprecated - disable_
partitioned_ rent_ collection Deprecated - disable_
rehash_ for_ rent_ epoch Deprecated - disable_
rent_ fees_ collection Deprecated - disable_
sbpf_ v0_ execution Deprecated - disable_
turbine_ fanout_ experiments Deprecated - do_
support_ realloc Deprecated - drop_
legacy_ shreds Deprecated - drop_
redundant_ turbine_ path Deprecated - drop_
unchained_ merkle_ shreds Deprecated - ed25519_
precompile_ verify_ strict Deprecated - ed25519_
program_ enabled Deprecated - enable_
alt_ bn128_ compression_ syscall Deprecated - enable_
alt_ bn128_ syscall Deprecated - enable_
big_ mod_ exp_ syscall Deprecated - enable_
bpf_ loader_ extend_ program_ ix Deprecated - enable_
bpf_ loader_ set_ authority_ checked_ ix Deprecated - enable_
chained_ merkle_ shreds Deprecated - enable_
durable_ nonce Deprecated - enable_
early_ verification_ of_ account_ modifications Deprecated - enable_
get_ epoch_ stake_ syscall Deprecated - enable_
gossip_ duplicate_ proof_ ingestion Deprecated - enable_
loader_ v4 Deprecated - enable_
partitioned_ epoch_ reward Deprecated - enable_
poseidon_ syscall Deprecated - enable_
program_ redeployment_ cooldown Deprecated - enable_
request_ heap_ frame_ ix Deprecated - enable_
sbpf_ v1_ deployment_ and_ execution Deprecated - enable_
sbpf_ v2_ deployment_ and_ execution Deprecated - enable_
sbpf_ v3_ deployment_ and_ execution Deprecated - enable_
secp256r1_ precompile Deprecated - enable_
tower_ sync_ ix Deprecated - enable_
transaction_ loading_ failure_ fees Deprecated - enable_
turbine_ extended_ fanout_ experiments Deprecated - enable_
turbine_ fanout_ experiments Deprecated - enable_
vote_ address_ leader_ schedule Deprecated - enable_
zk_ proof_ from_ account Deprecated - enable_
zk_ transfer_ with_ fee Deprecated - epoch_
accounts_ hash Deprecated - error_
on_ syscall_ bpf_ function_ hash_ collisions Deprecated - evict_
invalid_ stakes_ cache_ entries Deprecated - executables_
incur_ cpi_ data_ cost Deprecated - filter_
stake_ delegation_ accounts Deprecated - filter_
votes_ outside_ slot_ hashes Deprecated - fix_
alt_ bn128_ multiplication_ input_ length Deprecated - fix_
recent_ blockhashes Deprecated - fixed_
memcpy_ nonoverlapping_ check Deprecated - full_
inflation Deprecated - get_
sysvar_ syscall_ enabled Deprecated - include_
account_ index_ in_ rent_ error Deprecated - include_
loaded_ accounts_ data_ size_ in_ fee_ calculation Deprecated - increase_
tx_ account_ lock_ limit Deprecated - incremental_
snapshot_ only_ incremental_ hash_ calculation Deprecated - index_
erasure_ conflict_ duplicate_ proofs Deprecated - instructions_
sysvar_ owned_ by_ sysvar Deprecated - last_
restart_ slot_ sysvar Deprecated - leave_
nonce_ on_ success Deprecated - libsecp256k1_
0_ 5_ upgrade_ enabled Deprecated - libsecp256k1_
fail_ on_ bad_ count Deprecated - libsecp256k1_
fail_ on_ bad_ count2 Deprecated - lift_
cpi_ caller_ restriction Deprecated - limit_
max_ instruction_ trace_ length Deprecated - limit_
secp256k1_ recovery_ id Deprecated - loosen_
cpi_ size_ restriction Deprecated - max_
tx_ account_ locks Deprecated - merge_
nonce_ error_ into_ system_ error Deprecated - merkle_
conflict_ duplicate_ proofs Deprecated - migrate_
address_ lookup_ table_ program_ to_ core_ bpf Deprecated - migrate_
config_ program_ to_ core_ bpf Deprecated - migrate_
feature_ gate_ program_ to_ core_ bpf Deprecated - migrate_
stake_ program_ to_ core_ bpf Deprecated - move_
precompile_ verification_ to_ svm Deprecated - move_
serialized_ len_ ptr_ in_ cpi Deprecated - move_
stake_ and_ move_ lamports_ ixs Deprecated - native_
programs_ consume_ cu Deprecated - no_
overflow_ rent_ distribution Deprecated - nonce_
must_ be_ advanceable Deprecated - nonce_
must_ be_ authorized Deprecated - nonce_
must_ be_ writable Deprecated - on_
load_ preserve_ rent_ epoch_ for_ rent_ exempt_ accounts Deprecated - optimize_
epoch_ boundary_ updates Deprecated - partitioned_
epoch_ rewards_ superfeature Deprecated - pico_
inflation Deprecated - preserve_
rent_ epoch_ for_ rent_ exempt_ accounts Deprecated - prevent_
calling_ precompiles_ as_ programs Deprecated - prevent_
crediting_ accounts_ that_ end_ rent_ paying Deprecated - prevent_
rent_ paying_ rent_ recipients Deprecated - quick_
bail_ on_ panic Deprecated - raise_
block_ limits_ to_ 50m Deprecated - record_
instruction_ in_ transaction_ context_ push Deprecated - reduce_
required_ deploy_ balance Deprecated - reduce_
stake_ warmup_ cooldown Deprecated - reenable_
sbpf_ v0_ execution Deprecated - reject_
callx_ r10 Deprecated - reject_
empty_ instruction_ without_ program Deprecated - reject_
non_ rent_ exempt_ vote_ withdraws Deprecated - reject_
vote_ account_ close_ unless_ zero_ credit_ epoch Deprecated - relax_
authority_ signer_ check_ for_ lookup_ table_ creation Deprecated - relax_
intrabatch_ account_ locks Deprecated - remaining_
compute_ units_ syscall_ enabled Deprecated - remove_
accounts_ delta_ hash Deprecated - remove_
accounts_ executable_ flag_ checks Deprecated - remove_
bpf_ loader_ incorrect_ program_ id Deprecated - remove_
congestion_ multiplier_ from_ fee_ calculation Deprecated - remove_
deprecated_ request_ unit_ ix Deprecated - remove_
native_ loader Deprecated - remove_
rounding_ in_ fee_ calculation Deprecated - rent_
for_ sysvars Deprecated - requestable_
heap_ size Deprecated - require_
custodian_ for_ locked_ stake_ authorize Deprecated - require_
rent_ exempt_ accounts Deprecated - require_
rent_ exempt_ split_ destination Deprecated - require_
static_ program_ ids_ in_ transaction Deprecated - reserve_
minimal_ cus_ for_ builtin_ instructions Deprecated - return_
data_ syscall_ enabled Deprecated - revise_
turbine_ epoch_ stakes Deprecated - reward_
full_ priority_ fee Deprecated - round_
up_ heap_ size Deprecated - secp256k1_
program_ enabled Deprecated - secp256k1_
recover_ syscall_ enabled Deprecated - send_
to_ tpu_ vote_ port Deprecated - separate_
nonce_ from_ blockhash Deprecated - set_
exempt_ rent_ epoch_ max Deprecated - simplify_
alt_ bn128_ syscall_ error_ codes Deprecated - simplify_
writable_ program_ account_ check Deprecated - skip_
rent_ rewrites Deprecated - snapshots_
lt_ hash Deprecated - sol_
log_ data_ syscall_ enabled Deprecated - spl_
associated_ token_ account_ v1_ 0_ 4 Deprecated - spl_
associated_ token_ account_ v1_ 1_ 0 Deprecated - spl_
token_ v2_ multisig_ fix Deprecated - spl_
token_ v2_ self_ transfer_ fix Deprecated - spl_
token_ v2_ set_ authority_ fix Deprecated - spl_
token_ v3_ 3_ 0_ release Deprecated - spl_
token_ v3_ 4_ 0 Deprecated - stake_
allow_ zero_ undelegated_ amount Deprecated - stake_
deactivate_ delinquent_ instruction Deprecated - stake_
merge_ with_ unmatched_ credits_ observed Deprecated - stake_
minimum_ delegation_ for_ rewards Deprecated - stake_
program_ advance_ activating_ credits_ observed Deprecated - stake_
raise_ minimum_ delegation_ to_ 1_ sol Deprecated - stake_
split_ uses_ rent_ sysvar Deprecated - stakes_
remove_ delegation_ if_ inactive Deprecated - stop_
sibling_ instruction_ search_ at_ parent Deprecated - stop_
truncating_ strings_ in_ syscalls Deprecated - switch_
to_ new_ elf_ parser Deprecated - syscall_
saturated_ math Deprecated - system_
transfer_ zero_ check Deprecated - timely_
vote_ credits Deprecated - tx_
wide_ compute_ cap Deprecated - update_
hashes_ per_ tick Deprecated - update_
hashes_ per_ tick2 Deprecated - update_
hashes_ per_ tick3 Deprecated - update_
hashes_ per_ tick4 Deprecated - update_
hashes_ per_ tick5 Deprecated - update_
hashes_ per_ tick6 Deprecated - update_
rewards_ from_ cached_ accounts Deprecated - update_
syscall_ base_ costs Deprecated - use_
default_ units_ in_ fee_ calculation Deprecated - validate_
fee_ collector_ account Deprecated - verify_
retransmitter_ signature Deprecated - verify_
tx_ signatures_ len Deprecated - versioned_
tx_ message_ enabled Deprecated - vote_
authorize_ with_ seed Deprecated - vote_
only_ full_ fec_ sets Deprecated - vote_
only_ retransmitter_ signed_ fec_ sets Deprecated - vote_
stake_ checked_ instructions Deprecated - vote_
state_ add_ vote_ latency Deprecated - vote_
state_ update_ credit_ per_ dequeue Deprecated - vote_
state_ update_ root_ fix Deprecated - vote_
withdraw_ authority_ may_ change_ authorized_ voter Deprecated - warp_
timestamp_ again Deprecated - warp_
timestamp_ with_ a_ vengeance Deprecated - zk_
elgamal_ proof_ program_ enabled Deprecated - zk_
token_ sdk_ enabled Deprecated
Structs§
- FEATURE_
NAMES Deprecated - Map of feature identifiers to user-visible description
- FULL_
INFLATION_ FEATURE_ PAIRS Deprecated - Set of feature pairs that once enabled will trigger full inflation
- Feature
Set Deprecated FeatureSet
holds the set of currently active/inactive runtime features- Full
Inflation Feature Pair Deprecated - ID
Deprecated - Unique identifier of the current software’s feature set