diff --git a/casper-node_release b/casper-node_release index 60453e6..f3d1990 100644 --- a/casper-node_release +++ b/casper-node_release @@ -1 +1 @@ -v1.0.0 \ 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 0c52075..605846c 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -12,13 +12,226 @@ 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 -## [Unreleased] +## Changed +* chainspec.toml + * protocol + * version + * activation_point -## Examples -Using genesis time for 1.0.0 protocol version. All other are Era # +## 1.4.3 - 2940 +### casper-node 1.4.3-a44bed1fd-casper-mainnet -## [1.1.0] - Era: 224 +## Changed +* chainspec.toml + * protocol + * version + * activation_point + * wasm + * max_stack_height + -## [1.0.0] - 2021-03-31 04:00:00 UTC \ No newline at end of file +## 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 + +## 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 + +### 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 + +### Changed +* chainspec.toml + * protocol + * version + * activation_point + + +## 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 + +### Changed +* chainspec.toml + * protocol + * version + * activation_point + + +## 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 + +### Changed +* chainspec.toml + * protocol + * version + * activation_point + + +## 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 + +### Added +* Genesis accounts.toml, chainspec.toml, config-example.toml diff --git a/config/accounts.toml b/config/accounts.toml deleted file mode 100644 index 8430dea..0000000 --- a/config/accounts.toml +++ /dev/null @@ -1 +0,0 @@ -# Should hold starting accounts for 1.0.0 protocol version and be deleted from subsequent protocol versions. \ No newline at end of file diff --git a/config/chainspec.toml b/config/chainspec.toml index 18145a3..8483738 100644 --- a/config/chainspec.toml +++ b/config/chainspec.toml @@ -1 +1,223 @@ -# Should hold current chainspec.toml for given protocol version. \ No newline at end of file +[protocol] +# Protocol version. +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. +# +# 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 = 3264 +# 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 +# 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. +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 +# 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: 0.25% +# Minimum round exponent: 15 +# Ticks per year: 31536000000 +# +# (1+0.0025)^((2^15)/31536000000)-1 is expressed as a fractional number below +# Python: +# from fractions import Fraction +# 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 +# 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. +# 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 +# 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 +# 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 = 50 +# The maximum number of wasm-less transfer deploys permitted in a single block. +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. +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 = 188 + +[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 = 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] } +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 = 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 = 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] } + +[system_costs] +wasmless_transfer_cost = 100_000_000 + +[system_costs.auction_costs] +get_era_validators = 10_000 +read_seigniorage_recipients = 10_000 +add_bid = 2_500_000_000 +withdraw_bid = 10_000 +delegate = 2_500_000_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 = 2_500_000_000 +reduce_total_supply = 10_000 +create = 2_500_000_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..7ebab24 100644 --- a/config/config-example.toml +++ b/config/config-example.toml @@ -1,2 +1,347 @@ -# 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' + + +# =========================================== +# Configuration options for Highway consensus +# =========================================== +[consensus.highway] + +# 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. +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 + +# 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 + +# 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 + +# 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 +# ==================================== +[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 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 = '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. +# 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. +# 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 +# ================================================== +[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 maximum number of subscribers across all event streams the server will permit at any one time. +max_concurrent_subscribers = 100 + + +# =============================================== +# 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. 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. +# +# 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 + +# 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 +# =================================== +[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 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 = '60sec' + +# 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 = '30sec' + +# 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 = '5sec' + + +# ================================= +# Configuration options for fetcher +# ================================= +[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 + + +# ======================================================== +# 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 = 1_099_511_627_776 + +# Optional depth limit to use for global state queries. +# +# If unset, defaults to 5. +#max_query_depth = 5 + +# Enable manual synchronizing to disk. +# +# If unset, defaults to true. +#enable_manual_sync = true + + +# ======================================================== +# 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 +# ==================================================================== +[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 = '15sec' diff --git a/protocol_versions b/protocol_versions new file mode 100644 index 0000000..1c8f3aa --- /dev/null +++ b/protocol_versions @@ -0,0 +1,12 @@ +1_0_0 +1_1_0 +1_1_2 +1_2_0 +1_2_1 +1_3_1 +1_3_2 +1_3_4 +1_4_1 +1_4_2 +1_4_3 +1_4_4