public void dns_test_wrong_domain() { PublicKey publicKey = new("0x000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f"); string domain = "i_do_not_exist"; Action action = () => _ = new Enode($"enode://{publicKey.ToString(false)}@{domain}:{1234}"); action.Should().Throw <ArgumentException>(); }
public void NetVersionSuccessTest() { Enode enode = new Enode(TestItem.PublicKeyA, IPAddress.Loopback, 30303); NetBridge netBridge = new NetBridge(enode, Substitute.For <ISyncServer>(), Substitute.For <IPeerManager>()); NetModule module = new NetModule(NullLogManager.Instance, netBridge); string response = RpcTest.TestSerializedRequest <INetModule>(module, "net_version"); Assert.AreEqual("{\"id\":67,\"jsonrpc\":\"2.0\",\"result\":\"0\"}", response); }
public void NetListeningSuccessTest() { Enode enode = new Enode(TestItem.PublicKeyA, IPAddress.Loopback, 30303); NetBridge netBridge = new NetBridge(enode, Substitute.For <ISyncServer>()); NetModule module = new NetModule(LimboLogs.Instance, netBridge); string response = RpcTest.TestSerializedRequest <INetModule>(module, "net_listening"); Assert.AreEqual("{\"jsonrpc\":\"2.0\",\"result\":true,\"id\":67}", response); }
public void ip_test() { var publicKey = new PublicKey("0x000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f"); Enode enode = new Enode($"enode://{publicKey.ToString(false)}@{IPAddress.Loopback}:{1234}"); enode.HostIp.Should().BeEquivalentTo(IPAddress.Loopback); enode.Port.Should().Be(1234); enode.PublicKey.Should().BeEquivalentTo(publicKey); }
public void dns_test() { var publicKey = new PublicKey("0x000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f"); string domain = "nethermind.io"; Enode enode = new Enode($"enode://{publicKey.ToString(false)}@{domain}:{1234}"); Dns.GetHostAddresses(domain).Should().NotBeEmpty(); enode.Port.Should().Be(1234); enode.PublicKey.Should().BeEquivalentTo(publicKey); }
public void dns_test() { var publicKey = new PublicKey("0x000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f000102030405060708090a0b0c0d0e0f"); string domain = "www.google.com"; Enode enode = new Enode($"enode://{publicKey.ToString(false)}@{domain}:{1234}"); enode.HostIp.Should().BeEquivalentTo(Dns.GetHostAddresses(domain).First()); enode.Port.Should().Be(1234); enode.PublicKey.Should().BeEquivalentTo(publicKey); }
public void Setup() { _blockTree = Build.A.BlockTree().OfChainLength(5).TestObject; _networkConfig = new NetworkConfig(); IPeerManager peerManager = Substitute.For <IPeerManager>(); peerManager.ActivePeers.Returns(new List <Peer> { new Peer(new Node("127.0.0.1", 30303, true)) }); IStaticNodesManager staticNodesManager = Substitute.For <IStaticNodesManager>(); Enode enode = new Enode(_enodeString); _adminRpcModule = new AdminRpcModule(_blockTree, _networkConfig, peerManager, staticNodesManager, enode, _exampleDataDir); _serializer = new EthereumJsonSerializer(); }
public async Task Will_accept_static_connection() { await using Context ctx = new Context(); ctx.NetworkConfig.ActivePeersMaxCount = 1; ctx.StaticNodesManager.IsStatic(enode2String).Returns(true); ctx.PeerManager.Init(); var enode1 = new Enode(enode1String); Node node1 = new Node(enode1.PublicKey, new IPEndPoint(enode1.HostIp, enode1.Port)); Session session1 = new Session(30303, node1, Substitute.For <IChannel>(), NullDisconnectsAnalyzer.Instance, LimboLogs.Instance); var enode2 = new Enode(enode2String); Node node2 = new Node(enode2.PublicKey, new IPEndPoint(enode2.HostIp, enode2.Port)); Session session2 = new Session(30303, node2, Substitute.For <IChannel>(), NullDisconnectsAnalyzer.Instance, LimboLogs.Instance); ctx.RlpxPeer.CreateIncoming(session1, session2); ctx.PeerManager.ActivePeers.Count.Should().Be(2); }
public IPAddress can_find_ipv4_host(IPAddress[] ips) => Enode.GetHostIpFromDnsAddresses(ips);