mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-06-02 15:32:34 +02:00
Add in/out connections to rpc getnetworkinfo
This commit is contained in:
parent
7f609f68d8
commit
1ab49b81cf
6
doc/release-notes-19405.md
Normal file
6
doc/release-notes-19405.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
## Updated RPCs
|
||||||
|
|
||||||
|
- `getnetworkinfo` now returns two new fields, `connections_in` and
|
||||||
|
`connections_out`, that provide the number of inbound and outbound peer
|
||||||
|
connections. These new fields are in addition to the existing `connections`
|
||||||
|
field, which returns the total number of peer connections. (#19405)
|
@ -490,7 +490,9 @@ static UniValue getnetworkinfo(const JSONRPCRequest& request)
|
|||||||
}},
|
}},
|
||||||
{RPCResult::Type::BOOL, "localrelay", "true if transaction relay is requested from peers"},
|
{RPCResult::Type::BOOL, "localrelay", "true if transaction relay is requested from peers"},
|
||||||
{RPCResult::Type::NUM, "timeoffset", "the time offset"},
|
{RPCResult::Type::NUM, "timeoffset", "the time offset"},
|
||||||
{RPCResult::Type::NUM, "connections", "the number of connections"},
|
{RPCResult::Type::NUM, "connections", "the total number of connections"},
|
||||||
|
{RPCResult::Type::NUM, "connections_in", "the number of inbound connections"},
|
||||||
|
{RPCResult::Type::NUM, "connections_out", "the number of outbound connections"},
|
||||||
{RPCResult::Type::BOOL, "networkactive", "whether p2p networking is enabled"},
|
{RPCResult::Type::BOOL, "networkactive", "whether p2p networking is enabled"},
|
||||||
{RPCResult::Type::ARR, "networks", "information per network",
|
{RPCResult::Type::ARR, "networks", "information per network",
|
||||||
{
|
{
|
||||||
@ -538,7 +540,9 @@ static UniValue getnetworkinfo(const JSONRPCRequest& request)
|
|||||||
obj.pushKV("timeoffset", GetTimeOffset());
|
obj.pushKV("timeoffset", GetTimeOffset());
|
||||||
if (node.connman) {
|
if (node.connman) {
|
||||||
obj.pushKV("networkactive", node.connman->GetNetworkActive());
|
obj.pushKV("networkactive", node.connman->GetNetworkActive());
|
||||||
obj.pushKV("connections", (int)node.connman->GetNodeCount(CConnman::CONNECTIONS_ALL));
|
obj.pushKV("connections", (int)node.connman->GetNodeCount(CConnman::CONNECTIONS_ALL));
|
||||||
|
obj.pushKV("connections_in", (int)node.connman->GetNodeCount(CConnman::CONNECTIONS_IN));
|
||||||
|
obj.pushKV("connections_out", (int)node.connman->GetNodeCount(CConnman::CONNECTIONS_OUT));
|
||||||
}
|
}
|
||||||
obj.pushKV("networks", GetNetworksInfo());
|
obj.pushKV("networks", GetNetworksInfo());
|
||||||
obj.pushKV("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK()));
|
obj.pushKV("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK()));
|
||||||
|
@ -103,8 +103,11 @@ class NetTest(BitcoinTestFramework):
|
|||||||
|
|
||||||
def test_getnetworkinfo(self):
|
def test_getnetworkinfo(self):
|
||||||
self.log.info("Test getnetworkinfo")
|
self.log.info("Test getnetworkinfo")
|
||||||
assert_equal(self.nodes[0].getnetworkinfo()['networkactive'], True)
|
info = self.nodes[0].getnetworkinfo()
|
||||||
assert_equal(self.nodes[0].getnetworkinfo()['connections'], 2)
|
assert_equal(info['networkactive'], True)
|
||||||
|
assert_equal(info['connections'], 2)
|
||||||
|
assert_equal(info['connections_in'], 1)
|
||||||
|
assert_equal(info['connections_out'], 1)
|
||||||
|
|
||||||
with self.nodes[0].assert_debug_log(expected_msgs=['SetNetworkActive: false\n']):
|
with self.nodes[0].assert_debug_log(expected_msgs=['SetNetworkActive: false\n']):
|
||||||
self.nodes[0].setnetworkactive(state=False)
|
self.nodes[0].setnetworkactive(state=False)
|
||||||
@ -118,8 +121,11 @@ class NetTest(BitcoinTestFramework):
|
|||||||
connect_nodes(self.nodes[0], 1)
|
connect_nodes(self.nodes[0], 1)
|
||||||
connect_nodes(self.nodes[1], 0)
|
connect_nodes(self.nodes[1], 0)
|
||||||
|
|
||||||
assert_equal(self.nodes[0].getnetworkinfo()['networkactive'], True)
|
info = self.nodes[0].getnetworkinfo()
|
||||||
assert_equal(self.nodes[0].getnetworkinfo()['connections'], 2)
|
assert_equal(info['networkactive'], True)
|
||||||
|
assert_equal(info['connections'], 2)
|
||||||
|
assert_equal(info['connections_in'], 1)
|
||||||
|
assert_equal(info['connections_out'], 1)
|
||||||
|
|
||||||
# check the `servicesnames` field
|
# check the `servicesnames` field
|
||||||
network_info = [node.getnetworkinfo() for node in self.nodes]
|
network_info = [node.getnetworkinfo() for node in self.nodes]
|
||||||
|
Loading…
Reference in New Issue
Block a user