mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-08-25 20:41:21 +02:00
Merge bitcoin/bitcoin#31886: cli: return local services in -netinfo
721a051320
test: add coverage for -netinfo header and local services (l0rinc)f7d2db28e9
netinfo: return shortened services, if peers list requested (Jon Atack)4489ab526a
netinfo: return local services in the default report (Jon Atack) Pull request description: Add local services info to -netinfo dashboard that already provides this info for each of the peer connections. - `bitcoin-cli -netinfo` with no args passed provides a nice easy-to-understand services list: ``` Bitcoin Core client v28.99.0 - server 70016/Satoshi:28.99.0/ ipv4 ipv6 onion i2p cjdns total block manual in 0 0 12 8 0 20 out 6 0 4 3 2 15 3 4 total 6 0 16 11 2 35 Local services: network, bloom, witness, compact filters, network limited, p2p v2 Local addresses ``` - With a details level passed, e.g. `-netinfo 3`, print the services in the versions header instead (to avoid adding a line for more static information), in the same format as the peers list (see `-netinfo help` for info on the output of the `serv` column): ``` Bitcoin Core client v28.99.0 - server 70016/Satoshi:28.99.0/ - services nbwcl2 <-> type net serv v mping ping send recv txn blk hb addrp addrl age asmap id version in onion 1 283 498 48 48 * . 77 388 70016 in onion nwl2 2 318 485 5 111 79 372 70016/Satoshi:28.0.0/ in onion nwl 1 342 344 4 1 53 96 84 344 70016/Satoshi:26.0.0/ in onion nwl 1 411 601 4 1 35 124 85 339 70016/Satoshi:26.0.0/ in onion nwcl2 2 436 4330 2 2 2 31 13 623 70016/Satoshi:28.0.0/ in onion wl2 2 445 503 4 4 6 138 81 363 70016/Satoshi:28.0.0/ in onion nwl 1 462 726 4 1 56 92 81 365 70016/Satoshi:23.0.0/ in onion nwl 1 500 765 4 1 34 94 83 351 70016/Satoshi:25.0.0/ in onion nwl2 2 578 684 4 0 1 134 87 327 70016/Satoshi:28.0.0/ in i2p nwl2 2 712 1322 4 2 35 204 1 93 308 70016/Satoshi:27.2.0/ in onion nwl2 2 727 873 5 5 56 162 85 342 70016/Satoshi:27.1.0/ in i2p nwl2 2 749 976 4 2 25 120 72 408 70016/Satoshi:27.1.0/ in i2p nwl2 2 776 954 4 1 0 72 68 426 70016/Satoshi:28.0.0/ in i2p nbwl 1 883 1735 4 4 53 34 551 70016/Satoshi:26.0.0/ in i2p nwcl2 2 920 1044 2 0 0 131 83 350 70016/Satoshi:28.0.0/ in onion wl 1 1021 20832 29 67 3 49 501 70016/Satoshi:23.0.0/ in i2p nwcl2 2 1830 1830 5 0 3 3 668 70016/Satoshi:27.1.0/ in onion nwl 1 41155 41155 87 204 4 658 70016/Satoshi:25.0.0/ out full ipv4 nwl2 2 74 93 0 0 0 1028 85 1221 338 70016/Satoshi:27.1.0/ out full ipv4 nwl 1 82 104 0 2 0 5 . 1076 95 13536 301 70016/Satoshi:26.0.0/ out full ipv4 nwl 1 147 178 2 2 0 28 . 1104 95 395570 300 70016/Satoshi:25.0.0/ out block ipv4 nwl2 2 166 513 2 2 * . 88 38001 324 70016/Satoshi:27.2.0/ out full ipv4 wl 1 193 201 0 4 0 1035 94 31376 307 70016/Satoshi:25.99.0/ out full ipv4 nwl2 2 199 796 1 1 0 1027 94 9723 304 70016/Satoshi:27.2.0/ out manual cjdns nwl2 2 213 235 1 9 0 1109 83 353 70016/Satoshi:28.99.0/ out full onion nbwl 1 282 457 3 3 1 1130 73 404 70016/Satoshi:25.0.0/ out block onion nbwl 1 324 353 23 23 * . 85 341 70016/Satoshi:26.0.0/ out manual cjdns nwl2 2 340 445 1 1 7 1059 82 361 70016/Satoshi:27.0.0/ out manual onion wl2 2 386 386 1 1 1 1048 84 345 70016/Satoshi:28.99.0/ out manual i2p nwcl2 2 697 1084 1 1 8 1113 3 93 310 70016/Satoshi:27.0.0/ out full i2p nwcl2 2 730 1254 1 9 0 1128 89 318 70016/Satoshi:28.0.0/ out full i2p nwcl2 2 765 1804 1 1 1 1132 72 409 70016/Satoshi:28.0.0/ ms ms sec sec min min min ipv4 ipv6 onion i2p cjdns total block manual in 0 0 12 6 0 18 out 6 0 3 3 2 14 2 4 total 6 0 15 9 2 32 Local addresses ``` ACKs for top commit: l0rinc: Redid the rebase, reran the test, reACK721a051320
0xB10C: ACK721a051320
danielabrozzoni: reACK721a051320
Tree-SHA512: 7206b0eadfe6bafea2a483eb898e7e5b104aca9c117d3bf68cd4c01bfa1108f179ff8a1061d97cdfc57f71ff5351774c83824b035892f7f382fdeaf10d3df359
This commit is contained in:
@@ -81,6 +81,19 @@ class TestBitcoinCli(BitcoinTestFramework):
|
||||
def skip_test_if_missing_module(self):
|
||||
self.skip_if_no_cli()
|
||||
|
||||
def test_netinfo(self):
|
||||
"""Test -netinfo output format."""
|
||||
self.log.info("Test -netinfo header and separate local services line")
|
||||
out = self.nodes[0].cli('-netinfo').send_cli().splitlines()
|
||||
assert out[0].startswith(f"{self.config['environment']['CLIENT_NAME']} client ")
|
||||
assert any(re.match(r"^Local services:.+network", line) for line in out)
|
||||
|
||||
self.log.info("Test -netinfo local services are moved to header if details are requested")
|
||||
det = self.nodes[0].cli('-netinfo', '1').send_cli().splitlines()
|
||||
self.log.debug(f"Test -netinfo 1 header output: {det[0]}")
|
||||
assert re.match(rf"^{re.escape(self.config['environment']['CLIENT_NAME'])} client.+services nwl2?$", det[0])
|
||||
assert not any(line.startswith("Local services:") for line in det)
|
||||
|
||||
def run_test(self):
|
||||
"""Main test logic"""
|
||||
self.generate(self.nodes[0], BLOCKS)
|
||||
@@ -377,6 +390,8 @@ class TestBitcoinCli(BitcoinTestFramework):
|
||||
self.log.info("*** Wallet not compiled; cli getwalletinfo and -getinfo wallet tests skipped")
|
||||
self.generate(self.nodes[0], 25) # maintain block parity with the wallet_compiled conditional branch
|
||||
|
||||
self.test_netinfo()
|
||||
|
||||
self.log.info("Test -version with node stopped")
|
||||
self.stop_node(0)
|
||||
cli_response = self.nodes[0].cli('-version').send_cli()
|
||||
|
Reference in New Issue
Block a user