From d4b07773364924b6dee342264fbd5dc8423f5958 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:08:01 -0500 Subject: [PATCH 01/12] casper-test Genesis --- casper-node_release | 2 +- config/CHANGELOG.md | 13 +- config/accounts.toml | 28 +++- config/chainspec.toml | 213 +++++++++++++++++++++++++++++- config/config-example.toml | 260 ++++++++++++++++++++++++++++++++++++- protocol_versions | 1 + 6 files changed, 503 insertions(+), 14 deletions(-) create mode 100644 protocol_versions diff --git a/casper-node_release b/casper-node_release index 60453e6..27ef37b 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -v1.0.0 \ No newline at end of file +1.0.0-31d7de47 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 0c52075..85c8fd1 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,13 +12,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.0.0 - 2021-04-08T17:00:00Z +### casper-node 1.0.0-31d7de47 -## [Unreleased] - -## Examples - -Using genesis time for 1.0.0 protocol version. All other are Era # - -## [1.1.0] - Era: 224 - -## [1.0.0] - 2021-03-31 04:00:00 UTC \ No newline at end of file +### Added +* Genesis accounts.toml, chainspec.toml, config-example.toml diff --git a/config/accounts.toml b/config/accounts.toml index 8430dea..5e77bb1 100644 --- a/config/accounts.toml +++ b/config/accounts.toml @@ -1 +1,27 @@ -# Should hold starting accounts for 1.0.0 protocol version and be deleted from subsequent protocol versions. \ No newline at end of file +[[accounts]] +public_key = "018afa98ca4be12d613617f7339a2d576950a2f9a92102ca4d6508ee31b54d2c02" +balance = "9999995600000000000" + +[[accounts]] +public_key = "0106ca7c39cd272dbf21a86eeb3b36b7c26e2e9b94af64292419f7862936bca2ca" +balance = "100000000000" + +[accounts.validator] +bonded_amount = "1000000000000" +delegation_rate = 10 + +[[accounts]] +public_key = "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e" +balance = "100000000000" + +[accounts.validator] +bonded_amount = "1000000000000" +delegation_rate = 10 + +[[accounts]] +public_key = "016f6ed70e4a5acec750dc087674e5de2ad7b6d9595945c4059c5ca1a47d4dd3ab" +balance = "1100000000000" + +[[accounts]] +public_key = "01fddc7e47ac36a240007eba368e417dd52d824026fb9baaa1454817993ce985ea" +balance = "1100000000000" diff --git a/config/chainspec.toml b/config/chainspec.toml index 18145a3..f8bf215 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1 +1,212 @@ -# Should hold current chainspec.toml for given protocol version. \ No newline at end of file +[protocol] +# Protocol version. +version = '1.0.0' +# Whether we need to clear latest blocks back to the switch block just before the activation point or not. +hard_reset = false +# This protocol version becomes active at this point. +# +# If it is a timestamp string, it represents the timestamp for the genesis block. This is the beginning of era 0. By +# this time, a sufficient majority (> 50% + F/2 — see finality_threshold_fraction below) of validator nodes must be up +# and running to start the blockchain. This timestamp is also used in seeding the pseudo-random number generator used +# 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 = '2021-04-08T17:00:00Z' + +[network] +# Human readable name for convenience; the genesis_hash is the true identifier. The name influences the genesis hash by +# contributing to the seeding of the pseudo-random number generator used in contract-runtime for computing genesis +# post-state hash. +name = 'casper-test' + +[core] +# Era duration. +era_duration = '120minutes' +# 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 +# Number of slots available in validator auction. +validator_slots = 100 +# 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' +# 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. +# +# Annual issuance: 8% +# Minimum round exponent: 16 +# Ticks per year: 31536000000 +# +# (1+0.08)^((2^16)/31536000000)-1 is expressed as a fractional number below +# Python: +# from fractions import Fraction +# Fraction((1 + 0.08)**((2**16)/31536000000) - 1).limit_denominator(1000000000) +round_seigniorage_rate = [1, 192720971] + +[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 = 16 +# 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 = 18 +# 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] + +[deploys] +# 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' +# 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. +max_block_size = 10_485_760 +# The maximum number of non-transfer deploys permitted in a single block. +block_max_deploy_count = 100 +# The maximum number of wasm-less transfer deploys permitted in a single block. +block_max_transfer_count = 2500 +# The upper limit of total gas of all deploys in a block. +block_gas_limit = 10_000_000_000_000 +# The limit of length of serialized payment code arguments. +payment_args_max_length = 1024 +# The limit of length of serialized session code arguments. +session_args_max_length = 1024 +# The minimum amount in motes for a valid native transfer. +native_transfer_minimum_motes = 2_500_000_000 + +[wasm] +# 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 = 65_536 + +[wasm.storage_costs] +# Gas charged per byte stored in the global state. +gas_per_byte = 630_000 + +[wasm.opcode_costs] +# Bit operations multiplier. +bit = 300 +# Arithmetic add operations multiplier. +add = 210 +# Mul operations multiplier. +mul = 240 +# Div operations multiplier. +div = 320 +# Memory load operation multiplier. +load = 2_500 +# Memory store operation multiplier. +store = 4_700 +# Const store operation multiplier. +const = 110 +# Local operations multiplier. +local = 390 +# Global operations multiplier. +global = 390 +# Control flow operations multiplier. +control_flow = 440 +# Integer operations multiplier. +integer_comparison = 250 +# Conversion operations multiplier. +conversion = 420 +# Unreachable operation multiplier. +unreachable = 270 +# Nop operation multiplier. +nop = 200 +# Get current memory operation multiplier. +current_memory = 290 +# Grow memory cost, per page (64kb). +grow_memory = 240_000 +# Regular opcode cost. +regular = 210 + +# 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 = 200, arguments = [0, 0, 0, 0, 0, 0, 0, 0, 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 = 170_000, arguments = [0, 0] } +disable_contract_version = { cost = 200, arguments = [0, 0, 0, 0] } +get_balance = { cost = 3_800, 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_size = { cost = 200, arguments = [0, 0, 0] } +get_phase = { cost = 710, arguments = [0] } +get_system_contract = { cost = 1_100, arguments = [0, 0, 0] } +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] } +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] } +read_host_buffer = { cost = 3_500, arguments = [0, 310, 0] } +read_value = { cost = 6_000, arguments = [0, 0, 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_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 = 160_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_to_account = { cost = 24_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] } +write_local = { cost = 9_500, arguments = [0, 1_800, 0, 520] } + +[system_costs] +wasmless_transfer_cost = 10_000 + +[system_costs.auction_costs] +get_era_validators = 10_000 +read_seigniorage_recipients = 10_000 +add_bid = 10_000 +withdraw_bid = 10_000 +delegate = 10_000 +undelegate = 10_000 +run_auction = 10_000 +slash = 10_000 +distribute = 10_000 +withdraw_delegator_reward = 10_000 +withdraw_validator_reward = 10_000 +read_era_id = 10_000 +activate_bid = 10_000 + +[system_costs.mint_costs] +mint = 10_000 +reduce_total_supply = 10_000 +create = 10_000 +balance = 10_000 +transfer = 10_000 +read_base_round_reward = 10_000 + +[system_costs.handle_payment_costs] +get_payment_purse = 10_000 +set_refund_purse = 10_000 +get_refund_purse = 10_000 +finalize_payment = 10_000 + +[system_costs.standard_payment_costs] +pay = 10_000 diff --git a/config/config-example.toml b/config/config-example.toml index fb84cc0..0a94988 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -1,2 +1,258 @@ -# Should hold current config-example.toml for protocol version. -# This will have local IP added to make config.toml with casper-node-launcher's config_from_example.sh script. \ No newline at end of file +# ================================ +# Configuration options for a node +# ================================ +[node] + +# If set, use this hash as a trust anchor when joining an existing network. +#trusted_hash = 'HEX-FORMATTED BLOCK HASH' + + +# ================================= +# Configuration options for logging +# ================================= +[logging] + +# Output format. Possible values are 'text' or 'json'. +format = 'json' + +# Colored output. Has no effect if format = 'json'. +color = false + +# Abbreviate module names in text output. Has no effect if format = 'json'. +abbreviate_modules = false + + +# =================================== +# Configuration options for consensus +# =================================== +[consensus] + +# Path (absolute, or relative to this config.toml) to validator's secret key file used to sign +# consensus messages. +secret_key_path = '/etc/casper/validator_keys/secret_key.pem' + +# The folder in which the files with per-era latest unit hashes will be stored. +unit_hashes_folder = "/var/lib/casper/casper-node" + +# The duration for which incoming vertices with missing dependencies should be kept in a queue. +pending_vertex_timeout = '30min' + +# The maximum number of blocks by which execution is allowed to lag behind finalization. +# If it is more than that, consensus will pause, and resume once the executor has caught up. +max_execution_delay = 3 + + +# ==================================== +# Configuration options for networking +# ==================================== +[network] + +# The public address of the node. +# +# It must be publicly available in order to allow peers to connect to this node. +# If the port is set to 0, the actual bound port will be substituted. +public_address = ':0' + +# Address to bind to for listening. +# If port is set to 0, a random port will be used. +bind_address = '0.0.0.0:35000' + +# Addresses to connect to in order to join the network. +# +# If not set, this node will not be able to attempt to connect to the network. Instead it will +# depend upon peers connecting to it. This is normally only useful for the first node of the +# network. +# +# Multiple addresses can be given and the node will attempt to connect to each, requiring at least +# one connection. +known_addresses = ['3.208.91.63:35000','35.169.197.193:35000'] + + +# The interval (in milliseconds) between each fresh round of gossiping the node's public address. +gossip_interval = 120_000 + +# Enable systemd support. If enabled, the node will notify systemd once it has synced and its +# listening socket for incoming connections is open. +# +# It is usually better to leave this option off and enable it explicitly via command-line override +# only in the unit files themselves via `-C=network.systemd_support=true`. +systemd_support = false + +# Minimum amount of time that has to pass before attempting to reconnect after losing all +# connections to established nodes. +isolation_reconnect_delay = '2s' + +# Initial delay for starting address gossipping after the network starts. This should be slightly +# more than the expected time required for initial connections to complete. +initial_gossip_delay = '5s' + +# How long a connection is allowed to be stuck as pending before it is abandoned. +max_addr_pending_time = '1min' + +# ================================================== +# Configuration options for the JSON-RPC HTTP server +# ================================================== +[rpc_server] + +# Listening address for JSON-RPC HTTP server. If the port is set to 0, a random port will be used. +# +# If the specified port cannot be bound to, a random port will be tried instead. If binding fails, +# the JSON-RPC HTTP server will not run, but the node will be otherwise unaffected. +# +# The actual bound address will be reported via a log line if logging is enabled. +address = '0.0.0.0:7777' + +# The global max rate of requests (per second) before they are limited. +# Request will be delayed to the next 1 second bucket once limited. +qps_limit = 50 + + +# ============================================== +# Configuration options for the REST HTTP server +# ============================================== +[rest_server] + +# Listening address for REST HTTP server. If the port is set to 0, a random port will be used. +# +# If the specified port cannot be bound to, a random port will be tried instead. If binding fails, +# the REST HTTP server will not run, but the node will be otherwise unaffected. +# +# The actual bound address will be reported via a log line if logging is enabled. +address = '0.0.0.0:8888' + +# The global max rate of requests (per second) before they are limited. +# Request will be delayed to the next 1 second bucket once limited. +qps_limit = 10 + + +# ========================================================== +# Configuration options for the SSE HTTP event stream server +# ========================================================== +[event_stream_server] + +# Listening address for SSE HTTP event stream server. If the port is set to 0, a random port will be used. +# +# If the specified port cannot be bound to, a random port will be tried instead. If binding fails, +# the SSE HTTP event stream server will not run, but the node will be otherwise unaffected. +# +# The actual bound address will be reported via a log line if logging is enabled. +address = '0.0.0.0:9999' + +# The number of event stream events to buffer. +event_stream_buffer_length = 5000 + +# The capacity of the broadcast channel size. +broadcast_channel_size = 6500 + +# The global max rate of requests (per second) before they are limited. +# Request will be delayed to the next 1 second bucket once limited. +qps_limit = 10 + + +# =============================================== +# Configuration options for the storage component +# =============================================== +[storage] + +# Path (absolute, or relative to this config.toml) to the folder where any files created +# or read by the storage component will exist. +# +# If the folder doesn't exist, it and any required parents will be created. +# +# If unset, the path must be supplied as an argument via the CLI. +path = '/var/lib/casper/casper-node' + +# Maximum size of the database to use for the block store. +# +# The size should be a multiple of the OS page size. +# +# 483_183_820_800 == 450 GiB. +max_block_store_size = 483_183_820_800 + +# Maximum size of the database to use for the deploy store. +# +# The size should be a multiple of the OS page size. +# +# 322_122_547_200 == 300 GiB. +max_deploy_store_size = 322_122_547_200 + +# Maximum size of the database to use for the deploy metadata. +# +# The size should be a multiple of the OS page size. +# +# 322_122_547_200 == 300 GiB. +max_deploy_metadata_store_size = 322_122_547_200 + +# Maximum size of the database to use for the state snapshots. +# +# The size should be a multiple of the OS page size. +# +# 10_737_418_240 == 10 GiB. +max_state_store_size = 10_737_418_240 + + +# =================================== +# Configuration options for gossiping +# =================================== +[gossip] + +# Target number of peers to infect with a given piece of data. +infection_target = 3 + +# The saturation limit as a percentage, with a maximum value of 99. Used as a termination +# condition. +# +# Example: assume the `infection_target` is 3, the `saturation_limit_percent` is 80, and we don't +# manage to newly infect 3 peers. We will stop gossiping once we know of more than 15 holders +# excluding us since 80% saturation would imply 3 new infections in 15 peers. +saturation_limit_percent = 80 + +# The maximum duration in seconds for which to keep finished entries. +# +# The longer they are retained, the lower the likelihood of re-gossiping a piece of data. However, +# the longer they are retained, the larger the list of finished entries can grow. +finished_entry_duration_secs = 60 + +# The timeout duration in seconds for a single gossip request, i.e. for a single gossip message +# sent from this node, it will be considered timed out if the expected response from that peer is +# not received within this specified duration. +gossip_request_timeout_secs = 30 + +# The timeout duration in seconds for retrieving the remaining part(s) of newly-discovered data +# from a peer which gossiped information about that data to this node. +get_remainder_timeout_secs = 5 + + +# ================================= +# Configuration options for fetcher +# ================================= +[fetcher] + +# The timeout duration in seconds for a single fetcher request, i.e. for a single fetcher message +# sent from this node to another node, it will be considered timed out if the expected response from that peer is +# not received within this specified duration. +get_from_peer_timeout = 3 + + +# =================================================== +# Configuration options for deploy acceptor component +# =================================================== +[deploy_acceptor] + +# If true, the deploy acceptor will verify the account associated with a received deploy prior to accepting it. +verify_accounts = true + + +# ======================================================== +# Configuration options for the contract runtime component +# ======================================================== +[contract_runtime] +# Optional setting to enable bonding or not. If unset, defaults to false. +#enable_bonding = false + +# Optional maximum size of the database to use for the global state store. +# +# If unset, defaults to 805,306,368,000 == 750 GiB. +# +# The size should be a multiple of the OS page size. +#max_global_state_size = 805306368000 diff --git a/protocol_versions b/protocol_versions new file mode 100644 index 0000000..fa86168 --- /dev/null +++ b/protocol_versions @@ -0,0 +1 @@ +1_0_0 From 0180ec91738be00bdd00a0b98ee790880b12f990 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:14:32 -0500 Subject: [PATCH 02/12] casper-test 1.1.0 --- casper-node_release | 2 +- config/CHANGELOG.md | 22 ++++++++++++++++++++++ config/accounts.toml | 27 --------------------------- config/chainspec.toml | 19 ++++++++++++------- config/config-example.toml | 7 +++++-- protocol_versions | 1 + 6 files changed, 41 insertions(+), 37 deletions(-) delete mode 100644 config/accounts.toml diff --git a/casper-node_release b/casper-node_release index 27ef37b..50cf998 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.0.0-31d7de47 \ No newline at end of file +1.1.1-874c2db4 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 85c8fd1..0d24942 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,28 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.1.0 - 166 +### casper-node 1.1.1-874c2db4 + +### Added +* chainspec.toml + * network + * maximum_net_message_size + * deploys + * max_deploy_size + +### Changed +* chainspec.toml + * protocol + * version + * hard_reset set to true + * activation_point + * system_costs + * auction_costs + * add_bid set to 2_500_000_000 + * delegate set to 2_500_000_000 + + ## 1.0.0 - 2021-04-08T17:00:00Z ### casper-node 1.0.0-31d7de47 diff --git a/config/accounts.toml b/config/accounts.toml deleted file mode 100644 index 5e77bb1..0000000 --- a/config/accounts.toml +++ /dev/null @@ -1,27 +0,0 @@ -[[accounts]] -public_key = "018afa98ca4be12d613617f7339a2d576950a2f9a92102ca4d6508ee31b54d2c02" -balance = "9999995600000000000" - -[[accounts]] -public_key = "0106ca7c39cd272dbf21a86eeb3b36b7c26e2e9b94af64292419f7862936bca2ca" -balance = "100000000000" - -[accounts.validator] -bonded_amount = "1000000000000" -delegation_rate = 10 - -[[accounts]] -public_key = "017d96b9a63abcb61c870a4f55187a0a7ac24096bdb5fc585c12a686a4d892009e" -balance = "100000000000" - -[accounts.validator] -bonded_amount = "1000000000000" -delegation_rate = 10 - -[[accounts]] -public_key = "016f6ed70e4a5acec750dc087674e5de2ad7b6d9595945c4059c5ca1a47d4dd3ab" -balance = "1100000000000" - -[[accounts]] -public_key = "01fddc7e47ac36a240007eba368e417dd52d824026fb9baaa1454817993ce985ea" -balance = "1100000000000" diff --git a/config/chainspec.toml b/config/chainspec.toml index f8bf215..b80dbd5 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,8 +1,8 @@ [protocol] # Protocol version. -version = '1.0.0' +version = '1.1.0' # Whether we need to clear latest blocks back to the switch block just before the activation point or not. -hard_reset = false +hard_reset = true # This protocol version becomes active at this point. # # If it is a timestamp string, it represents the timestamp for the genesis block. This is the beginning of era 0. By @@ -11,13 +11,16 @@ hard_reset = false # 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 = '2021-04-08T17:00:00Z' +activation_point = 166 [network] # Human readable name for convenience; the genesis_hash is the true identifier. The name influences the genesis hash by # contributing to the seeding of the pseudo-random number generator used in contract-runtime for computing genesis # post-state hash. name = 'casper-test' +# 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 [core] # Era duration. @@ -36,14 +39,14 @@ locked_funds_period = '90days' unbonding_delay = 7 # Round seigniorage rate represented as a fraction of the total supply. # -# Annual issuance: 8% +# Annual issuance: 0.25% # Minimum round exponent: 16 # Ticks per year: 31536000000 # # (1+0.08)^((2^16)/31536000000)-1 is expressed as a fractional number below # Python: # from fractions import Fraction -# Fraction((1 + 0.08)**((2**16)/31536000000) - 1).limit_denominator(1000000000) +# Fraction((1 + 0.0025)**((2**16)/31536000000) - 1).limit_denominator(1000000000) round_seigniorage_rate = [1, 192720971] [highway] @@ -72,6 +75,8 @@ max_ttl = '1day' max_dependencies = 10 # Maximum block size in bytes including deploys contained by the block. 0 means unlimited. max_block_size = 10_485_760 +# Maximum deploy size in bytes. Size is of the deploy when serialized via ToBytes. +max_deploy_size = 1_048_576 # The maximum number of non-transfer deploys permitted in a single block. block_max_deploy_count = 100 # The maximum number of wasm-less transfer deploys permitted in a single block. @@ -182,9 +187,9 @@ wasmless_transfer_cost = 10_000 [system_costs.auction_costs] get_era_validators = 10_000 read_seigniorage_recipients = 10_000 -add_bid = 10_000 +add_bid = 2_500_000_000 withdraw_bid = 10_000 -delegate = 10_000 +delegate = 2_500_000_000 undelegate = 10_000 run_auction = 10_000 slash = 10_000 diff --git a/config/config-example.toml b/config/config-example.toml index 0a94988..bbcd653 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -26,7 +26,6 @@ abbreviate_modules = false # Configuration options for consensus # =================================== [consensus] - # Path (absolute, or relative to this config.toml) to validator's secret key file used to sign # consensus messages. secret_key_path = '/etc/casper/validator_keys/secret_key.pem' @@ -67,7 +66,6 @@ bind_address = '0.0.0.0:35000' # one connection. known_addresses = ['3.208.91.63:35000','35.169.197.193:35000'] - # The interval (in milliseconds) between each fresh round of gossiping the node's public address. gossip_interval = 120_000 @@ -256,3 +254,8 @@ verify_accounts = true # # The size should be a multiple of the OS page size. #max_global_state_size = 805306368000 + +# Optional depth limit to use for global state queries. +# +# If unset, defaults to 5. +#max_query_depth = 5 diff --git a/protocol_versions b/protocol_versions index fa86168..c79c509 100644 --- a/protocol_versions +++ b/protocol_versions @@ -1 +1,2 @@ 1_0_0 +1_1_0 From f305455fc7f32f6c47b8977daa223e944969a301 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:27:25 -0500 Subject: [PATCH 03/12] casper-test 1.1.2 --- casper-node_release | 2 +- config/CHANGELOG.md | 11 +++++++++++ config/chainspec.toml | 4 ++-- protocol_versions | 1 + 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/casper-node_release b/casper-node_release index 50cf998..71a8e85 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.1.1-874c2db4 \ No newline at end of file +1.1.2-a2679a4f \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 0d24942..1b05492 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.1.2 - 388 +### casper-node 1.1.2-a2679a4f + +### Changed +* chainspec.toml + * protocol + * version + * hard_reset set to true + * activation_point + + ## 1.1.0 - 166 ### casper-node 1.1.1-874c2db4 diff --git a/config/chainspec.toml b/config/chainspec.toml index b80dbd5..00915fe 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.1.0' +version = '1.1.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. @@ -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 = 166 +activation_point = 388 [network] # Human readable name for convenience; the genesis_hash is the true identifier. The name influences the genesis hash by diff --git a/protocol_versions b/protocol_versions index c79c509..6c8bb81 100644 --- a/protocol_versions +++ b/protocol_versions @@ -1,2 +1,3 @@ 1_0_0 1_1_0 +1_1_2 From 34d04ab2664c980f8e624009f8ca53f5cee71be4 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:33:00 -0500 Subject: [PATCH 04/12] casper-test 1.2.0 --- casper-node_release | 2 +- config/CHANGELOG.md | 26 +++++++++++++++++- config/chainspec.toml | 6 ++-- config/config-example.toml | 56 ++++++++++++++++++++++++++++++++++++-- protocol_versions | 1 + 5 files changed, 84 insertions(+), 7 deletions(-) diff --git a/casper-node_release b/casper-node_release index 71a8e85..a742d17 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.1.2-a2679a4f \ No newline at end of file +1.2.0-58912c93 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 1b05492..4151398 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,31 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.2.0 - 490 +### casper-node 1.2.0-58912c93 + +## Added +* config-example.toml + * consensus + * highway + * standstill_timeout + * log_participation_interval + * log_unit_sizes + * max_requests_for_vertex + * round_success_meter + * num_rounds_to_consider + * num_rounds_slowdown + * num_rounds_speedup + * acceleration_parameter + * acceleration_ftt + +## Changed +* chainspec.toml + * protocol + * version + * activation_point + + ## 1.1.2 - 388 ### casper-node 1.1.2-a2679a4f @@ -19,7 +44,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * chainspec.toml * protocol * version - * hard_reset set to true * activation_point diff --git a/config/chainspec.toml b/config/chainspec.toml index 00915fe..99400e5 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.1.2' +version = '1.2.0' # 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,9 @@ 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 = 388 +activation_point = 490 +# Optional era ID in which the last emergency restart happened. +#last_emergency_restart = 0 [network] # Human readable name for convenience; the genesis_hash is the true identifier. The name influences the genesis hash by diff --git a/config/config-example.toml b/config/config-example.toml index bbcd653..72b3d99 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -26,20 +26,61 @@ abbreviate_modules = false # Configuration options for consensus # =================================== [consensus] + # Path (absolute, or relative to this config.toml) to validator's secret key file used to sign # consensus messages. secret_key_path = '/etc/casper/validator_keys/secret_key.pem' + +# =========================================== +# Configuration options for Highway consensus +# =========================================== +[consensus.highway] + # The folder in which the files with per-era latest unit hashes will be stored. unit_hashes_folder = "/var/lib/casper/casper-node" # The duration for which incoming vertices with missing dependencies should be kept in a queue. pending_vertex_timeout = '30min' +# If the current era's protocol state has not progressed for this long, shut down. +standstill_timeout = '5min' + +# Log inactive or faulty validators periodically, with this interval. +log_participation_interval = '1min' + +# Log the size of every incoming and outgoing serialized unit. +log_unit_sizes = false + # The maximum number of blocks by which execution is allowed to lag behind finalization. # If it is more than that, consensus will pause, and resume once the executor has caught up. max_execution_delay = 3 +# The maximum number of peers we request the same vertex from in parallel. +max_requests_for_vertex = 5 + +[consensus.highway.round_success_meter] +# The number of most recent rounds we will be keeping track of. +num_rounds_to_consider = 40 + +# The number of successful rounds that triggers us to slow down: With this many or fewer +# successes per `num_rounds_to_consider`, we increase our round exponent. +num_rounds_slowdown = 10 + +# The number of successful rounds that triggers us to speed up: With this many or more successes +# per `num_rounds_to_consider`, we decrease our round exponent. +num_rounds_speedup = 32 + +# We will try to accelerate (decrease our round exponent) every `acceleration_parameter` rounds if +# we have few enough failures. +acceleration_parameter = 40 + +# The FTT, as a percentage (i.e. `acceleration_ftt = [1, 100]` means 1% of the validators' total weight), which +# we will use for looking for a summit in order to determine a proposal's finality. +# The required quorum in a summit we will look for to check if a round was successful is +# determined by this FTT. +acceleration_ftt = [1, 100] + # ==================================== # Configuration options for networking @@ -139,9 +180,6 @@ address = '0.0.0.0:9999' # The number of event stream events to buffer. event_stream_buffer_length = 5000 -# The capacity of the broadcast channel size. -broadcast_channel_size = 6500 - # The global max rate of requests (per second) before they are limited. # Request will be delayed to the next 1 second bucket once limited. qps_limit = 10 @@ -245,6 +283,7 @@ verify_accounts = true # Configuration options for the contract runtime component # ======================================================== [contract_runtime] + # Optional setting to enable bonding or not. If unset, defaults to false. #enable_bonding = false @@ -259,3 +298,14 @@ verify_accounts = true # # If unset, defaults to 5. #max_query_depth = 5 + + +# ==================================================================== +# Configuration options for selecting deploys to propose in new blocks +# ==================================================================== +[block_proposer] + +# Deploys are only proposed in a new block if they have been received at least this long ago. +# A longer delay makes it more likely that many proposed deploys are already known by the +# other nodes, and don't have to be requested from the proposer afterwards. +#deploy_delay = '1min' diff --git a/protocol_versions b/protocol_versions index 6c8bb81..50c48d2 100644 --- a/protocol_versions +++ b/protocol_versions @@ -1,3 +1,4 @@ 1_0_0 1_1_0 1_1_2 +1_2_0 From e6b441abd3582f36ce00ff5b5aa7b412258e04e8 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:38:32 -0500 Subject: [PATCH 05/12] casper-test 1.2.1 --- casper-node_release | 2 +- config/CHANGELOG.md | 10 ++++++++++ config/chainspec.toml | 6 +++--- protocol_versions | 1 + 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/casper-node_release b/casper-node_release index a742d17..095c2fa 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.2.0-58912c93 \ No newline at end of file +1.2.1-b7802f4 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 4151398..45cb974 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.2.1 - 1143 +### casper-node 1.2.1-b7802f4 + +### Changed +* chainspec.toml + * protocol + * version + * activation_point + + ## 1.2.0 - 490 ### casper-node 1.2.0-58912c93 diff --git a/config/chainspec.toml b/config/chainspec.toml index 99400e5..d768f7c 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.2.0' +version = '1.2.1' # 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 = 490 +activation_point = 1143 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 @@ -45,7 +45,7 @@ unbonding_delay = 7 # Minimum round exponent: 16 # Ticks per year: 31536000000 # -# (1+0.08)^((2^16)/31536000000)-1 is expressed as a fractional number below +# (1+0.0025)^((2^16)/31536000000)-1 is expressed as a fractional number below # Python: # from fractions import Fraction # Fraction((1 + 0.0025)**((2**16)/31536000000) - 1).limit_denominator(1000000000) diff --git a/protocol_versions b/protocol_versions index 50c48d2..622fad9 100644 --- a/protocol_versions +++ b/protocol_versions @@ -2,3 +2,4 @@ 1_1_0 1_1_2 1_2_0 +1_2_1 From 2577ac17324aa2434b0a5342d5e2d14e7edacedc Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:43:16 -0500 Subject: [PATCH 06/12] casper-test 1.3.1 --- casper-node_release | 2 +- config/CHANGELOG.md | 30 +++++++++++++++++++++++++ config/chainspec.toml | 4 ++-- config/config-example.toml | 45 ++++++++++++++++++++++++++++---------- protocol_versions | 1 + 5 files changed, 68 insertions(+), 14 deletions(-) diff --git a/casper-node_release b/casper-node_release index 095c2fa..a419e2b 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.2.1-b7802f4 \ No newline at end of file +1.3.1-10ed44340 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 45cb974..70bd938 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,36 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.3.1 - 1346 +### casper-node 1.3.1-10ed44340 + +## Added +* config-example.toml + * consensus + * highway + * shutdown_on_standstill = true + * network + * max_outgoing_byte_rate_non_validators + * max_incoming_message_rate_non_validators + * storage + * enable_mem_deduplication + * mem_pool_prune_interval + * linear_chain_sync + * sync_timeout + +## Changed +* chainspec.toml + * protocol + * version + * activation_point +* config-example.toml + * consensus + * highway + * standstill_timeout from 5min to 30min + * event_stream_server + * qps_limit changed to max_concurrent_subscribers + + ## 1.2.1 - 1143 ### casper-node 1.2.1-b7802f4 diff --git a/config/chainspec.toml b/config/chainspec.toml index d768f7c..4938ff8 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.2.1' +version = '1.3.1' # 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 = 1143 +activation_point = 1346 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 diff --git a/config/config-example.toml b/config/config-example.toml index 72b3d99..2d37846 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -44,7 +44,10 @@ unit_hashes_folder = "/var/lib/casper/casper-node" pending_vertex_timeout = '30min' # If the current era's protocol state has not progressed for this long, shut down. -standstill_timeout = '5min' +standstill_timeout = '30min' + +# If after another `standstill_timeout` there still was no progress, shut down. +shutdown_on_standstill = true # Log inactive or faulty validators periodically, with this interval. log_participation_interval = '1min' @@ -110,13 +113,6 @@ known_addresses = ['3.208.91.63:35000','35.169.197.193:35000'] # The interval (in milliseconds) between each fresh round of gossiping the node's public address. gossip_interval = 120_000 -# Enable systemd support. If enabled, the node will notify systemd once it has synced and its -# listening socket for incoming connections is open. -# -# It is usually better to leave this option off and enable it explicitly via command-line override -# only in the unit files themselves via `-C=network.systemd_support=true`. -systemd_support = false - # Minimum amount of time that has to pass before attempting to reconnect after losing all # connections to established nodes. isolation_reconnect_delay = '2s' @@ -128,6 +124,15 @@ initial_gossip_delay = '5s' # How long a connection is allowed to be stuck as pending before it is abandoned. max_addr_pending_time = '1min' +# The maximum amount of upstream bandwidth in bytes per second allocated to non-validating peers. +# A value of `0` means unlimited. +max_outgoing_byte_rate_non_validators = 6553600 + +# The maximum amount of requests from validating peers per second answered. +# A value of `0` means unlimited. +max_incoming_message_rate_non_validators = 3000 + + # ================================================== # Configuration options for the JSON-RPC HTTP server # ================================================== @@ -180,9 +185,8 @@ address = '0.0.0.0:9999' # The number of event stream events to buffer. event_stream_buffer_length = 5000 -# The global max rate of requests (per second) before they are limited. -# Request will be delayed to the next 1 second bucket once limited. -qps_limit = 10 +# The maximum number of subscribers across all event streams the server will permit at any one time. +max_concurrent_subscribers = 100 # =============================================== @@ -226,6 +230,16 @@ max_deploy_metadata_store_size = 322_122_547_200 # 10_737_418_240 == 10 GiB. max_state_store_size = 10_737_418_240 +# Memory deduplication. +# +# If enabled, nodes will attempt to share loaded objects if possible. +enable_mem_deduplication = true + +# Memory duplication garbage collection. +# +# Sets the frequency how often the memory pool cache is swept for free references. +mem_pool_prune_interval = 1024 + # =================================== # Configuration options for gossiping @@ -300,6 +314,15 @@ verify_accounts = true #max_query_depth = 5 +# ======================================================== +# Configuration options for synchronizing the linear chain +# ======================================================== +[linear_chain_sync] + +# The amount of time that the node will try to sync without making progress before shutting down. +sync_timeout = '1hr' + + # ==================================================================== # Configuration options for selecting deploys to propose in new blocks # ==================================================================== diff --git a/protocol_versions b/protocol_versions index 622fad9..8d7dafd 100644 --- a/protocol_versions +++ b/protocol_versions @@ -3,3 +3,4 @@ 1_1_2 1_2_0 1_2_1 +1_3_1 From f8effbe574b305f2a56b14b258c61408b92027ff Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:50:12 -0500 Subject: [PATCH 07/12] casper-test 1.3.2 --- casper-node_release | 2 +- config/CHANGELOG.md | 10 ++++++++++ config/chainspec.toml | 4 ++-- protocol_versions | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/casper-node_release b/casper-node_release index a419e2b..5c86bc6 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.3.1-10ed44340 \ No newline at end of file +1.3.2-e2027dbe9 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 70bd938..38a902d 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.3.2 - 1418 +### casper-node 1.3.2-e2027dbe9 + +### Changed +* chainspec.toml + * protocol + * version + * activation_point + + ## 1.3.1 - 1346 ### casper-node 1.3.1-10ed44340 diff --git a/config/chainspec.toml b/config/chainspec.toml index 4938ff8..7d52b5e 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.3.1' +version = '1.3.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. @@ -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 = 1346 +activation_point = 1418 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 diff --git a/protocol_versions b/protocol_versions index 8d7dafd..576e12e 100644 --- a/protocol_versions +++ b/protocol_versions @@ -4,3 +4,4 @@ 1_2_0 1_2_1 1_3_1 +1_3_2 From b43499490f85e3eb308795b1fd6cf847e517e8c5 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 14:53:53 -0500 Subject: [PATCH 08/12] casper-test 1.3.4 --- casper-node_release | 2 +- config/CHANGELOG.md | 15 +++++++++++++++ config/chainspec.toml | 4 ++-- config/config-example.toml | 8 ++------ protocol_versions | 1 + 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/casper-node_release b/casper-node_release index 5c86bc6..5e639cf 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.3.2-e2027dbe9 \ No newline at end of file +1.3.4-0d28d49 \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 38a902d..6156d11 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.3.4 - 2005 +### casper-node 1.3.4-0d28d49 + +### Changed +* chainspec.toml + * protocol + * version + * activation_point +* config-example.toml + * consensus + * highway + * pending_vertex_timeout from 30min to 15min + * standstill_timeout from 30min to 15min + + ## 1.3.2 - 1418 ### casper-node 1.3.2-e2027dbe9 diff --git a/config/chainspec.toml b/config/chainspec.toml index 7d52b5e..076d26e 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.3.2' +version = '1.3.4' # 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 = 1418 +activation_point = 2005 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 diff --git a/config/config-example.toml b/config/config-example.toml index 2d37846..e8c98d0 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -41,10 +41,10 @@ secret_key_path = '/etc/casper/validator_keys/secret_key.pem' unit_hashes_folder = "/var/lib/casper/casper-node" # The duration for which incoming vertices with missing dependencies should be kept in a queue. -pending_vertex_timeout = '30min' +pending_vertex_timeout = '15min' # If the current era's protocol state has not progressed for this long, shut down. -standstill_timeout = '30min' +standstill_timeout = '15min' # If after another `standstill_timeout` there still was no progress, shut down. shutdown_on_standstill = true @@ -113,10 +113,6 @@ known_addresses = ['3.208.91.63:35000','35.169.197.193:35000'] # The interval (in milliseconds) between each fresh round of gossiping the node's public address. gossip_interval = 120_000 -# Minimum amount of time that has to pass before attempting to reconnect after losing all -# connections to established nodes. -isolation_reconnect_delay = '2s' - # Initial delay for starting address gossipping after the network starts. This should be slightly # more than the expected time required for initial connections to complete. initial_gossip_delay = '5s' diff --git a/protocol_versions b/protocol_versions index 576e12e..c55a607 100644 --- a/protocol_versions +++ b/protocol_versions @@ -5,3 +5,4 @@ 1_2_1 1_3_1 1_3_2 +1_3_4 From fb37fe4c24436f49adecd5092a06fe2f5497a79e Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:18:59 -0500 Subject: [PATCH 09/12] casper-test 1.4.1 --- casper-node_release | 2 +- config/CHANGELOG.md | 51 ++++++++++++++++++++++++++++++++++++ config/chainspec.toml | 32 ++++++++++++----------- config/config-example.toml | 53 ++++++++++++++++++++++++++------------ config/global_state.toml | 4 +++ protocol_versions | 1 + 6 files changed, 110 insertions(+), 33 deletions(-) create mode 100644 config/global_state.toml diff --git a/casper-node_release b/casper-node_release index 5e639cf..1da9d07 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.3.4-0d28d49 \ No newline at end of file +1.4.1-dd260c86a-casper-mainnet \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 6156d11..c5d652c 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,57 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.4.1 - 2400 +### casper-node 1.4.1-dd260c86a-casper-mainnet + +## Added +* global_state.toml +* chainspec.toml + * core + * max_associated_keys +* config-example.toml + * consensus + * highway + * log_synchronizer_interval + * max_request_batch_size + * network + * estimator_weights + * contract_runtime + * enable_manual_sync + +## Changed +* chainspec.toml + * protocol + * version + * activation_point + * core + * round_seigniorage_rate + * highway + * minimum_round_exponent + * maximum_round_exponent + * deploys + * block_max_deploy_count + * block_max_transfer_count + * wasm + * host_function_costs + * create_purse + * system_costs + * wasmless_transfer_cost + * mint_costs + * mint + * create +* config-example.toml + * consensus + * highway + * pending_vertex_timeout from 15min to 30min + * standstill_timeout from 15min to 30min + +## Removed +* config-example.toml + * consensus + * highway + * shutdown_on_standstill + ## 1.3.4 - 2005 ### casper-node 1.3.4-0d28d49 diff --git a/config/chainspec.toml b/config/chainspec.toml index 076d26e..20d1dc2 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.3.4' +version = '1.4.1' # 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 = 2005 +activation_point = 2400 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 @@ -26,7 +26,7 @@ maximum_net_message_size = 23_068_672 [core] # Era duration. -era_duration = '120minutes' +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 @@ -42,14 +42,16 @@ unbonding_delay = 7 # Round seigniorage rate represented as a fraction of the total supply. # # Annual issuance: 0.25% -# Minimum round exponent: 16 +# Minimum round exponent: 15 # Ticks per year: 31536000000 # -# (1+0.0025)^((2^16)/31536000000)-1 is expressed as a fractional number below +# (1+0.0025)^((2^15)/31536000000)-1 is expressed as a fractional number below # Python: # from fractions import Fraction -# Fraction((1 + 0.0025)**((2**16)/31536000000) - 1).limit_denominator(1000000000) -round_seigniorage_rate = [1, 192720971] +# Fraction((1 + 0.0025)**((2**15)/31536000000) - 1).limit_denominator(1000000000) +round_seigniorage_rate = [1, 385441942] +# Maximum number of associated keys for a single account. +max_associated_keys = 100 [highway] # A number between 0 and 1 representing the fault tolerance threshold as a fraction, used by the internal finalizer. @@ -59,11 +61,11 @@ round_seigniorage_rate = [1, 192720971] 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 = 16 +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 = 18 +maximum_round_exponent = 17 # 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] @@ -80,9 +82,9 @@ max_block_size = 10_485_760 # Maximum deploy size in bytes. Size is of the deploy when serialized via ToBytes. max_deploy_size = 1_048_576 # The maximum number of non-transfer deploys permitted in a single block. -block_max_deploy_count = 100 +block_max_deploy_count = 50 # The maximum number of wasm-less transfer deploys permitted in a single block. -block_max_transfer_count = 2500 +block_max_transfer_count = 1250 # The upper limit of total gas of all deploys in a block. block_gas_limit = 10_000_000_000_000 # The limit of length of serialized payment code arguments. @@ -148,7 +150,7 @@ 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] } 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 = 170_000, arguments = [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_blocktime = { cost = 330, arguments = [0] } @@ -184,7 +186,7 @@ write = { cost = 14_000, arguments = [0, 0, 0, 980] } write_local = { cost = 9_500, arguments = [0, 1_800, 0, 520] } [system_costs] -wasmless_transfer_cost = 10_000 +wasmless_transfer_cost = 100_000_000 [system_costs.auction_costs] get_era_validators = 10_000 @@ -202,9 +204,9 @@ read_era_id = 10_000 activate_bid = 10_000 [system_costs.mint_costs] -mint = 10_000 +mint = 2_500_000_000 reduce_total_supply = 10_000 -create = 10_000 +create = 2_500_000_000 balance = 10_000 transfer = 10_000 read_base_round_reward = 10_000 diff --git a/config/config-example.toml b/config/config-example.toml index e8c98d0..905092d 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -41,17 +41,20 @@ secret_key_path = '/etc/casper/validator_keys/secret_key.pem' unit_hashes_folder = "/var/lib/casper/casper-node" # The duration for which incoming vertices with missing dependencies should be kept in a queue. -pending_vertex_timeout = '15min' +pending_vertex_timeout = '30min' # If the current era's protocol state has not progressed for this long, shut down. -standstill_timeout = '15min' +standstill_timeout = '30min' -# If after another `standstill_timeout` there still was no progress, shut down. -shutdown_on_standstill = true +# Request the latest protocol state from a random peer periodically, with this interval. +request_state_interval = '20sec' # Log inactive or faulty validators periodically, with this interval. log_participation_interval = '1min' +# Log the synchronizer state periodically, with this interval. +log_synchronizer_interval = '5sec' + # Log the size of every incoming and outgoing serialized unit. log_unit_sizes = false @@ -62,6 +65,11 @@ max_execution_delay = 3 # The maximum number of peers we request the same vertex from in parallel. max_requests_for_vertex = 5 +# The maximum number of dependencies we request per validator in a batch. +# Limits requests per validator in panorama - in order to get a total number of +# requests, multiply by # of validators. +max_request_batch_size = 20 + [consensus.highway.round_success_meter] # The number of most recent rounds we will be keeping track of. num_rounds_to_consider = 40 @@ -110,12 +118,12 @@ bind_address = '0.0.0.0:35000' # one connection. known_addresses = ['3.208.91.63:35000','35.169.197.193:35000'] -# The interval (in milliseconds) between each fresh round of gossiping the node's public address. -gossip_interval = 120_000 +# The interval between each fresh round of gossiping the node's public address. +gossip_interval = '120sec' # Initial delay for starting address gossipping after the network starts. This should be slightly # more than the expected time required for initial connections to complete. -initial_gossip_delay = '5s' +initial_gossip_delay = '5sec' # How long a connection is allowed to be stuck as pending before it is abandoned. max_addr_pending_time = '1min' @@ -124,10 +132,16 @@ max_addr_pending_time = '1min' # A value of `0` means unlimited. max_outgoing_byte_rate_non_validators = 6553600 -# The maximum amount of requests from validating peers per second answered. +# The maximum allowed impact of requests from non-validating peers per second answered. # A value of `0` means unlimited. max_incoming_message_rate_non_validators = 3000 +# Weights for impact estimation of incoming messages, used in combination with +# `max_incoming_message_rate_non_validators`. +# +# Any weight set to 0 means that the category of traffic is exempt from throttling. +estimator_weights = { consensus=0, deploy_requests=1 } + # ================================================== # Configuration options for the JSON-RPC HTTP server @@ -253,20 +267,20 @@ infection_target = 3 # excluding us since 80% saturation would imply 3 new infections in 15 peers. saturation_limit_percent = 80 -# The maximum duration in seconds for which to keep finished entries. +# The maximum duration for which to keep finished entries. # # The longer they are retained, the lower the likelihood of re-gossiping a piece of data. However, # the longer they are retained, the larger the list of finished entries can grow. -finished_entry_duration_secs = 60 +finished_entry_duration = '60sec' -# The timeout duration in seconds for a single gossip request, i.e. for a single gossip message +# The timeout duration for a single gossip request, i.e. for a single gossip message # sent from this node, it will be considered timed out if the expected response from that peer is # not received within this specified duration. -gossip_request_timeout_secs = 30 +gossip_request_timeout = '30sec' -# The timeout duration in seconds for retrieving the remaining part(s) of newly-discovered data +# The timeout duration for retrieving the remaining part(s) of newly-discovered data # from a peer which gossiped information about that data to this node. -get_remainder_timeout_secs = 5 +get_remainder_timeout = '5sec' # ================================= @@ -274,10 +288,10 @@ get_remainder_timeout_secs = 5 # ================================= [fetcher] -# The timeout duration in seconds for a single fetcher request, i.e. for a single fetcher message +# The timeout duration for a single fetcher request, i.e. for a single fetcher message # sent from this node to another node, it will be considered timed out if the expected response from that peer is # not received within this specified duration. -get_from_peer_timeout = 3 +get_from_peer_timeout = '3sec' # =================================================== @@ -309,6 +323,11 @@ verify_accounts = true # If unset, defaults to 5. #max_query_depth = 5 +# Enable manual synchronizing to disk. +# +# If unset, defaults to false. +enable_manual_sync = true + # ======================================================== # Configuration options for synchronizing the linear chain @@ -327,4 +346,4 @@ sync_timeout = '1hr' # Deploys are only proposed in a new block if they have been received at least this long ago. # A longer delay makes it more likely that many proposed deploys are already known by the # other nodes, and don't have to be requested from the proposer afterwards. -#deploy_delay = '1min' +deploy_delay = '15sec' diff --git a/config/global_state.toml b/config/global_state.toml new file mode 100644 index 0000000..50dc90a --- /dev/null +++ b/config/global_state.toml @@ -0,0 +1,4 @@ +[[entries]] +key = "system-contract-registry-0000000000000000000000000000000000000000000000000000000000000000" +value = "AL0AAAAEAAAABwAAAGF1Y3Rpb26T2SPjNrIKTEyhTVkrYOW9P+Mwd1YYKQEE+b6zJtt64g4AAABoYW5kbGUgcGF5bWVudIz15Kz1H1TrWSkVmRh4ONw7wjQInEb8bKitF+dirkQBBAAAAG1pbnQBDD/oG3uGLlDHfvmpWKBb+phETyb5byPTehPJYkTPtxAAAABzdGFuZGFyZCBwYXltZW50DJlsEVBEcah+RVry6GsqXt1BZJm2P3gnDniX/qvJWMYRCg8gAAAA" + diff --git a/protocol_versions b/protocol_versions index c55a607..0c9b3f8 100644 --- a/protocol_versions +++ b/protocol_versions @@ -6,3 +6,4 @@ 1_3_1 1_3_2 1_3_4 +1_4_1 From d9a368f5354824daf138d7a4234150e8af71bc83 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:26:42 -0500 Subject: [PATCH 10/12] casper-test 1.4.2 --- casper-node_release | 2 +- config/CHANGELOG.md | 23 +++++++++++++++++++++++ config/chainspec.toml | 10 ++++++---- config/config-example.toml | 8 +++----- config/global_state.toml | 4 ---- protocol_versions | 1 + 6 files changed, 34 insertions(+), 14 deletions(-) delete mode 100644 config/global_state.toml diff --git a/casper-node_release b/casper-node_release index 1da9d07..652048f 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.4.1-dd260c86a-casper-mainnet \ No newline at end of file +1.4.2-930a43774-casper-mainnet \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index c5d652c..7212eb4 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.4.2 - 2736 +### casper-node 1.4.2-930a43774-casper-mainnet + +## Added +* chainspec.toml + * core + * max_runtime_call_stack_height + +## Changed +* chainspec.toml + * protocol + * version + * activation_point + * wasm + * host_function_costs + * transfer_from_purse_to_account + * transfer_to_account +* config-example.toml + * contract_runtime + * max_global_state_size + + + ## 1.4.1 - 2400 ### casper-node 1.4.1-dd260c86a-casper-mainnet diff --git a/config/chainspec.toml b/config/chainspec.toml index 20d1dc2..c07ef02 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.4.1' +version = '1.4.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. @@ -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 = 2400 +activation_point = 2736 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 @@ -52,6 +52,8 @@ unbonding_delay = 7 round_seigniorage_rate = [1, 385441942] # Maximum number of associated keys for a single account. max_associated_keys = 100 +# Maximum height of contract runtime call stack. +max_runtime_call_stack_height = 12 [highway] # A number between 0 and 1 representing the fault tolerance threshold as a fraction, used by the internal finalizer. @@ -178,9 +180,9 @@ 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 = 160_000, arguments = [0, 0, 0, 0, 0, 0, 0, 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_to_account = { cost = 24_000, arguments = [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] } write_local = { cost = 9_500, arguments = [0, 1_800, 0, 520] } diff --git a/config/config-example.toml b/config/config-example.toml index 905092d..5648d1a 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -37,9 +37,6 @@ secret_key_path = '/etc/casper/validator_keys/secret_key.pem' # =========================================== [consensus.highway] -# The folder in which the files with per-era latest unit hashes will be stored. -unit_hashes_folder = "/var/lib/casper/casper-node" - # The duration for which incoming vertices with missing dependencies should be kept in a queue. pending_vertex_timeout = '30min' @@ -205,7 +202,8 @@ max_concurrent_subscribers = 100 [storage] # Path (absolute, or relative to this config.toml) to the folder where any files created -# or read by the storage component will exist. +# or read by the storage component will exist. A subfolder named with the network name will be +# automatically created and used for the storage component files. # # If the folder doesn't exist, it and any required parents will be created. # @@ -316,7 +314,7 @@ verify_accounts = true # If unset, defaults to 805,306,368,000 == 750 GiB. # # The size should be a multiple of the OS page size. -#max_global_state_size = 805306368000 +max_global_state_size = 1099511627776 # Optional depth limit to use for global state queries. # diff --git a/config/global_state.toml b/config/global_state.toml deleted file mode 100644 index 50dc90a..0000000 --- a/config/global_state.toml +++ /dev/null @@ -1,4 +0,0 @@ -[[entries]] -key = "system-contract-registry-0000000000000000000000000000000000000000000000000000000000000000" -value = "AL0AAAAEAAAABwAAAGF1Y3Rpb26T2SPjNrIKTEyhTVkrYOW9P+Mwd1YYKQEE+b6zJtt64g4AAABoYW5kbGUgcGF5bWVudIz15Kz1H1TrWSkVmRh4ONw7wjQInEb8bKitF+dirkQBBAAAAG1pbnQBDD/oG3uGLlDHfvmpWKBb+phETyb5byPTehPJYkTPtxAAAABzdGFuZGFyZCBwYXltZW50DJlsEVBEcah+RVry6GsqXt1BZJm2P3gnDniX/qvJWMYRCg8gAAAA" - diff --git a/protocol_versions b/protocol_versions index 0c9b3f8..8571d8f 100644 --- a/protocol_versions +++ b/protocol_versions @@ -7,3 +7,4 @@ 1_3_2 1_3_4 1_4_1 +1_4_2 From ea9f145212985930083328556117afa8b2a4066b Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:29:28 -0500 Subject: [PATCH 11/12] casper-test 1.4.3 --- casper-node_release | 2 +- config/CHANGELOG.md | 12 ++++++++++++ config/chainspec.toml | 6 +++--- config/config-example.toml | 6 +++--- protocol_versions | 1 + 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/casper-node_release b/casper-node_release index 652048f..b500c5c 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.4.2-930a43774-casper-mainnet \ No newline at end of file +1.4.3-a44bed1fd-casper-mainnet \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 7212eb4..2f2c5b5 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.4.3 - 2940 +### casper-node 1.4.3-a44bed1fd-casper-mainnet + +## Changed +* chainspec.toml + * protocol + * version + * activation_point + * wasm + * max_stack_height + + ## 1.4.2 - 2736 ### casper-node 1.4.2-930a43774-casper-mainnet diff --git a/config/chainspec.toml b/config/chainspec.toml index c07ef02..55705c9 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.4.2' +version = '1.4.3' # 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 = 2736 +activation_point = 2940 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 @@ -100,7 +100,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 = 65_536 +max_stack_height = 188 [wasm.storage_costs] # Gas charged per byte stored in the global state. diff --git a/config/config-example.toml b/config/config-example.toml index 5648d1a..7ebab24 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -314,7 +314,7 @@ verify_accounts = true # If unset, defaults to 805,306,368,000 == 750 GiB. # # The size should be a multiple of the OS page size. -max_global_state_size = 1099511627776 +max_global_state_size = 1_099_511_627_776 # Optional depth limit to use for global state queries. # @@ -323,8 +323,8 @@ max_global_state_size = 1099511627776 # Enable manual synchronizing to disk. # -# If unset, defaults to false. -enable_manual_sync = true +# If unset, defaults to true. +#enable_manual_sync = true # ======================================================== diff --git a/protocol_versions b/protocol_versions index 8571d8f..dfd24d0 100644 --- a/protocol_versions +++ b/protocol_versions @@ -8,3 +8,4 @@ 1_3_4 1_4_1 1_4_2 +1_4_3 From 88c9ff369d3adf44afeb2c0b6f99e4332681f7c8 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:38:27 -0500 Subject: [PATCH 12/12] casper-test 1.4.4 --- casper-node_release | 2 +- config/CHANGELOG.md | 10 ++++++++++ config/chainspec.toml | 4 ++-- protocol_versions | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/casper-node_release b/casper-node_release index b500c5c..f3d1990 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.4.3-a44bed1fd-casper-mainnet \ No newline at end of file +1.4.4-6962edb3d-casper-mainnet \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 2f2c5b5..605846c 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,6 +12,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). [comment]: <> (Security: in case of vulnerabilities) +## 1.4.4 - 3264 +### casper-node 1.4.4-6962edb3d-casper-mainnet + +## Changed +* chainspec.toml + * protocol + * version + * activation_point + + ## 1.4.3 - 2940 ### casper-node 1.4.3-a44bed1fd-casper-mainnet diff --git a/config/chainspec.toml b/config/chainspec.toml index 55705c9..8483738 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.4.3' +version = '1.4.4' # 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 = 2940 +activation_point = 3264 # Optional era ID in which the last emergency restart happened. #last_emergency_restart = 0 diff --git a/protocol_versions b/protocol_versions index dfd24d0..1c8f3aa 100644 --- a/protocol_versions +++ b/protocol_versions @@ -9,3 +9,4 @@ 1_4_1 1_4_2 1_4_3 +1_4_4