Skip to content

Commit

Permalink
Move CongestionControl feature before StatelessValidation (near#11613)
Browse files Browse the repository at this point in the history
`CongestionControl` will now be enabled at protocol version 80, and
stateless validation and protocol version 81.
This allows us to deploy the congestion control feature before stateless
validation.
  • Loading branch information
jancionear authored Jun 19, 2024
1 parent 872ac5c commit 3e3137f
Show file tree
Hide file tree
Showing 10 changed files with 604 additions and 111 deletions.
64 changes: 64 additions & 0 deletions core/parameters/res/runtime_configs/80.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Congestion Control

# i64::MAX == 9_223_372_036_854_775_807
# PGAS == 1_000_000_000_000_000 GAS
# TGAS == 1_000_000_000_000 GAS
# MB == 1_000_000 B

# The following default constants have been defined in
# [NEP-539](https://github.com/near/NEPs/pull/539) after extensive fine-tuning
# and discussions.

# 20 PGAS
max_congestion_incoming_gas: {
old : 9_223_372_036_854_775_807,
new : 20_000_000_000_000_000,
}
# 2 PGAS
max_congestion_outgoing_gas: {
old : 9_223_372_036_854_775_807,
new : 2_000_000_000_000_000,
}
# 1000 MB
max_congestion_memory_consumption: {
old : 9_223_372_036_854_775_807,
new : 1_000_000_000,
}
# 2 missed chunks
max_congestion_missed_chunks: {
old : 9_223_372_036_854_775_807,
new : 2,
}

# 300 PGAS
max_outgoing_gas: {
old: 9_223_372_036_854_775_807,
new: 300_000_000_000_000_000,
}
# 1 PGAS
min_outgoing_gas: {
old: 9_223_372_036_854_775_807,
new: 1_000_000_000_000_000
}
# 1 PGAS
allowed_shard_outgoing_gas: {
old: 9_223_372_036_854_775_807,
new: 1_000_000_000_000_000
}

# 500 TGAS
max_tx_gas: {
old: 9_223_372_036_854_775_807,
new: 500_000_000_000_000
}
# 20 TGAS
min_tx_gas: {
old: 9_223_372_036_854_775_807,
new: 20_000_000_000_000
}

# 0.25
reject_tx_congestion_threshold: {
old : { numerator: 1, denominator: 1 },
new : { numerator: 25, denominator: 100 }
}
65 changes: 0 additions & 65 deletions core/parameters/res/runtime_configs/87.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,71 +6,6 @@ max_receipt_size: {old: 999_999_999_999_999, new: 4_194_304}
combined_transactions_size_limit: {old: 999_999_999_999_999, new: 2_097_152}
new_transactions_validation_state_size_soft_limit: {old: 999_999_999_999_999, new: 572_864}

# Congestion Control

# i64::MAX == 9_223_372_036_854_775_807
# PGAS == 1_000_000_000_000_000 GAS
# TGAS == 1_000_000_000_000 GAS
# MB == 1_000_000 B

# The following default constants have been defined in
# [NEP-539](https://github.com/near/NEPs/pull/539) after extensive fine-tuning
# and discussions.

# 20 PGAS
max_congestion_incoming_gas: {
old : 9_223_372_036_854_775_807,
new : 20_000_000_000_000_000,
}
# 2 PGAS
max_congestion_outgoing_gas: {
old : 9_223_372_036_854_775_807,
new : 2_000_000_000_000_000,
}
# 1000 MB
max_congestion_memory_consumption: {
old : 9_223_372_036_854_775_807,
new : 1_000_000_000,
}
# 2 missed chunks
max_congestion_missed_chunks: {
old : 9_223_372_036_854_775_807,
new : 2,
}

# 300 PGAS
max_outgoing_gas: {
old: 9_223_372_036_854_775_807,
new: 300_000_000_000_000_000,
}
# 1 PGAS
min_outgoing_gas: {
old: 9_223_372_036_854_775_807,
new: 1_000_000_000_000_000
}
# 1 PGAS
allowed_shard_outgoing_gas: {
old: 9_223_372_036_854_775_807,
new: 1_000_000_000_000_000
}

# 500 TGAS
max_tx_gas: {
old: 9_223_372_036_854_775_807,
new: 500_000_000_000_000
}
# 20 TGAS
min_tx_gas: {
old: 9_223_372_036_854_775_807,
new: 20_000_000_000_000
}

# 0.25
reject_tx_congestion_threshold: {
old : { numerator: 1, denominator: 1 },
new : { numerator: 25, denominator: 100 }
}

# 100 kiB
outgoing_receipts_usual_size_limit: {old: 999_999_999_999_999, new: 102_400}

Expand Down
4 changes: 3 additions & 1 deletion core/parameters/src/config_store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,11 @@ static CONFIG_DIFFS: &[(ProtocolVersion, &str)] = &[
(64, include_config!("64.yaml")),
(66, include_config!("66.yaml")),
(67, include_config!("67.yaml")),
// Congestion Control
(80, include_config!("80.yaml")),
(83, include_config!("83.yaml")),
(85, include_config!("85.yaml")),
// Congestion Control & State Witness size limit
// State Witness size limit
(87, include_config!("87.yaml")),
(90, include_config!("90.yaml")),
(129, include_config!("129.yaml")),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
---
source: core/parameters/src/config_store.rs
expression: config_view
---
{
"storage_amount_per_byte": "10000000000000000000",
"transaction_costs": {
"action_receipt_creation_config": {
"send_sir": 108059500000,
"send_not_sir": 108059500000,
"execution": 108059500000
},
"data_receipt_creation_config": {
"base_cost": {
"send_sir": 36486732312,
"send_not_sir": 36486732312,
"execution": 36486732312
},
"cost_per_byte": {
"send_sir": 17212011,
"send_not_sir": 17212011,
"execution": 17212011
}
},
"action_creation_config": {
"create_account_cost": {
"send_sir": 3850000000000,
"send_not_sir": 3850000000000,
"execution": 3850000000000
},
"deploy_contract_cost": {
"send_sir": 184765750000,
"send_not_sir": 184765750000,
"execution": 184765750000
},
"deploy_contract_cost_per_byte": {
"send_sir": 6812999,
"send_not_sir": 6812999,
"execution": 64572944
},
"function_call_cost": {
"send_sir": 200000000000,
"send_not_sir": 200000000000,
"execution": 780000000000
},
"function_call_cost_per_byte": {
"send_sir": 2235934,
"send_not_sir": 2235934,
"execution": 2235934
},
"transfer_cost": {
"send_sir": 115123062500,
"send_not_sir": 115123062500,
"execution": 115123062500
},
"stake_cost": {
"send_sir": 141715687500,
"send_not_sir": 141715687500,
"execution": 102217625000
},
"add_key_cost": {
"full_access_cost": {
"send_sir": 101765125000,
"send_not_sir": 101765125000,
"execution": 101765125000
},
"function_call_cost": {
"send_sir": 102217625000,
"send_not_sir": 102217625000,
"execution": 102217625000
},
"function_call_cost_per_byte": {
"send_sir": 1925331,
"send_not_sir": 1925331,
"execution": 1925331
}
},
"delete_key_cost": {
"send_sir": 94946625000,
"send_not_sir": 94946625000,
"execution": 94946625000
},
"delete_account_cost": {
"send_sir": 147489000000,
"send_not_sir": 147489000000,
"execution": 147489000000
},
"delegate_cost": {
"send_sir": 200000000000,
"send_not_sir": 200000000000,
"execution": 200000000000
}
},
"storage_usage_config": {
"num_bytes_account": 100,
"num_extra_bytes_record": 40
},
"burnt_gas_reward": [
3,
10
],
"pessimistic_gas_price_inflation_ratio": [
103,
100
]
},
"wasm_config": {
"ext_costs": {
"base": 264768111,
"contract_loading_base": 35445963,
"contract_loading_bytes": 1089295,
"read_memory_base": 2609863200,
"read_memory_byte": 3801333,
"write_memory_base": 2803794861,
"write_memory_byte": 2723772,
"read_register_base": 2517165186,
"read_register_byte": 98562,
"write_register_base": 2865522486,
"write_register_byte": 3801564,
"utf8_decoding_base": 3111779061,
"utf8_decoding_byte": 291580479,
"utf16_decoding_base": 3543313050,
"utf16_decoding_byte": 163577493,
"sha256_base": 4540970250,
"sha256_byte": 24117351,
"keccak256_base": 5879491275,
"keccak256_byte": 21471105,
"keccak512_base": 5811388236,
"keccak512_byte": 36649701,
"ripemd160_base": 853675086,
"ripemd160_block": 680107584,
"ed25519_verify_base": 210000000000,
"ed25519_verify_byte": 9000000,
"ecrecover_base": 278821988457,
"log_base": 3543313050,
"log_byte": 13198791,
"storage_write_base": 64196736000,
"storage_write_key_byte": 70482867,
"storage_write_value_byte": 31018539,
"storage_write_evicted_byte": 32117307,
"storage_read_base": 56356845750,
"storage_read_key_byte": 30952533,
"storage_read_value_byte": 5611005,
"storage_remove_base": 53473030500,
"storage_remove_key_byte": 38220384,
"storage_remove_ret_value_byte": 11531556,
"storage_has_key_base": 54039896625,
"storage_has_key_byte": 30790845,
"storage_iter_create_prefix_base": 0,
"storage_iter_create_prefix_byte": 0,
"storage_iter_create_range_base": 0,
"storage_iter_create_from_byte": 0,
"storage_iter_create_to_byte": 0,
"storage_iter_next_base": 0,
"storage_iter_next_key_byte": 0,
"storage_iter_next_value_byte": 0,
"touching_trie_node": 16101955926,
"read_cached_trie_node": 2280000000,
"promise_and_base": 1465013400,
"promise_and_per_promise": 5452176,
"promise_return": 560152386,
"validator_stake_base": 911834726400,
"validator_total_stake_base": 911834726400,
"contract_compile_base": 0,
"contract_compile_bytes": 0,
"alt_bn128_g1_multiexp_base": 713000000000,
"alt_bn128_g1_multiexp_element": 320000000000,
"alt_bn128_g1_sum_base": 3000000000,
"alt_bn128_g1_sum_element": 5000000000,
"alt_bn128_pairing_check_base": 9686000000000,
"alt_bn128_pairing_check_element": 5102000000000,
"yield_create_base": 153411779276,
"yield_create_byte": 15643988,
"yield_resume_base": 1195627285210,
"yield_resume_byte": 1195627285210
},
"grow_mem_cost": 1,
"regular_op_cost": 822756,
"vm_kind": "<REDACTED>",
"disable_9393_fix": false,
"storage_get_mode": "FlatStorage",
"fix_contract_loading_cost": false,
"implicit_account_creation": true,
"math_extension": true,
"ed25519_verify": true,
"alt_bn128": true,
"function_call_weight": true,
"eth_implicit_accounts": false,
"yield_resume_host_functions": true,
"limit_config": {
"max_gas_burnt": 300000000000000,
"max_stack_height": 262144,
"contract_prepare_version": 2,
"initial_memory_pages": 1024,
"max_memory_pages": 2048,
"registers_memory_limit": 1073741824,
"max_register_size": 104857600,
"max_number_registers": 100,
"max_number_logs": 100,
"max_total_log_length": 16384,
"max_total_prepaid_gas": 300000000000000,
"max_actions_per_receipt": 100,
"max_number_bytes_method_names": 2000,
"max_length_method_name": 256,
"max_arguments_length": 4194304,
"max_length_returned_data": 4194304,
"max_contract_size": 4194304,
"max_transaction_size": 4194304,
"max_receipt_size": 999999999999999,
"max_length_storage_key": 2048,
"max_length_storage_value": 4194304,
"max_promises_per_function_call_action": 1024,
"max_number_input_data_dependencies": 128,
"max_functions_number_per_contract": 10000,
"wasmer2_stack_limit": 204800,
"max_locals_per_contract": 1000000,
"account_id_validity_rules_version": 1,
"yield_timeout_length_in_blocks": 200,
"max_yield_payload_size": 1024,
"per_receipt_storage_proof_size_limit": 999999999999999
}
},
"account_creation_config": {
"min_allowed_top_level_account_length": 65,
"registrar_account_id": "registrar"
},
"congestion_control_config": {
"max_congestion_incoming_gas": 20000000000000000,
"max_congestion_outgoing_gas": 2000000000000000,
"max_congestion_memory_consumption": 1000000000,
"max_congestion_missed_chunks": 2,
"max_outgoing_gas": 300000000000000000,
"min_outgoing_gas": 1000000000000000,
"allowed_shard_outgoing_gas": 1000000000000000,
"max_tx_gas": 500000000000000,
"min_tx_gas": 20000000000000,
"reject_tx_congestion_threshold": 0.25,
"outgoing_receipts_usual_size_limit": 999999999999999,
"outgoing_receipts_big_size_limit": 999999999999999
},
"witness_config": {
"main_storage_proof_size_soft_limit": 999999999999999,
"combined_transactions_size_limit": 999999999999999,
"new_transactions_validation_state_size_soft_limit": 999999999999999
}
}
Loading

0 comments on commit 3e3137f

Please sign in to comment.