From 984926096a4f77c53fccc5e304a4989b1c1580b4 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Thu, 11 May 2023 11:35:28 -0400 Subject: [PATCH 1/2] 1.5.0 for integration-test --- casper-node_release | 2 +- config/CHANGELOG.md | 129 ++++++++++++++++- config/chainspec.toml | 53 ++++--- config/config-example.toml | 289 +++++++++++++++++++++++++++++++------ protocol_versions | 3 +- 5 files changed, 405 insertions(+), 71 deletions(-) diff --git a/casper-node_release b/casper-node_release index 32e7bbc..eb93a00 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -1.4.15-039d438f2-casper-mainnet \ No newline at end of file +1.5.0-rc.1-a50b85a \ No newline at end of file diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 2452ca5..0a1fdb1 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -11,7 +11,132 @@ 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.4.15 - 8971 +## 1.5.0 - 9128 +### casper-node 1.5.0-rc.1-a50b85a + +## Added +* chainspec.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 +* 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 + * speculative_exec_server + * enable_server + * address + * qps_limit + * max_body_bytes + * rest_server + * enable_server + * event_stream_server + * enable_server + * 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.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 - 8971 ### casper-node 1.4.15-039d438f2-casper-mainnet ## Added @@ -30,7 +155,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). * call * call_indirect -# 1.4.13 - 8078 +## 1.4.13 - 8078 ### casper-node 1.4.13-c8db6a737-casper-mainnet ## Added diff --git a/config/chainspec.toml b/config/chainspec.toml index f3f7f60..cb1493b 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1,6 +1,6 @@ [protocol] # Protocol version. -version = '1.4.15' +version = '1.5.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. @@ -22,7 +22,7 @@ activation_point = 8971 name = 'integration-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 +maximum_net_message_size = 25_165_824 [core] # Era duration. @@ -30,19 +30,35 @@ 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 = 'Strict' # 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. # # Annual issuance: 8% -# Minimum round exponent: 15 +# Minimum block time: 2^15 milliseconds # Ticks per year: 31536000000 # # (1+0.08)^((2^15)/31536000000)-1 is expressed as a fractional number below @@ -54,26 +70,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] @@ -174,7 +186,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] } @@ -192,6 +204,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] } @@ -229,6 +242,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 @@ -237,6 +251,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 diff --git a/config/config-example.toml b/config/config-example.toml index a786c91..1ddac14 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -6,6 +6,21 @@ # If set, use this hash as a trust anchor when joining an existing network. #trusted_hash = 'HEX-FORMATTED BLOCK HASH' +# Whether to synchronize all data back to genesis, or just [deploys.max_ttl] (chainspec setting) worth of data. +sync_to_genesis = true + +# Idle time after which the syncing process is considered stalled. +idle_tolerance = '20min' + +# When the syncing process is considered stalled, it'll be retried up to `max_attempts` times. +max_attempts = 3 + +# Default delay for the control events that have no dedicated delay requirements. +control_logic_default_delay = '1sec' + +# Flag which forces the node to resync all of the blocks. +force_resync = false + # ================================= # Configuration options for logging @@ -31,6 +46,43 @@ abbreviate_modules = false # consensus messages. secret_key_path = '/etc/casper/validator_keys/secret_key.pem' +# 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 Zug consensus +# ======================================= +[consensus.zug] + +# Request the latest protocol state from a random peer periodically, with this interval. +# '0sec' means it is disabled and we never request the protocol state from a peer. +sync_state_interval = '1sec' + +# Log inactive or faulty validators periodically, with this interval. +# '0sec' means it is disabled and we never print the log message. +log_participation_interval = '1min' + +# The minimal proposal timeout. Validators wait this long for a proposal to receive a quorum of +# echo messages, before they vote to make the round skippable and move on to the next proposer. +proposal_timeout = '10sec' + +# The additional proposal delay that is still considered fast enough, in percent. This should +# take into account variables like empty vs. full blocks, network traffic etc. +# E.g. if proposing a full block while under heavy load takes 50% longer than an empty one +# while idle this should be at least 50, meaning that the timeout is 50% longer than +# necessary for a quorum of recent proposals, approximately. +proposal_grace_period = 200 + +# The average number of rounds after which the proposal timeout adapts by a factor of 2. +# Note: It goes up faster than it goes down: it takes fewer rounds to double than to halve. +proposal_timeout_inertia = 10 + +# The maximum difference between validators' clocks we expect. Incoming proposals whose timestamp +# lies in the future by more than that are rejected. +clock_tolerance = '1sec' + # =========================================== # Configuration options for Highway consensus @@ -40,25 +92,21 @@ secret_key_path = '/etc/casper/validator_keys/secret_key.pem' # 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 = '30min' - # Request the latest protocol state from a random peer periodically, with this interval. +# '0sec' means it is disabled and we never request the protocol state from a peer. request_state_interval = '20sec' # Log inactive or faulty validators periodically, with this interval. +# '0sec' means it is disabled and we never print the log message. log_participation_interval = '1min' # Log the synchronizer state periodically, with this interval. +# '0sec' means it is disabled and we never print the log message. log_synchronizer_interval = '5sec' # 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 @@ -72,14 +120,14 @@ max_request_batch_size = 20 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. +# successes per `num_rounds_to_consider`, we increase our round length. 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. +# per `num_rounds_to_consider`, we decrease our round length. num_rounds_speedup = 32 -# We will try to accelerate (decrease our round exponent) every `acceleration_parameter` rounds if +# We will try to accelerate (decrease our round length) every `acceleration_parameter` rounds if # we have few enough failures. acceleration_parameter = 40 @@ -113,7 +161,10 @@ bind_address = '0.0.0.0:35000' # # Multiple addresses can be given and the node will attempt to connect to each, requiring at least # one connection. -known_addresses = ['18.219.25.234:35000','3.138.177.248:35000','3.140.179.157:35000','3.143.158.19:35000','3.139.47.90:35000'] +known_addresses = ['168.119.137.143:35000','47.251.14.254:35000','47.242.53.164:35000','46.101.61.107:35000','47.88.87.63:35000','35.152.42.229:35000','206.189.47.102:35000','134.209.243.124:35000','148.251.190.103:35000','167.172.32.44:35000','165.22.252.48:35000','18.219.70.138:35000','3.225.191.9:35000','3.221.194.62:35000','101.36.120.117:35000','54.151.24.120:35000','148.251.135.60:35000','18.188.103.230:35000','54.215.53.35:35000','88.99.95.7:35000','99.81.225.72:35000','52.207.122.179:35000','3.135.134.105:35000','62.171.135.101:35000','139.162.132.144:35000','63.33.251.206:35000','135.181.165.110:35000','135.181.134.57:35000','94.130.107.198:35000','54.180.220.20:35000','188.40.83.254:35000','157.90.131.121:35000','134.209.110.11:35000','168.119.69.6:35000','45.76.251.225:35000','168.119.209.31:35000','31.7.207.16:35000','209.145.60.74:35000','54.252.66.23:35000','134.209.16.172:35000','178.238.235.196:35000','18.217.20.213:35000','3.14.161.135:35000','3.12.207.193:35000','3.12.207.193:35000'] + +# Minimum number of fully-connected peers to consider network component initialized. +min_peers_for_initialization = 3 # The interval between each fresh round of gossiping the node's public address. gossip_interval = '120sec' @@ -125,19 +176,75 @@ initial_gossip_delay = '5sec' # 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. +# Maximum time allowed for a connection handshake between two nodes to be completed. Connections +# exceeding this threshold are considered unlikely to be healthy or even malicious and thus +# terminated. +handshake_timeout = '20sec' + +# Maximum number of incoming connections per unique peer allowed. If the limit is hit, additional +# connections will be rejected. A value of `0` means unlimited. +max_incoming_peer_connections = 3 + +# The maximum total 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 allowed impact of requests from non-validating peers per second answered. +# The maximum allowed total impact of requests from non-validating peers per second answered. # A value of `0` means unlimited. max_incoming_message_rate_non_validators = 3000 +# Maximum number of requests for data from a single peer that are allowed be buffered. A value of +# `0` means unlimited. +max_in_flight_demands = 50 + +# Version threshold to enable tarpit for. +# +# When set to a version (the value may be `null` to disable the feature), any peer that reports a +# protocol version equal or below the threshold will be rejected only after holding open the +# connection for a specific (`tarpit_duration`) amount of time. +# +# This option makes most sense to enable on known nodes with addresses where legacy nodes that are +# still in operation are connecting to, as these older versions will only attempt to reconnect to +# other nodes once they have exhausted their set of known nodes. +tarpit_version_threshold = '1.2.1' + +# How long to hold connections to trapped legacy nodes. +tarpit_duration = '10min' + +# The probability [0.0, 1.0] of this node trapping a legacy node. +# +# Since older nodes will only reconnect if all their options are exhausted, it is sufficient for a +# single known node to hold open a connection to prevent the node from reconnecting. This should be +# set to `1/n` or higher, with `n` being the number of known nodes expected in the configuration of +# legacy nodes running this software. +tarpit_chance = 0.2 + +# How long peers remain blocked after they get blocklisted. +blocklist_retain_duration = '10min' + +# Identity of a node +# +# When this section is not specified, an identity will be generated when the node process starts with a self-signed certifcate. +# This option makes sense for some private chains where for security reasons joining new nodes is restricted. +# [network.identity] +# tls_certificate = "node_cert.pem" +# secret_key = "node.pem" +# ca_certificate = "ca_cert.pem" + # 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 } +[network.estimator_weights] +consensus = 0 +gossip = 0 +finality_signatures = 0 +deploy_requests = 1 +deploy_responses = 1 +block_requests = 1 +block_responses = 0 +trie_requests = 1 +trie_responses = 0 # ================================================== @@ -145,6 +252,9 @@ estimator_weights = { consensus=0, deploy_requests=1 } # ================================================== [rpc_server] +# Flag which enables the JSON-RPC HTTP server. +enable_server = true + # 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, @@ -155,7 +265,36 @@ 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 +qps_limit = 100 + +# Maximum number of bytes to accept in a single request body. +max_body_bytes = 2_621_440 + + +# ======================================================================== +# Configuration options for the speculative execution JSON-RPC HTTP server +# ======================================================================== +[speculative_exec_server] + +# Flag which enables the speculative execution JSON-RPC HTTP server. +enable_server = false + +# Listening address for speculative execution 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 speculative execution 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:7778' + +# 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 = 1 + +# Maximum number of bytes to accept in a single request body. +max_body_bytes = 2_621_440 # ============================================== @@ -163,6 +302,9 @@ qps_limit = 50 # ============================================== [rest_server] +# Flag which enables the REST HTTP server. +enable_server = true + # 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, @@ -181,6 +323,9 @@ qps_limit = 10 # ========================================================== [event_stream_server] +# Flag which enables the SSE HTTP event stream server. +enable_server = true + # 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, @@ -246,7 +391,8 @@ 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 +# For example, setting this value to 5 means that every 5th time something is put in the pool the cache is swept. +mem_pool_prune_interval = 4096 # =================================== @@ -269,7 +415,7 @@ saturation_limit_percent = 80 # # 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 = '60sec' +finished_entry_duration = '1min' # 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 @@ -280,25 +426,60 @@ gossip_request_timeout = '30sec' # from a peer which gossiped information about that data to this node. get_remainder_timeout = '5sec' +# The timeout duration for a newly-received, gossiped item to be validated and stored by another +# component before the gossiper abandons waiting to gossip the item onwards. +validate_and_store_timeout = '1min' -# ================================= -# Configuration options for fetcher -# ================================= + +# =============================================== +# Configuration options for the block accumulator +# =============================================== +[block_accumulator] + +# Block height difference threshold for starting to execute the blocks. +attempt_execution_threshold = 3 + +# Accepted time interval for inactivity in block accumulator. +dead_air_interval = '3min' + +# Time after which the block acceptors are considered old and can be purged. +purge_interval = '1min' + + +# ================================================ +# Configuration options for the block synchronizer +# ================================================ +[block_synchronizer] + +# Maximum number of fetch-trie tasks to run in parallel during block synchronization. +max_parallel_trie_fetches = 5000 + +# Time interval for the node to ask for refreshed peers. +peer_refresh_interval = '90sec' + +# Time interval for the node to check what the block synchronizer needs to acquire next. +need_next_interval = '1sec' + +# Time interval for recurring disconnection of dishonest peers. +disconnect_dishonest_peers_interval = '10sec' + +# Time interval for resetting the latch in block builders. +latch_reset_interval = '5sec' + +# Time interval after which synchronization is considered stalled if no successful sync +# activity happened. +stall_limit = '120sec' + + +# ================================== +# Configuration options for fetchers +# ================================== [fetcher] # 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 = '3sec' - - -# =================================================== -# 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 +get_from_peer_timeout = '10sec' # ======================================================== @@ -306,15 +487,12 @@ verify_accounts = true # ======================================================== [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 = 1_099_511_627_776 +max_global_state_size = 2_089_072_132_096 # Optional depth limit to use for global state queries. # @@ -327,21 +505,36 @@ max_global_state_size = 1_099_511_627_776 #enable_manual_sync = true -# ======================================================== -# Configuration options for synchronizing the linear chain -# ======================================================== -[linear_chain_sync] +# =========================================== +# Configuration options for the deploy buffer +# =========================================== +[deploy_buffer] + +# The interval of checking for expired deploys. +expiry_check_interval = '1min' + + +# ============================================== +# Configuration options for the diagnostics port +# ============================================== +[diagnostics_port] + +# If set, the diagnostics port will be available on a UNIX socket. +enabled = false + +# Filename for the UNIX domain socket the diagnostics port listens on. +socket_path = "debug.socket" -# The amount of time that the node will try to sync without making progress before shutting down. -sync_timeout = '1hr' +# The umask to set before creating the socket. A restrictive mask like `0o077` will cause the +# socket to be only accessible by the user the node runs as. A more relaxed variant is `0o007`, +# which allows for group access as well. +socket_umask = 0o077 -# ==================================================================== -# Configuration options for selecting deploys to propose in new blocks -# ==================================================================== -[block_proposer] +# ============================================= +# Configuration options for the upgrade watcher +# ============================================= +[upgrade_watcher] -# 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 = '15sec' +# How often to scan file system for available upgrades. +upgrade_check_interval = '30sec' diff --git a/protocol_versions b/protocol_versions index b947301..f4470f3 100644 --- a/protocol_versions +++ b/protocol_versions @@ -20,4 +20,5 @@ 1_4_11 1_4_12 1_4_13 -1_4_15 \ No newline at end of file +1_4_15 +1_5_0 \ No newline at end of file From 82de7846de5bd991f7845fa7fb56d484a005d640 Mon Sep 17 00:00:00 2001 From: Joe Sacher <321623+sacherjj@users.noreply.github.com> Date: Thu, 11 May 2023 12:20:52 -0400 Subject: [PATCH 2/2] Fixed activation_point and removed last_emergency_restart --- config/chainspec.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/config/chainspec.toml b/config/chainspec.toml index cb1493b..afebcb1 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -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 = 8971 -# Optional era ID in which the last emergency restart happened. -#last_emergency_restart = 0 +activation_point = 9128 [network] # Human readable name for convenience; the genesis_hash is the true identifier. The name influences the genesis hash by