Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(cli): Implemented the download config method to the init command
I have tested three scenarios: 1) default config which generates the random chain id 2) betanet config which is generated 3) betanet config which is downloaded and should have tracked shards = [0] and boot_nodes set. Tested for the test chain command: ``` sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> ./target/debug/neard init Jun 29 13:12:05.580 INFO neard: Version: 1.2.0, Build: 7e0fe60-modified, Latest Protocol: 45 Jun 29 13:12:05.593 INFO near: Generated node key, validator key, genesis file in /home/sandi/.near sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> cat /home/sandi/.near/config.json { "genesis_file": "genesis.json", "genesis_records_file": null, "validator_key_file": "validator_key.json", "node_key_file": "node_key.json", "rpc": { "addr": "0.0.0.0:3030", "cors_allowed_origins": [ "*" ], "polling_config": { "polling_interval": { "secs": 0, "nanos": 500000000 }, "polling_timeout": { "secs": 10, "nanos": 0 } }, "limits_config": { "json_payload_max_size": 10485760 } }, "telemetry": { "endpoints": [] }, "network": { "addr": "0.0.0.0:24567", "external_address": "", "boot_nodes": "", "max_num_peers": 40, "minimum_outbound_peers": 5, "ideal_connections_lo": 30, "ideal_connections_hi": 35, "peer_recent_time_window": { "secs": 600, "nanos": 0 }, "safe_set_size": 20, "archival_peer_connections_lower_bound": 10, "handshake_timeout": { "secs": 20, "nanos": 0 }, "reconnect_delay": { "secs": 60, "nanos": 0 }, "skip_sync_wait": true, "ban_window": { "secs": 10800, "nanos": 0 }, "blacklist": [], "ttl_account_id_router": { "secs": 3600, "nanos": 0 }, "peer_stats_period": { "secs": 5, "nanos": 0 } }, "consensus": { "min_num_peers": 3, "block_production_tracking_delay": { "secs": 0, "nanos": 100000000 }, "min_block_production_delay": { "secs": 0, "nanos": 600000000 }, "max_block_production_delay": { "secs": 2, "nanos": 0 }, "max_block_wait_delay": { "secs": 6, "nanos": 0 }, "reduce_wait_for_missing_block": { "secs": 0, "nanos": 100000000 }, "produce_empty_blocks": true, "block_fetch_horizon": 50, "state_fetch_horizon": 5, "block_header_fetch_horizon": 50, "catchup_step_period": { "secs": 0, "nanos": 100000000 }, "chunk_request_retry_period": { "secs": 0, "nanos": 400000000 }, "header_sync_initial_timeout": { "secs": 10, "nanos": 0 }, "header_sync_progress_timeout": { "secs": 2, "nanos": 0 }, "header_sync_stall_ban_timeout": { "secs": 120, "nanos": 0 }, "state_sync_timeout": { "secs": 60, "nanos": 0 }, "header_sync_expected_height_per_second": 10, "sync_check_period": { "secs": 10, "nanos": 0 }, "sync_step_period": { "secs": 0, "nanos": 10000000 }, "doomslug_step_period": { "secs": 0, "nanos": 100000000 } }, "tracked_accounts": [], "tracked_shards": [], "archive": false, "log_summary_style": "colored", "gc_blocks_limit": 2, "view_client_threads": 4, "epoch_sync_enabled": true, "view_client_throttle_period": { "secs": 30, "nanos": 0 }, "trie_viewer_state_size_limit": 50000 }⏎ sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> cat /home/sandi/.near/genesis.json { "protocol_version": 45, "genesis_time": "2021-06-29T11:12:05.592321543Z", "chain_id": "test-chain-t2VXm", "genesis_height": 0, "num_block_producer_seats": 50, "num_block_producer_seats_per_shard": [ 50 ], "avg_hidden_validator_seats_per_shard": [ 0 ], "dynamic_resharding": false, "protocol_upgrade_stake_threshold": [ 4, 5 ], "protocol_upgrade_num_epochs": 2, "epoch_length": 500, "gas_limit": 1000000000000000, "min_gas_price": "1000000000", "max_gas_price": "10000000000000000000000", "block_producer_kickout_threshold": 90, "chunk_producer_kickout_threshold": 90, "online_min_threshold": [ 9, 10 ], "online_max_threshold": [ 99, 100 ], "gas_price_adjustment_rate": [ 1, 100 ], "runtime_config": { "storage_amount_per_byte": "90900000000000000000", "transaction_costs": { "action_receipt_creation_config": { "send_sir": 108059500000, "send_not_sir": 108059500000, "execution": 108059500000 }, "data_receipt_creation_config": { "base_cost": { "send_sir": 4697339419375, "send_not_sir": 4697339419375, "execution": 4697339419375 }, "cost_per_byte": { "send_sir": 59357464, "send_not_sir": 59357464, "execution": 59357464 } }, "action_creation_config": { "create_account_cost": { "send_sir": 99607375000, "send_not_sir": 99607375000, "execution": 99607375000 }, "deploy_contract_cost": { "send_sir": 184765750000, "send_not_sir": 184765750000, "execution": 184765750000 }, "deploy_contract_cost_per_byte": { "send_sir": 6812999, "send_not_sir": 6812999, "execution": 6812999 }, "function_call_cost": { "send_sir": 2319861500000, "send_not_sir": 2319861500000, "execution": 2319861500000 }, "function_call_cost_per_byte": { "send_sir": 2235934, "send_not_sir": 2235934, "execution": 2235934 }, "transfer_cost": { "send_sir": 115123062500, "send_not_sir": 115123062500, "execution": 115123062500 }, "stake_cost": { "send_sir": 141715687500, "send_not_sir": 141715687500, "execution": 102217625000 }, "add_key_cost": { "full_access_cost": { "send_sir": 101765125000, "send_not_sir": 101765125000, "execution": 101765125000 }, "function_call_cost": { "send_sir": 102217625000, "send_not_sir": 102217625000, "execution": 102217625000 }, "function_call_cost_per_byte": { "send_sir": 1925331, "send_not_sir": 1925331, "execution": 1925331 } }, "delete_key_cost": { "send_sir": 94946625000, "send_not_sir": 94946625000, "execution": 94946625000 }, "delete_account_cost": { "send_sir": 147489000000, "send_not_sir": 147489000000, "execution": 147489000000 } }, "storage_usage_config": { "num_bytes_account": 100, "num_extra_bytes_record": 40 }, "burnt_gas_reward": [ 3, 10 ], "pessimistic_gas_price_inflation_ratio": [ 103, 100 ] }, "wasm_config": { "ext_costs": { "base": 264768111, "contract_compile_base": 35445963, "contract_compile_bytes": 216750, "read_memory_base": 2609863200, "read_memory_byte": 3801333, "write_memory_base": 2803794861, "write_memory_byte": 2723772, "read_register_base": 2517165186, "read_register_byte": 98562, "write_register_base": 2865522486, "write_register_byte": 3801564, "utf8_decoding_base": 3111779061, "utf8_decoding_byte": 291580479, "utf16_decoding_base": 3543313050, "utf16_decoding_byte": 163577493, "sha256_base": 4540970250, "sha256_byte": 24117351, "keccak256_base": 5879491275, "keccak256_byte": 21471105, "keccak512_base": 5811388236, "keccak512_byte": 36649701, "log_base": 3543313050, "log_byte": 13198791, "storage_write_base": 64196736000, "storage_write_key_byte": 70482867, "storage_write_value_byte": 31018539, "storage_write_evicted_byte": 32117307, "storage_read_base": 56356845750, "storage_read_key_byte": 30952533, "storage_read_value_byte": 5611005, "storage_remove_base": 53473030500, "storage_remove_key_byte": 38220384, "storage_remove_ret_value_byte": 11531556, "storage_has_key_base": 54039896625, "storage_has_key_byte": 30790845, "storage_iter_create_prefix_base": 0, "storage_iter_create_prefix_byte": 0, "storage_iter_create_range_base": 0, "storage_iter_create_from_byte": 0, "storage_iter_create_to_byte": 0, "storage_iter_next_base": 0, "storage_iter_next_key_byte": 0, "storage_iter_next_value_byte": 0, "touching_trie_node": 16101955926, "promise_and_base": 1465013400, "promise_and_per_promise": 5452176, "promise_return": 560152386, "validator_stake_base": 911834726400, "validator_total_stake_base": 911834726400 }, "grow_mem_cost": 1, "regular_op_cost": 3856371, "limit_config": { "max_gas_burnt": 200000000000000, "max_gas_burnt_view": 200000000000000, "max_stack_height": 16384, "initial_memory_pages": 1024, "max_memory_pages": 2048, "registers_memory_limit": 1073741824, "max_register_size": 104857600, "max_number_registers": 100, "max_number_logs": 100, "max_total_log_length": 16384, "max_total_prepaid_gas": 300000000000000, "max_actions_per_receipt": 100, "max_number_bytes_method_names": 2000, "max_length_method_name": 256, "max_arguments_length": 4194304, "max_length_returned_data": 4194304, "max_contract_size": 4194304, "max_length_storage_key": 4194304, "max_length_storage_value": 4194304, "max_promises_per_function_call_action": 1024, "max_number_input_data_dependencies": 128 } }, "account_creation_config": { "min_allowed_top_level_account_length": 0, "registrar_account_id": "registrar" } }, "validators": [ { "account_id": "test.near", "public_key": "ed25519:98jzeQmcPrVUjwrAawRsFotA5V4FyouDNsLWLM7W8koe", "amount": "50000000000000000000000000000000" } ], "transaction_validity_period": 100, "protocol_reward_rate": [ 1, 10 ], "max_inflation_rate": [ 1, 20 ], "total_supply": "2050000000000000000000000000000000", "num_blocks_per_year": 31536000, "protocol_treasury_account": "test.near", "fishermen_threshold": "10000000000000000000000000", "minimum_stake_divisor": 10, "records": [ { "Account": { "account_id": "test.near", "account": { "amount": "1000000000000000000000000000000000", "locked": "50000000000000000000000000000000", "code_hash": "11111111111111111111111111111111", "storage_usage": 0 } } }, { "AccessKey": { "account_id": "test.near", "public_key": "ed25519:98jzeQmcPrVUjwrAawRsFotA5V4FyouDNsLWLM7W8koe", "access_key": { "nonce": 0, "permission": "FullAccess" } } }, { "Account": { "account_id": "near", "account": { "amount": "1000000000000000000000000000000000", "locked": "0", "code_hash": "11111111111111111111111111111111", "storage_usage": 0 } } }, { "AccessKey": { "account_id": "near", "public_key": "ed25519:546XB2oHhj7PzUKHiH9Xve3Ze5q1JiW2WTh6abXFED3c", "access_key": { "nonce": 0, "permission": "FullAccess" } } } ] } ``` Tested for default betanet init: ``` sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> rm -rf ~/.near/ sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> ./target/debug/neard init --chain-id betanet --download-genesis Jun 29 13:14:38.613 INFO neard: Version: 1.2.0, Build: 7e0fe60-modified, Latest Protocol: 45 Jun 29 13:14:38.614 INFO near: Downloading genesis file from: https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/betanet/genesis.json ... Jun 29 13:15:06.188 INFO near: Saved the genesis file to: /home/sandi/.near/genesis.json ... Jun 29 13:15:13.541 INFO near: Generated for betanet network node key and genesis file in /home/sandi/.near sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> cat /home/sandi/.near/config.json { "genesis_file": "genesis.json", "genesis_records_file": null, "validator_key_file": "validator_key.json", "node_key_file": "node_key.json", "rpc": { "addr": "0.0.0.0:3030", "cors_allowed_origins": [ "*" ], "polling_config": { "polling_interval": { "secs": 0, "nanos": 500000000 }, "polling_timeout": { "secs": 10, "nanos": 0 } }, "limits_config": { "json_payload_max_size": 10485760 } }, "telemetry": { "endpoints": [ "https://explorer.betanet.near.org/api/nodes" ] }, "network": { "addr": "0.0.0.0:24567", "external_address": "", "boot_nodes": "", "max_num_peers": 40, "minimum_outbound_peers": 5, "ideal_connections_lo": 30, "ideal_connections_hi": 35, "peer_recent_time_window": { "secs": 600, "nanos": 0 }, "safe_set_size": 20, "archival_peer_connections_lower_bound": 10, "handshake_timeout": { "secs": 20, "nanos": 0 }, "reconnect_delay": { "secs": 60, "nanos": 0 }, "skip_sync_wait": false, "ban_window": { "secs": 10800, "nanos": 0 }, "blacklist": [], "ttl_account_id_router": { "secs": 3600, "nanos": 0 }, "peer_stats_period": { "secs": 5, "nanos": 0 } }, "consensus": { "min_num_peers": 3, "block_production_tracking_delay": { "secs": 0, "nanos": 100000000 }, "min_block_production_delay": { "secs": 0, "nanos": 600000000 }, "max_block_production_delay": { "secs": 2, "nanos": 0 }, "max_block_wait_delay": { "secs": 6, "nanos": 0 }, "reduce_wait_for_missing_block": { "secs": 0, "nanos": 100000000 }, "produce_empty_blocks": true, "block_fetch_horizon": 50, "state_fetch_horizon": 5, "block_header_fetch_horizon": 50, "catchup_step_period": { "secs": 0, "nanos": 100000000 }, "chunk_request_retry_period": { "secs": 0, "nanos": 400000000 }, "header_sync_initial_timeout": { "secs": 10, "nanos": 0 }, "header_sync_progress_timeout": { "secs": 2, "nanos": 0 }, "header_sync_stall_ban_timeout": { "secs": 120, "nanos": 0 }, "state_sync_timeout": { "secs": 60, "nanos": 0 }, "header_sync_expected_height_per_second": 10, "sync_check_period": { "secs": 10, "nanos": 0 }, "sync_step_period": { "secs": 0, "nanos": 10000000 }, "doomslug_step_period": { "secs": 0, "nanos": 100000000 } }, "tracked_accounts": [], "tracked_shards": [], "archive": false, "log_summary_style": "colored", "gc_blocks_limit": 2, "view_client_threads": 4, "epoch_sync_enabled": true, "view_client_throttle_period": { "secs": 30, "nanos": 0 }, "trie_viewer_state_size_limit": 50000 }⏎ ``` Tested on betanet with the download config flag set: ``` sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> rm -rf ~/.near/ sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> ./target/debug/neard init --chain-id betanet --download-genesis --download-config Jun 29 13:19:12.545 INFO neard: Version: 1.2.0, Build: 3f3986d4-modified, Latest Protocol: 45 Jun 29 13:19:12.545 INFO near: Downloading config file from: https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/betanet/config.json ... Jun 29 13:19:13.476 INFO near: Saved the config file to: /home/sandi/.near/config.json ... Jun 29 13:19:13.479 INFO near: Downloading genesis file from: https://s3-us-west-1.amazonaws.com/build.nearprotocol.com/nearcore-deploy/betanet/genesis.json ... Jun 29 13:19:41.038 INFO near: Saved the genesis file to: /home/sandi/.near/genesis.json ... Jun 29 13:19:48.309 INFO near: Generated for betanet network node key and genesis file in /home/sandi/.near sandi@sandi-ThinkPad-X1-Carbon-7th ~/w/n/nearcore (download-config)> cat /home/sandi/.near/config.json { "genesis_file": "genesis.json", "genesis_records_file": null, "validator_key_file": "validator_key.json", "node_key_file": "node_key.json", "rpc": { "addr": "0.0.0.0:3030", "cors_allowed_origins": [ "*" ], "polling_config": { "polling_interval": { "secs": 0, "nanos": 500000000 }, "polling_timeout": { "secs": 10, "nanos": 0 } }, "limits_config": { "json_payload_max_size": 10485760 } }, "telemetry": { "endpoints": [ "https://explorer.betanet.near.org/api/nodes" ] }, "network": { "addr": "0.0.0.0:24567", "external_address": "", "boot_nodes": "ed25519:[email protected]:24567,ed25519:[email protected]:24567", "max_num_peers": 40, "minimum_outbound_peers": 5, "ideal_connections_lo": 30, "ideal_connections_hi": 35, "peer_recent_time_window": { "secs": 600, "nanos": 0 }, "safe_set_size": 20, "archival_peer_connections_lower_bound": 10, "handshake_timeout": { "secs": 20, "nanos": 0 }, "reconnect_delay": { "secs": 60, "nanos": 0 }, "skip_sync_wait": false, "ban_window": { "secs": 10800, "nanos": 0 }, "blacklist": [], "ttl_account_id_router": { "secs": 3600, "nanos": 0 }, "peer_stats_period": { "secs": 5, "nanos": 0 } }, "consensus": { "min_num_peers": 3, "block_production_tracking_delay": { "secs": 0, "nanos": 100000000 }, "min_block_production_delay": { "secs": 0, "nanos": 600000000 }, "max_block_production_delay": { "secs": 2, "nanos": 0 }, "max_block_wait_delay": { "secs": 6, "nanos": 0 }, "reduce_wait_for_missing_block": { "secs": 0, "nanos": 100000000 }, "produce_empty_blocks": true, "block_fetch_horizon": 50, "state_fetch_horizon": 5, "block_header_fetch_horizon": 50, "catchup_step_period": { "secs": 0, "nanos": 100000000 }, "chunk_request_retry_period": { "secs": 0, "nanos": 400000000 }, "header_sync_initial_timeout": { "secs": 10, "nanos": 0 }, "header_sync_progress_timeout": { "secs": 2, "nanos": 0 }, "header_sync_stall_ban_timeout": { "secs": 120, "nanos": 0 }, "state_sync_timeout": { "secs": 60, "nanos": 0 }, "header_sync_expected_height_per_second": 10, "sync_check_period": { "secs": 10, "nanos": 0 }, "sync_step_period": { "secs": 0, "nanos": 10000000 }, "doomslug_step_period": { "secs": 0, "nanos": 100000000 } }, "tracked_accounts": [], "tracked_shards": [ 0 ], "archive": false, "log_summary_style": "colored", "gc_blocks_limit": 2, "view_client_threads": 4, "epoch_sync_enabled": true, "view_client_throttle_period": { "secs": 30, "nanos": 0 }, "trie_viewer_state_size_limit": 50000 }⏎ ```
- Loading branch information