diff --git a/casper-node_release b/casper-node_release index 3fe27d4..c393fd3 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.5.5-3c2e7a3 \ No newline at end of file +1.5.6-9f3995853204a18f17de9c022233d22aa14b9c37 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index c3ce082..59925a8 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -11,6 +11,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Fixed: any bug fixes) [comment]: <> (Security: in case of vulnerabilities) +## 1.5.6 - 12268 +## casper-node 1.5.6 9f3995853204a18f17de9c022233d22aa14b9c37 + +## Changed +* config-example.toml + * node + * prevent_validator_shutdown + +* chainspec.toml + * protocol + * version + * activation_point + * deploys + * max_ttl + * wasm + * storage_costs + * gas_per_byte + * host_function_costs + * add_associated_key + * add_contract_version + * blake2b + * call_contract + * call_versioned_contract + * get_balance + * get_named_arg + * put_key + * read_value + * remove_contract_user_group_urefs + * transfer_from_purse_to_purse + + ## 1.5.5 - 11751 ### casper-node 1.5.5-3c2e7a3 diff --git a/config/chainspec.toml b/config/chainspec.toml index f55d88b..a8a0e71 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.5.5' +version = '1.5.6' # Whether we need to clear latest blocks back to the switch block just before the activation point or not. hard_reset = true # This protocol version becomes active at this point. @@ -11,7 +11,7 @@ hard_reset = true # in contract-runtime for computing genesis post-state hash. # # If it is an integer, it represents an era ID, meaning the protocol version becomes active at the start of this era. -activation_point = 11751 +activation_point = 12268 [network] # Human readable name for convenience; the genesis_hash is the true identifier. The name influences the genesis hash by @@ -125,7 +125,7 @@ blocks_to_consider = 10 # The maximum number of Motes allowed to be spent during payment. 0 means unlimited. max_payment_cost = '0' # The duration after the deploy timestamp that it can be included in a block. -max_ttl = '18 hours' +max_ttl = '2 hours' # The maximum number of other deploys a deploy can depend on (require to have been executed before it can execute). max_dependencies = 10 # Maximum block size in bytes including deploys contained by the block. 0 means unlimited. @@ -157,7 +157,7 @@ max_stack_height = 500 [wasm.storage_costs] # Gas charged per byte stored in the global state. -gas_per_byte = 630_000 +gas_per_byte = 1_117_587 [wasm.opcode_costs] # Bit operations multiplier. @@ -215,21 +215,21 @@ size_multiplier = 100 # Host function declarations are located in smart_contracts/contract/src/ext_ffi.rs [wasm.host_function_costs] add = { cost = 5_800, arguments = [0, 0, 0, 0] } -add_associated_key = { cost = 9_000, arguments = [0, 0, 0] } -add_contract_version = { cost = 200, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] } -blake2b = { cost = 200, arguments = [0, 0, 0, 0] } -call_contract = { cost = 4_500, arguments = [0, 0, 0, 0, 0, 420, 0] } -call_versioned_contract = { cost = 4_500, arguments = [0, 0, 0, 0, 0, 0, 0, 420, 0] } +add_associated_key = { cost = 1_200_000, arguments = [0, 0, 0] } +add_contract_version = { cost = 200, arguments = [0, 0, 0, 0, 120_000, 0, 0, 0, 0, 0] } +blake2b = { cost = 1_200_000, arguments = [0, 120_000, 0, 0] } +call_contract = { cost = 300_000_000, arguments = [0, 0, 0, 120_000, 0, 120_000, 0] } +call_versioned_contract = { cost = 300_000_000, arguments = [0, 0, 0, 0, 0, 120_000, 0, 120_000, 0] } create_contract_package_at_hash = { cost = 200, arguments = [0, 0] } create_contract_user_group = { cost = 200, arguments = [0, 0, 0, 0, 0, 0, 0, 0] } create_purse = { cost = 2_500_000_000, arguments = [0, 0] } disable_contract_version = { cost = 200, arguments = [0, 0, 0, 0] } -get_balance = { cost = 3_800, arguments = [0, 0, 0] } +get_balance = { cost = 3_000_000, arguments = [0, 0, 0] } get_blocktime = { cost = 330, arguments = [0] } get_caller = { cost = 380, arguments = [0] } get_key = { cost = 2_000, arguments = [0, 440, 0, 0, 0] } get_main_purse = { cost = 1_300, arguments = [0] } -get_named_arg = { cost = 200, arguments = [0, 0, 0, 0] } +get_named_arg = { cost = 200, arguments = [0, 120_000, 0, 120_000] } get_named_arg_size = { cost = 200, arguments = [0, 0, 0] } get_phase = { cost = 710, arguments = [0] } get_system_contract = { cost = 1_100, arguments = [0, 0, 0] } @@ -240,19 +240,19 @@ new_uref = { cost = 17_000, arguments = [0, 0, 590] } random_bytes = { cost = 200, arguments = [0, 0] } print = { cost = 20_000, arguments = [0, 4_600] } provision_contract_user_group_uref = { cost = 200, arguments = [0, 0, 0, 0, 0] } -put_key = { cost = 38_000, arguments = [0, 1_100, 0, 0] } +put_key = { cost = 100_000_000, arguments = [0, 120_000, 0, 120_000] } read_host_buffer = { cost = 3_500, arguments = [0, 310, 0] } -read_value = { cost = 6_000, arguments = [0, 0, 0] } +read_value = { cost = 60_000, arguments = [0, 120_000, 0] } read_value_local = { cost = 5_500, arguments = [0, 590, 0] } remove_associated_key = { cost = 4_200, arguments = [0, 0] } remove_contract_user_group = { cost = 200, arguments = [0, 0, 0, 0] } -remove_contract_user_group_urefs = { cost = 200, arguments = [0, 0, 0, 0, 0, 0] } +remove_contract_user_group_urefs = { cost = 200, arguments = [0, 0, 0, 0, 0, 120_000] } remove_key = { cost = 61_000, arguments = [0, 3_200] } ret = { cost = 23_000, arguments = [0, 420_000] } revert = { cost = 500, arguments = [0] } set_action_threshold = { cost = 74_000, arguments = [0, 0] } transfer_from_purse_to_account = { cost = 2_500_000_000, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0] } -transfer_from_purse_to_purse = { cost = 82_000, arguments = [0, 0, 0, 0, 0, 0, 0, 0] } +transfer_from_purse_to_purse = { cost = 82_000_000, arguments = [0, 0, 0, 0, 0, 0, 0, 0] } transfer_to_account = { cost = 2_500_000_000, arguments = [0, 0, 0, 0, 0, 0, 0] } update_associated_key = { cost = 4_200, arguments = [0, 0, 0] } write = { cost = 14_000, arguments = [0, 0, 0, 980] } diff --git a/config/config-example.toml b/config/config-example.toml index b278cb3..68672f3 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -36,6 +36,17 @@ shutdown_for_upgrade_timeout = '2 minutes' # Maximum time a node will wait for an upgrade to commit. upgrade_timeout = '30 seconds' +# The node detects when it should do a controlled shutdown when it is in a detectably bad state +# in order to avoid potentially catastrophic uncontrolled crashes. Generally, a node should be +# allowed to shutdown, and if restarted that node will generally recover gracefully and resume +# normal operation. However, actively validating nodes have subjective state in memory that is +# lost on shutdown / restart and must be reacquired from other validating nodes on restart. +# If all validating nodes shutdown in the middle of an era, social consensus is required to restart +# the network. As a mitigation for that, the following config can be set to true on some validator +# nodes to cause nodes that are supposed to be validators in the current era to ignore controlled +# shutdown events and stay up. This allows them to act as sentinels for the consensus data for +# other restarting nodes. This config is inert on non-validating nodes. +prevent_validator_shutdown = false # ================================= # Configuration options for logging diff --git a/protocol_versions b/protocol_versions index 1cc0bdb..1f52010 100644 --- a/protocol_versions +++ b/protocol_versions @@ -1,2 +1,2 @@ -1_5_3 -1_5_5 \ No newline at end of file +1_5_5 +1_5_6 \ No newline at end of file