Skip to content

Commit

Permalink
update to v47
Browse files Browse the repository at this point in the history
  • Loading branch information
aschran committed May 22, 2024
1 parent 03c0723 commit 88e09b1
Show file tree
Hide file tree
Showing 6 changed files with 834 additions and 12 deletions.
17 changes: 10 additions & 7 deletions 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,7 +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.
// Enable random beacon in testnet.
// 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 @@ -2196,19 +2196,22 @@ impl ProtocolConfig {
}
}
46 => {
// enable bridge in devnet and testnet
if chain != Chain::Mainnet {
// enable bridge in devnet and testnet
cfg.feature_flags.bridge = true;
}

// Enable random beacon on testnet.
// 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);
}

// Enable resharing at same initial version
cfg.feature_flags.reshare_at_same_initial_version = true;
}
// Use this template when making changes:
//
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

Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ feature_flags:
simple_conservation_checks: true
loaded_child_object_format_type: true
receive_objects: true
random_beacon: true
bridge: true
enable_effects_v2: true
narwhal_certificate_v2: true
Expand Down Expand Up @@ -267,9 +266,6 @@ 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
random_beacon_reduction_lower_bound: 1600
random_beacon_dkg_timeout_round: 3000
random_beacon_min_round_interval_ms: 200
consensus_max_transaction_size_bytes: 262144
consensus_max_transactions_in_block_bytes: 6291456

Loading

0 comments on commit 88e09b1

Please sign in to comment.