Skip to content

Commit

Permalink
Merge pull request #49 from sacherjj/casper-1.5.2
Browse files Browse the repository at this point in the history
MainNet 1.5.2 protocol upgrade
  • Loading branch information
sacherjj authored Aug 24, 2023
2 parents 374be6b + 49c2e69 commit 237d059
Show file tree
Hide file tree
Showing 6 changed files with 481 additions and 82 deletions.
2 changes: 1 addition & 1 deletion casper-node_release
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.4.15-039d438f2-casper-mainnet
1.5.2-86b7013
133 changes: 133 additions & 0 deletions config/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,139 @@ 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.2 - 10553
### casper-node 1.5.2-86b7013

## Added
* config-example.toml
* core
* minimum_block_time
* finality_threshold_fraction
* start_protocol_version_with_strict_finality_signatures_required
* legacy_required_finality
* vesting_schedule_period
* strict_argument_checking
* simultaneous_peer_requests
* consensus_protocol
* max_delegators_per_validator
* highway
* maximum_round_length
* wasm.host_function_costs
* random_bytes
* system_costs.auction_costs
* redelegate
* system_costs.mint_costs
* mint_into_existing_purse
* node
* shutdown_for_upgrade_timeout
* upgrade_timeout
* config-example.toml
* node
* sync_to_genesis
* idle_tolerance
* max_attempts
* control_logic_default_delay
* force_resync
* consensus
* max_execution_delay
* zug
* sync_state_interval
* log_participation_interval
* proposal_timeout
* proposal_grace_period
* proposal_timeout_inertia
* clock_tolerance
* network
* min_peers_for_initialization
* handshake_timeout
* max_incoming_peer_connections
* max_in_flight_demands
* tarpit_version_threshold
* tarpit_duration
* tarpit_chance
* blocklist_retain_duration
* estimator_weights
* gossip
* finality_signatures
* deploy_responses
* block_requests
* block_responses
* trie_requests
* trie_responses
* rpc_server
* enable_server
* max_body_bytes
* cors_origin
* speculative_exec_server
* enable_server
* address
* qps_limit
* max_body_bytes
* cors_origin
* rest_server
* enable_server
* cors_origin
* event_stream_server
* enable_server
* cors_origin
* gossip
* validate_and_store_timeout
* block_accumulator
* attempt_execution_threshold
* dead_air_interval
* purge_interval
* block_synchronizer
* max_parallel_trie_fetches
* peer_refresh_interval
* need_next_interval
* disconnect_dishonest_peers_interval
* latch_reset_interval
* stall_limit
* deploy_buffer
* expiry_check_interval
* diagnostics_ports
* enabled
* socket_path
* socket_umask
* upgrade_watcher
* upgrade_check_interval

## Changed
* chainspec.toml
* protocol
* version
* activation_point
* network
* maximum_net_message_size
* core
* prune_batch_size
* wasm
* max_stack_height
* wasm.host_function_costs
* call_versioned_contract
* config-example.toml
* storage
* mem_pool_prune_interval
* fetcher
* get_from_peer_timeout

## Removed
* chainspec.toml
* core
* max_stored_value_size
* highway
* finality_threshold_fraction
* minimum_round_exponent
* maximum_round_exponent
* config-example.toml
* consensus.highway
* standstill_timeout
* max_execution_delay
* deploy_acceptor
* linear_chain_sync
* block_proposer


## 1.4.15 - 9246
### casper-node 1.4.15-039d438f2-casper-mainnet

Expand Down
59 changes: 36 additions & 23 deletions config/chainspec.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[protocol]
# Protocol version.
version = '1.4.15'
version = '1.5.2'
# 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.
Expand All @@ -11,9 +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 = 9246
# Optional era ID in which the last emergency restart happened.
#last_emergency_restart = 0
activation_point = 10553

[network]
# Human readable name for convenience; the genesis_hash is the true identifier. The name influences the genesis hash by
Expand All @@ -22,21 +20,37 @@ activation_point = 9246
name = 'casper'
# The maximum size of an acceptable networking message in bytes. Any message larger than this will
# be rejected at the networking level.
maximum_net_message_size = 23_068_672
maximum_net_message_size = 25_165_824

[core]
# Era duration.
era_duration = '120min'
# Minimum number of blocks per era. An era will take longer than `era_duration` if that is necessary to reach the
# minimum height.
minimum_era_height = 20
# Minimum difference between a block's and its child's timestamp.
minimum_block_time = '32768ms'
# Number of slots available in validator auction.
validator_slots = 100
# A number between 0 and 1 representing the fault tolerance threshold as a fraction, used by the internal finalizer.
# It is the fraction of validators that would need to equivocate to make two honest nodes see two conflicting blocks as
# finalized: A higher value F makes it safer to rely on finalized blocks. It also makes it more difficult to finalize
# blocks, however, and requires strictly more than (F + 1)/2 validators to be working correctly.
finality_threshold_fraction = [1, 3]
# Protocol version from which nodes are required to hold strict finality signatures.
start_protocol_version_with_strict_finality_signatures_required = '1.5.0'
# Which finality is required for legacy blocks. Options are 'Strict', 'Weak' and 'Any'.
# Used to determine finality sufficiency for new joiners syncing blocks created
# in a protocol version before
# `start_protocol_version_with_strict_finality_signatures_required`.
legacy_required_finality = 'Any'
# Number of eras before an auction actually defines the set of validators. If you bond with a sufficient bid in era N,
# you will be a validator in era N + auction_delay + 1.
auction_delay = 1
# The period after genesis during which a genesis validator's bid is locked.
locked_funds_period = '90days'
# The period in which genesis validator's bid is released over time after it's unlocked.
vesting_schedule_period = '13 weeks'
# Default number of eras that need to pass to be able to withdraw unbonded funds.
unbonding_delay = 7
# Round seigniorage rate represented as a fraction of the total supply.
Expand All @@ -54,26 +68,22 @@ round_seigniorage_rate = [7, 87535408]
max_associated_keys = 100
# Maximum height of contract runtime call stack.
max_runtime_call_stack_height = 12
# Maximum serialized size of values stored in global state.
max_stored_value_size = 8_388_608
# Minimum allowed delegation amount in motes
minimum_delegation_amount = 500_000_000_000
# Global state prune batch size (0 = this feature is off)
prune_batch_size = 50
prune_batch_size = 0
# Enables strict arguments checking when calling a contract; i.e. that all non-optional args are provided and of the correct `CLType`.
strict_argument_checking = false
# Number of simultaneous peer requests.
simultaneous_peer_requests = 5
# The consensus protocol to use. Options are "Zug" and "Highway".
consensus_protocol = 'Highway'
# The maximum amount of delegators per validator. if the value is 0, there is no maximum capacity.
max_delegators_per_validator = 1200

[highway]
# A number between 0 and 1 representing the fault tolerance threshold as a fraction, used by the internal finalizer.
# It is the fraction of validators that would need to equivocate to make two honest nodes see two conflicting blocks as
# finalized: A higher value F makes it safer to rely on finalized blocks. It also makes it more difficult to finalize
# blocks, however, and requires strictly more than (F + 1)/2 validators to be working correctly.
finality_threshold_fraction = [1, 3]
# Integer between 0 and 255. The power of two that is the number of milliseconds in the minimum round length, and
# therefore the minimum delay between a block and its child. E.g. 14 means 2^14 milliseconds, i.e. about 16 seconds.
minimum_round_exponent = 15
# Integer between 0 and 255. Must be greater than `minimum_round_exponent`. The power of two that is the number of
# milliseconds in the maximum round length, and therefore the maximum delay between a block and its child. E.g. 19
# means 2^19 milliseconds, i.e. about 8.7 minutes.
maximum_round_exponent = 17
# Highway dynamically chooses its round length, between minimum_block_time and maximum_round_length.
maximum_round_length = '132seconds'
# The factor by which rewards for a round are multiplied if the greatest summit has ≤50% quorum, i.e. no finality.
# Expressed as a fraction (1/5 by default).
reduced_reward_multiplier = [1, 5]
Expand All @@ -82,7 +92,7 @@ reduced_reward_multiplier = [1, 5]
# 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 = '1day'
max_ttl = '18hours'
# 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.
Expand All @@ -108,7 +118,7 @@ native_transfer_minimum_motes = 2_500_000_000
# Amount of free memory (in 64kB pages) each contract can use for stack.
max_memory = 64
# Max stack height (native WebAssembly stack limiter).
max_stack_height = 200
max_stack_height = 500

[wasm.storage_costs]
# Gas charged per byte stored in the global state.
Expand Down Expand Up @@ -174,7 +184,7 @@ 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 = 200, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 0] }
call_versioned_contract = { cost = 4_500, arguments = [0, 0, 0, 0, 0, 0, 0, 420, 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] }
Expand All @@ -192,6 +202,7 @@ has_key = { cost = 1_500, arguments = [0, 840] }
is_valid_uref = { cost = 760, arguments = [0, 0] }
load_named_keys = { cost = 42_000, arguments = [0, 0] }
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] }
Expand Down Expand Up @@ -229,6 +240,7 @@ withdraw_delegator_reward = 10_000
withdraw_validator_reward = 10_000
read_era_id = 10_000
activate_bid = 10_000
redelegate = 2_500_000_000

[system_costs.mint_costs]
mint = 2_500_000_000
Expand All @@ -237,6 +249,7 @@ create = 2_500_000_000
balance = 10_000
transfer = 10_000
read_base_round_reward = 10_000
mint_into_existing_purse = 2_500_000_000

[system_costs.handle_payment_costs]
get_payment_purse = 10_000
Expand Down
Loading

0 comments on commit 237d059

Please sign in to comment.