Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable random beacon in testnet #17881

Merged
merged 6 commits into from
May 23, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 11 additions & 1 deletion crates/sui-protocol-config/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use tracing::{info, warn};

/// The minimum and maximum protocol versions supported by this build.
const MIN_PROTOCOL_VERSION: u64 = 1;
const MAX_PROTOCOL_VERSION: u64 = 46;
const MAX_PROTOCOL_VERSION: u64 = 47;

// Record history of protocol version allocations here:
//
Expand Down Expand Up @@ -129,6 +129,7 @@ const MAX_PROTOCOL_VERSION: u64 = 46;
// Enable Leader Scoring & Schedule Change for Mysticeti consensus.
// Version 46: Enable native bridge in testnet
// Enable resharing at the same initial shared version.
// Version 47: Enable random beacon in testnet.

#[derive(Copy, Clone, Debug, Hash, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
pub struct ProtocolVersion(u64);
Expand Down Expand Up @@ -2203,6 +2204,15 @@ impl ProtocolConfig {
// Enable resharing at same initial version
cfg.feature_flags.reshare_at_same_initial_version = true;
}
47 => {
// Enable random beacon on testnet.
if chain != Chain::Mainnet {
cfg.feature_flags.random_beacon = true;
cfg.random_beacon_reduction_lower_bound = Some(1600);
cfg.random_beacon_dkg_timeout_round = Some(3000);
cfg.random_beacon_min_round_interval_ms = Some(200);
}
}
// Use this template when making changes:
//
// // modify an existing constant.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,268 @@
---
source: crates/sui-protocol-config/src/lib.rs
expression: "ProtocolConfig::get_for_version(cur, *chain_id)"
---
version: 47
feature_flags:
package_upgrades: true
commit_root_state_digest: true
advance_epoch_start_time_in_safe_mode: true
loaded_child_objects_fixed: true
missing_type_is_compatibility_error: true
scoring_decision_with_validity_cutoff: true
consensus_order_end_of_epoch_last: true
disallow_adding_abilities_on_upgrade: true
disable_invariant_violation_check_in_swap_loc: true
advance_to_highest_supported_protocol_version: true
ban_entry_init: true
package_digest_hash_module: true
disallow_change_struct_type_params_on_upgrade: true
no_extraneous_module_bytes: true
narwhal_versioned_metadata: true
zklogin_auth: true
consensus_transaction_ordering: ByGasPrice
simplified_unwrap_then_delete: true
upgraded_multisig_supported: true
txn_base_cost_as_multiplier: true
shared_object_deletion: true
narwhal_new_leader_election_schedule: true
loaded_child_object_format: true
enable_jwk_consensus_updates: true
end_of_epoch_transaction_supported: true
simple_conservation_checks: true
loaded_child_object_format_type: true
receive_objects: true
enable_effects_v2: true
narwhal_certificate_v2: true
verify_legacy_zklogin_address: true
recompute_has_public_transfer_in_execution: true
accept_zklogin_in_multisig: true
include_consensus_digest_in_prologue: true
hardened_otw_check: true
allow_receiving_object_id: true
enable_coin_deny_list: true
enable_group_ops_native_functions: true
reject_mutable_random_on_entry_functions: true
zklogin_max_epoch_upper_bound_delta: 30
reshare_at_same_initial_version: true
max_tx_size_bytes: 131072
max_input_objects: 2048
max_size_written_objects: 5000000
max_size_written_objects_system_tx: 50000000
max_serialized_tx_effects_size_bytes: 524288
max_serialized_tx_effects_size_bytes_system_tx: 8388608
max_gas_payment_objects: 256
max_modules_in_publish: 64
max_package_dependencies: 32
max_arguments: 512
max_type_arguments: 16
max_type_argument_depth: 16
max_pure_argument_size: 16384
max_programmable_tx_commands: 1024
move_binary_format_version: 6
min_move_binary_format_version: 6
binary_module_handles: 100
binary_struct_handles: 300
binary_function_handles: 1500
binary_function_instantiations: 750
binary_signatures: 1000
binary_constant_pool: 4000
binary_identifiers: 10000
binary_address_identifiers: 100
binary_struct_defs: 200
binary_struct_def_instantiations: 100
binary_function_defs: 1000
binary_field_handles: 500
binary_field_instantiations: 250
binary_friend_decls: 100
max_move_object_size: 256000
max_move_package_size: 102400
max_publish_or_upgrade_per_ptb: 5
max_tx_gas: 50000000000
max_gas_price: 100000
max_gas_computation_bucket: 5000000
gas_rounding_step: 1000
max_loop_depth: 5
max_generic_instantiation_length: 32
max_function_parameters: 128
max_basic_blocks: 1024
max_value_stack_size: 1024
max_type_nodes: 256
max_push_size: 10000
max_struct_definitions: 200
max_function_definitions: 1000
max_fields_in_struct: 32
max_dependency_depth: 100
max_num_event_emit: 1024
max_num_new_move_object_ids: 2048
max_num_new_move_object_ids_system_tx: 32768
max_num_deleted_move_object_ids: 2048
max_num_deleted_move_object_ids_system_tx: 32768
max_num_transferred_move_object_ids: 2048
max_num_transferred_move_object_ids_system_tx: 32768
max_event_emit_size: 256000
max_event_emit_size_total: 65536000
max_move_vector_len: 262144
max_move_identifier_len: 128
max_move_value_depth: 128
max_back_edges_per_function: 10000
max_back_edges_per_module: 10000
max_verifier_meter_ticks_per_function: 16000000
max_meter_ticks_per_module: 16000000
max_meter_ticks_per_package: 16000000
object_runtime_max_num_cached_objects: 1000
object_runtime_max_num_cached_objects_system_tx: 16000
object_runtime_max_num_store_entries: 1000
object_runtime_max_num_store_entries_system_tx: 16000
base_tx_cost_fixed: 1000
package_publish_cost_fixed: 1000
base_tx_cost_per_byte: 0
package_publish_cost_per_byte: 80
obj_access_cost_read_per_byte: 15
obj_access_cost_mutate_per_byte: 40
obj_access_cost_delete_per_byte: 40
obj_access_cost_verify_per_byte: 200
gas_model_version: 8
obj_data_cost_refundable: 100
obj_metadata_cost_non_refundable: 50
storage_rebate_rate: 9900
storage_fund_reinvest_rate: 500
reward_slashing_rate: 10000
storage_gas_price: 76
max_transactions_per_checkpoint: 10000
max_checkpoint_size_bytes: 31457280
buffer_stake_for_protocol_upgrade_bps: 5000
address_from_bytes_cost_base: 52
address_to_u256_cost_base: 52
address_from_u256_cost_base: 52
dynamic_field_hash_type_and_key_cost_base: 100
dynamic_field_hash_type_and_key_type_cost_per_byte: 2
dynamic_field_hash_type_and_key_value_cost_per_byte: 2
dynamic_field_hash_type_and_key_type_tag_cost_per_byte: 2
dynamic_field_add_child_object_cost_base: 100
dynamic_field_add_child_object_type_cost_per_byte: 10
dynamic_field_add_child_object_value_cost_per_byte: 10
dynamic_field_add_child_object_struct_tag_cost_per_byte: 10
dynamic_field_borrow_child_object_cost_base: 100
dynamic_field_borrow_child_object_child_ref_cost_per_byte: 10
dynamic_field_borrow_child_object_type_cost_per_byte: 10
dynamic_field_remove_child_object_cost_base: 100
dynamic_field_remove_child_object_child_cost_per_byte: 2
dynamic_field_remove_child_object_type_cost_per_byte: 2
dynamic_field_has_child_object_cost_base: 100
dynamic_field_has_child_object_with_ty_cost_base: 100
dynamic_field_has_child_object_with_ty_type_cost_per_byte: 2
dynamic_field_has_child_object_with_ty_type_tag_cost_per_byte: 2
event_emit_cost_base: 52
event_emit_value_size_derivation_cost_per_byte: 2
event_emit_tag_size_derivation_cost_per_byte: 5
event_emit_output_cost_per_byte: 10
object_borrow_uid_cost_base: 52
object_delete_impl_cost_base: 52
object_record_new_uid_cost_base: 52
transfer_transfer_internal_cost_base: 52
transfer_freeze_object_cost_base: 52
transfer_share_object_cost_base: 52
transfer_receive_object_cost_base: 52
tx_context_derive_id_cost_base: 52
types_is_one_time_witness_cost_base: 52
types_is_one_time_witness_type_tag_cost_per_byte: 2
types_is_one_time_witness_type_cost_per_byte: 2
validator_validate_metadata_cost_base: 52
validator_validate_metadata_data_cost_per_byte: 2
crypto_invalid_arguments_cost: 100
bls12381_bls12381_min_sig_verify_cost_base: 52
bls12381_bls12381_min_sig_verify_msg_cost_per_byte: 2
bls12381_bls12381_min_sig_verify_msg_cost_per_block: 2
bls12381_bls12381_min_pk_verify_cost_base: 52
bls12381_bls12381_min_pk_verify_msg_cost_per_byte: 2
bls12381_bls12381_min_pk_verify_msg_cost_per_block: 2
ecdsa_k1_ecrecover_keccak256_cost_base: 52
ecdsa_k1_ecrecover_keccak256_msg_cost_per_byte: 2
ecdsa_k1_ecrecover_keccak256_msg_cost_per_block: 2
ecdsa_k1_ecrecover_sha256_cost_base: 52
ecdsa_k1_ecrecover_sha256_msg_cost_per_byte: 2
ecdsa_k1_ecrecover_sha256_msg_cost_per_block: 2
ecdsa_k1_decompress_pubkey_cost_base: 52
ecdsa_k1_secp256k1_verify_keccak256_cost_base: 52
ecdsa_k1_secp256k1_verify_keccak256_msg_cost_per_byte: 2
ecdsa_k1_secp256k1_verify_keccak256_msg_cost_per_block: 2
ecdsa_k1_secp256k1_verify_sha256_cost_base: 52
ecdsa_k1_secp256k1_verify_sha256_msg_cost_per_byte: 2
ecdsa_k1_secp256k1_verify_sha256_msg_cost_per_block: 2
ecdsa_r1_ecrecover_keccak256_cost_base: 52
ecdsa_r1_ecrecover_keccak256_msg_cost_per_byte: 2
ecdsa_r1_ecrecover_keccak256_msg_cost_per_block: 2
ecdsa_r1_ecrecover_sha256_cost_base: 52
ecdsa_r1_ecrecover_sha256_msg_cost_per_byte: 2
ecdsa_r1_ecrecover_sha256_msg_cost_per_block: 2
ecdsa_r1_secp256r1_verify_keccak256_cost_base: 52
ecdsa_r1_secp256r1_verify_keccak256_msg_cost_per_byte: 2
ecdsa_r1_secp256r1_verify_keccak256_msg_cost_per_block: 2
ecdsa_r1_secp256r1_verify_sha256_cost_base: 52
ecdsa_r1_secp256r1_verify_sha256_msg_cost_per_byte: 2
ecdsa_r1_secp256r1_verify_sha256_msg_cost_per_block: 2
ecvrf_ecvrf_verify_cost_base: 52
ecvrf_ecvrf_verify_alpha_string_cost_per_byte: 2
ecvrf_ecvrf_verify_alpha_string_cost_per_block: 2
ed25519_ed25519_verify_cost_base: 52
ed25519_ed25519_verify_msg_cost_per_byte: 2
ed25519_ed25519_verify_msg_cost_per_block: 2
groth16_prepare_verifying_key_bls12381_cost_base: 52
groth16_prepare_verifying_key_bn254_cost_base: 52
groth16_verify_groth16_proof_internal_bls12381_cost_base: 52
groth16_verify_groth16_proof_internal_bls12381_cost_per_public_input: 2
groth16_verify_groth16_proof_internal_bn254_cost_base: 52
groth16_verify_groth16_proof_internal_bn254_cost_per_public_input: 2
groth16_verify_groth16_proof_internal_public_input_cost_per_byte: 2
hash_blake2b256_cost_base: 52
hash_blake2b256_data_cost_per_byte: 2
hash_blake2b256_data_cost_per_block: 2
hash_keccak256_cost_base: 52
hash_keccak256_data_cost_per_byte: 2
hash_keccak256_data_cost_per_block: 2
group_ops_bls12381_decode_scalar_cost: 52
group_ops_bls12381_decode_g1_cost: 52
group_ops_bls12381_decode_g2_cost: 52
group_ops_bls12381_decode_gt_cost: 52
group_ops_bls12381_scalar_add_cost: 52
group_ops_bls12381_g1_add_cost: 52
group_ops_bls12381_g2_add_cost: 52
group_ops_bls12381_gt_add_cost: 52
group_ops_bls12381_scalar_sub_cost: 52
group_ops_bls12381_g1_sub_cost: 52
group_ops_bls12381_g2_sub_cost: 52
group_ops_bls12381_gt_sub_cost: 52
group_ops_bls12381_scalar_mul_cost: 52
group_ops_bls12381_g1_mul_cost: 52
group_ops_bls12381_g2_mul_cost: 52
group_ops_bls12381_gt_mul_cost: 52
group_ops_bls12381_scalar_div_cost: 52
group_ops_bls12381_g1_div_cost: 52
group_ops_bls12381_g2_div_cost: 52
group_ops_bls12381_gt_div_cost: 52
group_ops_bls12381_g1_hash_to_base_cost: 52
group_ops_bls12381_g2_hash_to_base_cost: 52
group_ops_bls12381_g1_hash_to_cost_per_byte: 2
group_ops_bls12381_g2_hash_to_cost_per_byte: 2
group_ops_bls12381_g1_msm_base_cost: 52
group_ops_bls12381_g2_msm_base_cost: 52
group_ops_bls12381_g1_msm_base_cost_per_input: 52
group_ops_bls12381_g2_msm_base_cost_per_input: 52
group_ops_bls12381_msm_max_len: 32
group_ops_bls12381_pairing_cost: 52
hmac_hmac_sha3_256_cost_base: 52
hmac_hmac_sha3_256_input_cost_per_byte: 2
hmac_hmac_sha3_256_input_cost_per_block: 2
check_zklogin_id_cost_base: 200
check_zklogin_issuer_cost_base: 200
scoring_decision_mad_divisor: 2.3
scoring_decision_cutoff_value: 2.5
execution_version: 3
consensus_bad_nodes_stake_threshold: 20
max_jwk_votes_per_validator_per_epoch: 240
max_age_of_jwk_in_epochs: 1
random_beacon_reduction_allowed_delta: 800
consensus_max_transaction_size_bytes: 262144
consensus_max_transactions_in_block_bytes: 6291456