mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-28 13:02:38 +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::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::ARR, "networks", "information per network",
|
||||
{
|
||||
@ -538,7 +540,9 @@ static UniValue getnetworkinfo(const JSONRPCRequest& request)
|
||||
obj.pushKV("timeoffset", GetTimeOffset());
|
||||
if (node.connman) {
|
||||
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("relayfee", ValueFromAmount(::minRelayTxFee.GetFeePerK()));
|
||||
|
@ -103,8 +103,11 @@ class NetTest(BitcoinTestFramework):
|
||||
|
||||
def test_getnetworkinfo(self):
|
||||
self.log.info("Test getnetworkinfo")
|
||||
assert_equal(self.nodes[0].getnetworkinfo()['networkactive'], True)
|
||||
assert_equal(self.nodes[0].getnetworkinfo()['connections'], 2)
|
||||
info = self.nodes[0].getnetworkinfo()
|
||||
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']):
|
||||
self.nodes[0].setnetworkactive(state=False)
|
||||
@ -118,8 +121,11 @@ class NetTest(BitcoinTestFramework):
|
||||
connect_nodes(self.nodes[0], 1)
|
||||
connect_nodes(self.nodes[1], 0)
|
||||
|
||||
assert_equal(self.nodes[0].getnetworkinfo()['networkactive'], True)
|
||||
assert_equal(self.nodes[0].getnetworkinfo()['connections'], 2)
|
||||
info = self.nodes[0].getnetworkinfo()
|
||||
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
|
||||
network_info = [node.getnetworkinfo() for node in self.nodes]
|
||||
|
Loading…
Reference in New Issue
Block a user