public async Task <bool> ConnectAsync(PeerId peerIdentifier) { _recipientPeerId = peerIdentifier; var peerRpcConfig = new RpcClientSettings { HostAddress = _recipientPeerId.IpAddress, Port = (int)_recipientPeerId.Port, PublicKey = _recipientPeerId.PublicKey.KeyToString() }; _logger.Information($"Connecting to {peerRpcConfig.HostAddress}:{peerRpcConfig.Port}"); try { _rpcClient = await _rpcClientFactory.GetClientAsync(_certificate, peerRpcConfig).ConfigureAwait(false); return(_rpcClient.Channel.Open); } catch (ConnectException connectionException) { _logger.Error(connectionException, "Could not connect to node"); } catch (Exception exception) { _logger.Error(exception, "Error attempting to connect to node"); } return(false); }
/// <summary> /// </summary> public CommandContext(IConfigurationRoot config, ILogger logger, IUserOutput userOutput, IRpcClientFactory rpcClientFactory, ICertificateStore certificateStore, ISocketClientRegistry <IRpcClient> socketClientRegistry) { _logger = logger; _rpcNodeConfigs = RpcClientSettings.BuildRpcNodeSettingList(config); SocketClientRegistry = socketClientRegistry; PeerId = GetPeerIdentifierFromCliConfig(config); RpcClientFactory = rpcClientFactory; CertificateStore = certificateStore; UserOutput = userOutput; }