示例#1
0
        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);
        }
示例#2
0
        /// <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;
        }