forked from near/nearcore
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Lower transaction size limit to 1.5MiB
The size limit for a single single transaction used to be 4MiB, this PR reduces it to 1.5MiB. Transactions larger than 1.5MiB will be rejected. This is done to help with near#11103. It's hard to limit the size of `ChunkStateWitness` when a single transaction can be as large as 4MiB. Having 1.5MiB transactions makes things much more manageable. This will break some transactions. On current mainnet there is approximately one transaction larger than 1.5MiB per day (~420 large txs per year). We've decided that it's okay to break those transactions. The new limit is introduced in protocol version `68`. This protocol version could be released before the full stateless validation launch, to see if anyone complains. Note that this change doesn't limit the size of receipts, only transactions. It's still possible to create a receipt with a 4MiB contract or function call, but that's out of scope for the transaction size limit. Zulip discussion about lowering the limit: https://near.zulipchat.com/#narrow/stream/295306-contract-runtime/topic/.E2.9C.94.20Lowering.20the.20limit.20for.20contract.20code.20size
- Loading branch information
1 parent
9063a2c
commit 0119aea
Showing
25 changed files
with
487 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
max_transaction_size: {old: 4_194_304, new: 1_572_864} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
227 changes: 227 additions & 0 deletions
227
core/parameters/src/snapshots/near_parameters__config_store__tests__68.json.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,227 @@ | ||
--- | ||
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 | ||
], | ||
"storage_proof_size_soft_limit": 999999999999999 | ||
}, | ||
"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": 1572864, | ||
"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, | ||
"storage_proof_size_receipt_limit": 999999999999999 | ||
} | ||
}, | ||
"account_creation_config": { | ||
"min_allowed_top_level_account_length": 65, | ||
"registrar_account_id": "registrar" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.