| 4900 | } |
| 4901 | |
| 4902 | void node_impl::set_advanced_node_parameters(const fc::variant_object& params) |
| 4903 | { |
| 4904 | VERIFY_CORRECT_THREAD(); |
| 4905 | if (params.contains("peer_connection_retry_timeout")) |
| 4906 | _peer_connection_retry_timeout = params["peer_connection_retry_timeout"].as<uint32_t>(); |
| 4907 | if (params.contains("desired_number_of_connections")) |
| 4908 | _desired_number_of_connections = params["desired_number_of_connections"].as<uint32_t>(); |
| 4909 | if (params.contains("maximum_number_of_connections")) |
| 4910 | _maximum_number_of_connections = params["maximum_number_of_connections"].as<uint32_t>(); |
| 4911 | if (params.contains("maximum_number_of_blocks_to_handle_at_one_time")) |
| 4912 | _maximum_number_of_blocks_to_handle_at_one_time = params["maximum_number_of_blocks_to_handle_at_one_time"].as<uint32_t>(); |
| 4913 | if (params.contains("maximum_number_of_sync_blocks_to_prefetch")) |
| 4914 | _maximum_number_of_sync_blocks_to_prefetch = params["maximum_number_of_sync_blocks_to_prefetch"].as<uint32_t>(); |
| 4915 | if (params.contains("maximum_blocks_per_peer_during_syncing")) |
| 4916 | _maximum_blocks_per_peer_during_syncing = params["maximum_blocks_per_peer_during_syncing"].as<uint32_t>(); |
| 4917 | |
| 4918 | _desired_number_of_connections = std::min(_desired_number_of_connections, _maximum_number_of_connections); |
| 4919 | |
| 4920 | while (_active_connections.size() > _maximum_number_of_connections) |
| 4921 | disconnect_from_peer(_active_connections.begin()->get(), |
| 4922 | "I have too many connections open"); |
| 4923 | trigger_p2p_network_connect_loop(); |
| 4924 | } |
| 4925 | |
| 4926 | fc::variant_object node_impl::get_advanced_node_parameters() |
| 4927 | { |