Crate solana_feature_set

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

  1. 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.
  2. 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 to FEATURE_NAMES map.
  3. 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_curveDeprecated
account_hash_ignore_slotDeprecated
accounts_lt_hashDeprecated
add_compute_budget_programDeprecated
add_get_minimum_delegation_instruction_to_stake_programDeprecated
add_get_processed_sibling_instruction_syscallDeprecated
add_new_reserved_account_keysDeprecated
add_set_compute_unit_price_ixDeprecated
add_set_tx_loaded_accounts_data_size_instructionDeprecated
add_shred_type_to_shred_seedDeprecated
allow_commission_decrease_at_any_timeDeprecated
allow_votes_to_directly_update_vote_stateDeprecated
apply_cost_tracker_during_replayDeprecated
bank_transaction_count_fixDeprecated
better_error_codes_for_tx_lamport_checkDeprecated
blake3_syscall_enabledDeprecated
bpf_account_data_direct_mappingDeprecated
cap_accounts_data_allocations_per_transactionDeprecated
cap_bpf_program_instruction_accountsDeprecated
cap_transaction_accounts_data_sizeDeprecated
chained_merkle_conflict_duplicate_proofsDeprecated
check_init_vote_dataDeprecated
check_physical_overlappingDeprecated
check_slice_translation_sizeDeprecated
check_syscall_outputs_do_not_overlapDeprecated
checked_arithmetic_in_fee_validationDeprecated
clean_up_delegation_errorsDeprecated
commission_updates_only_allowed_in_first_half_of_epochDeprecated
compact_vote_state_updatesDeprecated
consume_blockstore_duplicate_proofsDeprecated
cost_model_requested_write_lock_costDeprecated
create_slashing_programDeprecated
credits_auto_rewindDeprecated
curve25519_restrict_msm_lengthDeprecated
curve25519_syscall_enabledDeprecated
dedupe_config_program_signersDeprecated
default_units_per_instructionDeprecated
delay_visibility_of_program_deploymentDeprecated
demote_program_write_locksDeprecated
deplete_cu_meter_on_vm_failureDeprecated
deprecate_legacy_vote_ixsDeprecated
deprecate_rewards_sysvarDeprecated
deprecate_unused_legacy_vote_plumbingDeprecated
disable_account_loader_special_caseDeprecated
disable_bpf_deprecated_load_instructionsDeprecated
disable_bpf_loader_instructionsDeprecated
disable_bpf_unresolved_symbols_at_runtimeDeprecated
disable_builtin_loader_ownership_chainsDeprecated
disable_cpi_setting_executable_and_rent_epochDeprecated
disable_deploy_of_alloc_free_syscallDeprecated
disable_deprecated_loaderDeprecated
disable_fee_calculatorDeprecated
disable_fees_sysvarDeprecated
disable_new_loader_v3_deploymentsDeprecated
disable_partitioned_rent_collectionDeprecated
disable_rehash_for_rent_epochDeprecated
disable_rent_fees_collectionDeprecated
disable_sbpf_v0_executionDeprecated
disable_turbine_fanout_experimentsDeprecated
do_support_reallocDeprecated
drop_legacy_shredsDeprecated
drop_redundant_turbine_pathDeprecated
drop_unchained_merkle_shredsDeprecated
ed25519_precompile_verify_strictDeprecated
ed25519_program_enabledDeprecated
enable_alt_bn128_compression_syscallDeprecated
enable_alt_bn128_syscallDeprecated
enable_big_mod_exp_syscallDeprecated
enable_bpf_loader_extend_program_ixDeprecated
enable_bpf_loader_set_authority_checked_ixDeprecated
enable_chained_merkle_shredsDeprecated
enable_durable_nonceDeprecated
enable_early_verification_of_account_modificationsDeprecated
enable_get_epoch_stake_syscallDeprecated
enable_gossip_duplicate_proof_ingestionDeprecated
enable_loader_v4Deprecated
enable_partitioned_epoch_rewardDeprecated
enable_poseidon_syscallDeprecated
enable_program_redeployment_cooldownDeprecated
enable_request_heap_frame_ixDeprecated
enable_sbpf_v1_deployment_and_executionDeprecated
enable_sbpf_v2_deployment_and_executionDeprecated
enable_sbpf_v3_deployment_and_executionDeprecated
enable_secp256r1_precompileDeprecated
enable_tower_sync_ixDeprecated
enable_transaction_loading_failure_feesDeprecated
enable_turbine_extended_fanout_experimentsDeprecated
enable_turbine_fanout_experimentsDeprecated
enable_vote_address_leader_scheduleDeprecated
enable_zk_proof_from_accountDeprecated
enable_zk_transfer_with_feeDeprecated
epoch_accounts_hashDeprecated
error_on_syscall_bpf_function_hash_collisionsDeprecated
evict_invalid_stakes_cache_entriesDeprecated
executables_incur_cpi_data_costDeprecated
filter_stake_delegation_accountsDeprecated
filter_votes_outside_slot_hashesDeprecated
fix_alt_bn128_multiplication_input_lengthDeprecated
fix_recent_blockhashesDeprecated
fixed_memcpy_nonoverlapping_checkDeprecated
full_inflationDeprecated
get_sysvar_syscall_enabledDeprecated
include_account_index_in_rent_errorDeprecated
include_loaded_accounts_data_size_in_fee_calculationDeprecated
increase_tx_account_lock_limitDeprecated
incremental_snapshot_only_incremental_hash_calculationDeprecated
index_erasure_conflict_duplicate_proofsDeprecated
instructions_sysvar_owned_by_sysvarDeprecated
last_restart_slot_sysvarDeprecated
leave_nonce_on_successDeprecated
libsecp256k1_0_5_upgrade_enabledDeprecated
libsecp256k1_fail_on_bad_countDeprecated
libsecp256k1_fail_on_bad_count2Deprecated
lift_cpi_caller_restrictionDeprecated
limit_max_instruction_trace_lengthDeprecated
limit_secp256k1_recovery_idDeprecated
loosen_cpi_size_restrictionDeprecated
max_tx_account_locksDeprecated
merge_nonce_error_into_system_errorDeprecated
merkle_conflict_duplicate_proofsDeprecated
migrate_address_lookup_table_program_to_core_bpfDeprecated
migrate_config_program_to_core_bpfDeprecated
migrate_feature_gate_program_to_core_bpfDeprecated
migrate_stake_program_to_core_bpfDeprecated
move_precompile_verification_to_svmDeprecated
move_serialized_len_ptr_in_cpiDeprecated
move_stake_and_move_lamports_ixsDeprecated
native_programs_consume_cuDeprecated
no_overflow_rent_distributionDeprecated
nonce_must_be_advanceableDeprecated
nonce_must_be_authorizedDeprecated
nonce_must_be_writableDeprecated
on_load_preserve_rent_epoch_for_rent_exempt_accountsDeprecated
optimize_epoch_boundary_updatesDeprecated
partitioned_epoch_rewards_superfeatureDeprecated
pico_inflationDeprecated
preserve_rent_epoch_for_rent_exempt_accountsDeprecated
prevent_calling_precompiles_as_programsDeprecated
prevent_crediting_accounts_that_end_rent_payingDeprecated
prevent_rent_paying_rent_recipientsDeprecated
quick_bail_on_panicDeprecated
raise_block_limits_to_50mDeprecated
record_instruction_in_transaction_context_pushDeprecated
reduce_required_deploy_balanceDeprecated
reduce_stake_warmup_cooldownDeprecated
reenable_sbpf_v0_executionDeprecated
reject_callx_r10Deprecated
reject_empty_instruction_without_programDeprecated
reject_non_rent_exempt_vote_withdrawsDeprecated
reject_vote_account_close_unless_zero_credit_epochDeprecated
relax_authority_signer_check_for_lookup_table_creationDeprecated
relax_intrabatch_account_locksDeprecated
remaining_compute_units_syscall_enabledDeprecated
remove_accounts_delta_hashDeprecated
remove_accounts_executable_flag_checksDeprecated
remove_bpf_loader_incorrect_program_idDeprecated
remove_congestion_multiplier_from_fee_calculationDeprecated
remove_deprecated_request_unit_ixDeprecated
remove_native_loaderDeprecated
remove_rounding_in_fee_calculationDeprecated
rent_for_sysvarsDeprecated
requestable_heap_sizeDeprecated
require_custodian_for_locked_stake_authorizeDeprecated
require_rent_exempt_accountsDeprecated
require_rent_exempt_split_destinationDeprecated
require_static_program_ids_in_transactionDeprecated
reserve_minimal_cus_for_builtin_instructionsDeprecated
return_data_syscall_enabledDeprecated
revise_turbine_epoch_stakesDeprecated
reward_full_priority_feeDeprecated
round_up_heap_sizeDeprecated
secp256k1_program_enabledDeprecated
secp256k1_recover_syscall_enabledDeprecated
send_to_tpu_vote_portDeprecated
separate_nonce_from_blockhashDeprecated
set_exempt_rent_epoch_maxDeprecated
simplify_alt_bn128_syscall_error_codesDeprecated
simplify_writable_program_account_checkDeprecated
skip_rent_rewritesDeprecated
snapshots_lt_hashDeprecated
sol_log_data_syscall_enabledDeprecated
spl_associated_token_account_v1_0_4Deprecated
spl_associated_token_account_v1_1_0Deprecated
spl_token_v2_multisig_fixDeprecated
spl_token_v2_self_transfer_fixDeprecated
spl_token_v2_set_authority_fixDeprecated
spl_token_v3_3_0_releaseDeprecated
spl_token_v3_4_0Deprecated
stake_allow_zero_undelegated_amountDeprecated
stake_deactivate_delinquent_instructionDeprecated
stake_merge_with_unmatched_credits_observedDeprecated
stake_minimum_delegation_for_rewardsDeprecated
stake_program_advance_activating_credits_observedDeprecated
stake_raise_minimum_delegation_to_1_solDeprecated
stake_split_uses_rent_sysvarDeprecated
stakes_remove_delegation_if_inactiveDeprecated
stop_sibling_instruction_search_at_parentDeprecated
stop_truncating_strings_in_syscallsDeprecated
switch_to_new_elf_parserDeprecated
syscall_saturated_mathDeprecated
system_transfer_zero_checkDeprecated
timely_vote_creditsDeprecated
tx_wide_compute_capDeprecated
update_hashes_per_tickDeprecated
update_hashes_per_tick2Deprecated
update_hashes_per_tick3Deprecated
update_hashes_per_tick4Deprecated
update_hashes_per_tick5Deprecated
update_hashes_per_tick6Deprecated
update_rewards_from_cached_accountsDeprecated
update_syscall_base_costsDeprecated
use_default_units_in_fee_calculationDeprecated
validate_fee_collector_accountDeprecated
verify_retransmitter_signatureDeprecated
verify_tx_signatures_lenDeprecated
versioned_tx_message_enabledDeprecated
vote_authorize_with_seedDeprecated
vote_only_full_fec_setsDeprecated
vote_only_retransmitter_signed_fec_setsDeprecated
vote_stake_checked_instructionsDeprecated
vote_state_add_vote_latencyDeprecated
vote_state_update_credit_per_dequeueDeprecated
vote_state_update_root_fixDeprecated
vote_withdraw_authority_may_change_authorized_voterDeprecated
warp_timestamp_againDeprecated
warp_timestamp_with_a_vengeanceDeprecated
zk_elgamal_proof_program_enabledDeprecated
zk_token_sdk_enabledDeprecated

Structs§

FEATURE_NAMESDeprecated
Map of feature identifiers to user-visible description
FULL_INFLATION_FEATURE_PAIRSDeprecated
Set of feature pairs that once enabled will trigger full inflation
FeatureSetDeprecated
FeatureSet holds the set of currently active/inactive runtime features
FullInflationFeaturePairDeprecated
IDDeprecated
Unique identifier of the current software’s feature set