You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge #20877: netinfo: user help and argument parsing improvements
7d3343f cli: update -netinfo help doc following the merge of 882ce25 (Jon Atack)
ef614bb cli: small -netinfo simplification and performance improvement (Jon Atack)
6b45ef3 cli: improve -netinfo invalid argument error message (Jon Atack)
3732404 cli: warn in help that -netinfo is not intended to be a stable API (Jon Atack)
7afdd72 cli: enable -netinfo help to run without a remote server (Jon Atack)
Pull request description:
A few updates, some per IRC discussion today at http://www.erisian.com.au/bitcoin-core-dev/log-2021-01-07.html#l-87 with respect to -netinfo:
- enable `-netinfo help` to run without a remote server
- warn in `-netinfo help` that -netinfo is not intended to be a stable API
- improve the -netinfo invalid argument error message
- make a performance improvement and simplification I noticed after the merge of #20764
- update the -netinfo help doc following the merge of #21192
-----
How to test manually: 🔬 🧪 📈
1. check out and build this branch locally; if you need help, don't hesitate to refer to https://jonatack.github.io/articles/how-to-review-pull-requests-in-bitcoin-core#pull-down-the-code-locally or https://jonatack.github.io/articles/how-to-compile-bitcoin-core-and-run-the-tests
2. while it is compiling, look at the code changes
3. stop signet (if it is running) with `./src/bitcoin-cli -signet stop`
4. once the build is completed, run `./src/bitcoin-cli -signet -netinfo help`
5. the help should be printed even though the signet server is not running
6. near the top you should see the new warning, "This human-readable interface will change regularly and is not intended to be a stable API" as well as a bit more description about the integer argument values.
7. start signet with `./src/bitcoind -signet`
8. test the improved invalid argument error message if you run `./src/bitcoin-cli -signet -netinfo 256` or `./src/bitcoin-cli -signet -netinfo a` (valid values are from 0 to 255)
9. leave review feedback or `ACK <commit hash>` -- done 🍻
ACKs for top commit:
michaelfolkson:
Re-ACK 7d3343f
pinheadmz:
RE-ACK 7d3343f
Tree-SHA512: 28c5e9f295ffccba5c2a70faac4987d45f35d4758cf8f10daa767e83212316c4cfc65930e4066f7ad627e9d15b92d43439d1ba9c2f755dfde61885c6a70aa155
"Returns a network peer connections dashboard with information from the remote server.\n"
513
+
"This human-readable interface will change regularly and is not intended to be a stable API.\n"
514
+
"Under the hood, -netinfo fetches the data by calling getpeerinfo and getnetworkinfo.\n"
515
+
+ strprintf("An optional integer argument from 0 to %d can be passed for different peers listings; %d to 255 are parsed as %d.\n", MAX_DETAIL_LEVEL, MAX_DETAIL_LEVEL, MAX_DETAIL_LEVEL) +
516
+
"Pass \"help\" to see this detailed help documentation.\n"
517
+
"If more than one argument is passed, only the first one is read and parsed.\n"
518
+
"Suggestion: use with the Linux watch(1) command for a live dashboard; see example below.\n\n"
519
+
"Arguments:\n"
520
+
+ strprintf("1. level (integer 0-%d, optional) Specify the info level of the peers dashboard (default 0):\n", MAX_DETAIL_LEVEL) +
521
+
" 0 - Connection counts and local addresses\n"
522
+
" 1 - Like 0 but with a peers listing (without address or version columns)\n"
523
+
" 2 - Like 1 but with an address column\n"
524
+
" 3 - Like 1 but with a version column\n"
525
+
" 4 - Like 1 but with both address and version columns\n"
526
+
"2. help (string \"help\", optional) Print this help documentation instead of the dashboard.\n\n"
527
+
"Result:\n\n"
528
+
+ strprintf("* The peers listing in levels 1-%d displays all of the peers sorted by direction and minimum ping time:\n\n", MAX_DETAIL_LEVEL) +
529
+
" Column Description\n"
530
+
" ------ -----------\n"
531
+
" <-> Direction\n"
532
+
"\"in\" - inbound connections are those initiated by the peer\n"
533
+
"\"out\" - outbound connections are those initiated by us\n"
534
+
" type Type of peer connection\n"
535
+
"\"full\" - full relay, the default\n"
536
+
"\"block\" - block relay; like full relay but does not relay transactions or addresses\n"
537
+
"\"manual\" - peer we manually added using RPC addnode or the -addnode/-connect config options\n"
538
+
"\"feeler\" - short-lived connection for testing addresses\n"
539
+
"\"addr\" - address fetch; short-lived connection for requesting addresses\n"
540
+
" net Network the peer connected through (\"ipv4\", \"ipv6\", \"onion\", \"i2p\", or \"cjdns\")\n"
541
+
" mping Minimum observed ping time, in milliseconds (ms)\n"
542
+
" ping Last observed ping time, in milliseconds (ms)\n"
543
+
" send Time since last message sent to the peer, in seconds\n"
544
+
" recv Time since last message received from the peer, in seconds\n"
545
+
" txn Time since last novel transaction received from the peer and accepted into our mempool, in minutes\n"
546
+
" blk Time since last novel block passing initial validity checks received from the peer, in minutes\n"
547
+
" hb High-bandwidth BIP152 compact block relay\n"
548
+
"\".\" (to) - we selected the peer as a high-bandwidth peer\n"
549
+
"\"*\" (from) - the peer selected us as a high-bandwidth peer\n"
550
+
" age Duration of connection to the peer, in minutes\n"
551
+
" asmap Mapped AS (Autonomous System) number in the BGP route to the peer, used for diversifying\n"
552
+
" peer selection (only displayed if the -asmap config option is set)\n"
553
+
" id Peer index, in increasing order of peer connections since node startup\n"
554
+
" address IP address and port of the peer\n"
555
+
" version Peer version and subversion concatenated, e.g. \"70016/Satoshi:21.0.0/\"\n\n"
556
+
"* The connection counts table displays the number of peers by direction, network, and the totals\n"
557
+
" for each, as well as two special outbound columns for block relay peers and manual peers.\n\n"
558
+
"* The local addresses table lists each local address broadcast by the node, the port, and the score.\n\n"
0 commit comments