Introduce a new field named detailed in RPC getnettotals to retrieve traffic bytes and count of messages broken down by:
- direction (sent or received)
- network (ipv4, tor, etc)
- connection type (outbound-full-relay, block-relay-only, etc)
- message type (verack, ping, etc)
Implements: #26337 Add per message stats to getnettotals rpc
Examples:
<details> <summary>Group by direction (sum network, connection type, message type)</summary>
$ bitcoin-cli getnettotals | jq '.detailed | map_values([.[][][]] | { bytes: (map(.bytes) | add), count: (map(.count) | add) })'
{
"recv": {
"bytes": 288580402,
"count": 562224
},
"sent": {
"bytes": 11514028329,
"count": 715094
}
}
</details>
<details> <summary>Group by network (sum direction, connection type, message type)</summary>
$ bitcoin-cli getnettotals | jq '
[.detailed[] | to_entries[] | {key, value: [.value[][]]}]
| group_by(.key)
| map({
key: .[0].key,
value: ([.[].value[]] | { bytes: (map(.bytes) | add), count: (map(.count) | add) })
})
| sort_by(-.value.bytes)
| from_entries
'
{
"ipv4": {
"bytes": 13195416760,
"count": 689590
},
"ipv6": {
"bytes": 850168762,
"count": 187587
},
"onion": {
"bytes": 516511904,
"count": 378875
},
"i2p": {
"bytes": 128190870,
"count": 217514
}
}
</details>
<details> <summary>Group by connection type (sum direction, network, message type)</summary>
$ bitcoin-cli getnettotals | jq '
[.detailed[][] | to_entries[] | {key, value: [.value[]]}]
| group_by(.key)
| map({
key: .[0].key,
value: ([.[].value[]] | { bytes: (map(.bytes) | add), count: (map(.count) | add) })
})
| sort_by(-.value.bytes)
| from_entries
'
{
"inbound": {
"bytes": 14739206052,
"count": 1093958
},
"outbound-full-relay": {
"bytes": 181674080,
"count": 403496
},
"block-relay-only": {
"bytes": 2111575,
"count": 2254
},
"feeler": {
"bytes": 19052,
"count": 321
}
}
</details>
<details> <summary>Group by message type (sum direction, network, connection type)</summary>
$ bitcoin-cli getnettotals | jq '
[.detailed[][][] | to_entries[]]
| group_by(.key)
| map({key: .[0].key, value: {bytes: (map(.value.bytes) | add), count: (map(.value.count) | add)}})
| sort_by(-.value.bytes)
| from_entries
'
{
"block": {
"bytes": 14389470456,
"count": 16292
},
"inv": {
"bytes": 468520895,
"count": 493445
},
"tx": {
"bytes": 241896347,
"count": 739362
},
"headers": {
"bytes": 160736053,
"count": 5113
},
"blocktxn": {
"bytes": 65711296,
"count": 149
},
"addrv2": {
"bytes": 39362409,
"count": 32218
},
"getdata": {
"bytes": 31000172,
"count": 140298
},
"cfilter": {
"bytes": 13663517,
"count": 675
},
"cmpctblock": {
"bytes": 11462012,
"count": 351
},
"cfheaders": {
"bytes": 9458330,
"count": 213
},
"getheaders": {
"bytes": 2988902,
"count": 2997
},
"addr": {
"bytes": 1384310,
"count": 1064
},
"version": {
"bytes": 944836,
"count": 7199
},
"ping": {
"bytes": 934821,
"count": 30717
},
"pong": {
"bytes": 897571,
"count": 29519
},
"notfound": {
"bytes": 652364,
"count": 4081
},
"getblocktxn": {
"bytes": 272299,
"count": 149
},
"verack": {
"bytes": 183810,
"count": 6911
},
"sendaddrv2": {
"bytes": 177381,
"count": 6573
},
"wtxidrelay": {
"bytes": 133062,
"count": 4726
},
"sendcmpct": {
"bytes": 119817,
"count": 3764
},
"feefilter": {
"bytes": 105502,
"count": 3404
},
"getaddr": {
"bytes": 56313,
"count": 2130
},
"sendheaders": {
"bytes": 33009,
"count": 1042
},
"getcfheaders": {
"bytes": 13054,
"count": 214
},
"*other*": {
"bytes": 12222,
"count": 86
},
"getcfilters": {
"bytes": 2257,
"count": 37
}
}
</details>
<details> <summary>Full output of getnettotals</summary>
$ bitcoin-cli getnettotals
{
"totalbytesrecv": 290796106,
"totalbytessent": 11516332695,
"timemillis": 1792494749925,
"uploadtarget": {
"timeframe": 86400,
"target": 0,
"target_reached": false,
"serve_historical_blocks": true,
"bytes_left_in_cycle": 0,
"time_left_in_cycle": 0
},
"detailed": {
"recv": {
"i2p": {
"feeler": {
"sendaddrv2": {
"bytes": 66,
"count": 2
},
"version": {
"bytes": 540,
"count": 4
},
"wtxidrelay": {
"bytes": 99,
"count": 3
},
"verack": {
"bytes": 66,
"count": 2
}
},
"inbound": {
"getblocktxn": {
"bytes": 11760,
"count": 8
},
"sendcmpct": {
"bytes": 1458,
"count": 48
},
"sendaddrv2": {
"bytes": 3462,
"count": 115
},
"headers": {
"bytes": 4200647,
"count": 188
},
"feefilter": {
"bytes": 1085,
"count": 37
},
"notfound": {
"bytes": 8512,
"count": 124
},
"version": {
"bytes": 20365,
"count": 147
},
"ping": {
"bytes": 28462,
"count": 971
},
"getaddr": {
"bytes": 1932,
"count": 61
},
"tx": {
"bytes": 11121147,
"count": 44073
},
"getheaders": {
"bytes": 51468,
"count": 49
},
"pong": {
"bytes": 28407,
"count": 969
},
"getdata": {
"bytes": 1193534,
"count": 4492
},
"inv": {
"bytes": 27330829,
"count": 39577
},
"sendheaders": {
"bytes": 1167,
"count": 37
},
"wtxidrelay": {
"bytes": 3120,
"count": 97
},
"addrv2": {
"bytes": 171634,
"count": 1859
},
"verack": {
"bytes": 2901,
"count": 98
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 60,
"count": 2
},
"sendaddrv2": {
"bytes": 66,
"count": 2
},
"headers": {
"bytes": 508855,
"count": 4
},
"feefilter": {
"bytes": 58,
"count": 2
},
"version": {
"bytes": 285,
"count": 2
},
"ping": {
"bytes": 58,
"count": 2
},
"getheaders": {
"bytes": 10500,
"count": 10
},
"pong": {
"bytes": 58,
"count": 2
},
"sendheaders": {
"bytes": 33,
"count": 1
},
"wtxidrelay": {
"bytes": 66,
"count": 2
},
"verack": {
"bytes": 66,
"count": 2
}
},
"outbound-full-relay": {
"sendcmpct": {
"bytes": 90,
"count": 3
},
"sendaddrv2": {
"bytes": 99,
"count": 3
},
"headers": {
"bytes": 4841,
"count": 47
},
"feefilter": {
"bytes": 87,
"count": 3
},
"notfound": {
"bytes": 1606,
"count": 19
},
"version": {
"bytes": 420,
"count": 3
},
"ping": {
"bytes": 7975,
"count": 275
},
"tx": {
"bytes": 2693399,
"count": 7512
},
"getheaders": {
"bytes": 3150,
"count": 3
},
"pong": {
"bytes": 7946,
"count": 274
},
"getdata": {
"bytes": 608696,
"count": 1154
},
"inv": {
"bytes": 3007482,
"count": 5055
},
"sendheaders": {
"bytes": 99,
"count": 3
},
"wtxidrelay": {
"bytes": 99,
"count": 3
},
"addrv2": {
"bytes": 150314,
"count": 651
},
"verack": {
"bytes": 99,
"count": 3
}
}
},
"onion": {
"feeler": {
"sendaddrv2": {
"bytes": 507,
"count": 17
},
"version": {
"bytes": 2976,
"count": 22
},
"wtxidrelay": {
"bytes": 606,
"count": 20
},
"verack": {
"bytes": 450,
"count": 15
}
},
"inbound": {
"getcfheaders": {
"bytes": 9272,
"count": 152
},
"getcfilters": {
"bytes": 61,
"count": 1
},
"getblocktxn": {
"bytes": 10196,
"count": 10
},
"sendcmpct": {
"bytes": 2553,
"count": 84
},
"sendaddrv2": {
"bytes": 22272,
"count": 862
},
"headers": {
"bytes": 7083003,
"count": 138
},
"feefilter": {
"bytes": 1265,
"count": 43
},
"notfound": {
"bytes": 2681,
"count": 35
},
"version": {
"bytes": 114464,
"count": 869
},
"ping": {
"bytes": 45951,
"count": 1494
},
"getaddr": {
"bytes": 14742,
"count": 570
},
"tx": {
"bytes": 2974453,
"count": 6258
},
"getheaders": {
"bytes": 247192,
"count": 235
},
"pong": {
"bytes": 56799,
"count": 1833
},
"getdata": {
"bytes": 3098685,
"count": 25256
},
"inv": {
"bytes": 12651778,
"count": 16442
},
"sendheaders": {
"bytes": 1974,
"count": 62
},
"wtxidrelay": {
"bytes": 6285,
"count": 197
},
"addrv2": {
"bytes": 118132,
"count": 1375
},
"verack": {
"bytes": 21492,
"count": 837
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 150,
"count": 5
},
"sendaddrv2": {
"bytes": 165,
"count": 5
},
"headers": {
"bytes": 515,
"count": 5
},
"feefilter": {
"bytes": 145,
"count": 5
},
"version": {
"bytes": 690,
"count": 5
},
"ping": {
"bytes": 145,
"count": 5
},
"getheaders": {
"bytes": 5250,
"count": 5
},
"pong": {
"bytes": 145,
"count": 5
},
"sendheaders": {
"bytes": 165,
"count": 5
},
"wtxidrelay": {
"bytes": 165,
"count": 5
},
"verack": {
"bytes": 165,
"count": 5
}
},
"outbound-full-relay": {
"getblocktxn": {
"bytes": 35565,
"count": 23
},
"sendcmpct": {
"bytes": 621,
"count": 20
},
"sendaddrv2": {
"bytes": 474,
"count": 16
},
"headers": {
"bytes": 8618,
"count": 77
},
"feefilter": {
"bytes": 453,
"count": 15
},
"notfound": {
"bytes": 1416,
"count": 24
},
"version": {
"bytes": 2151,
"count": 16
},
"ping": {
"bytes": 16665,
"count": 552
},
"tx": {
"bytes": 9800969,
"count": 30650
},
"getheaders": {
"bytes": 16818,
"count": 16
},
"pong": {
"bytes": 16633,
"count": 551
},
"getdata": {
"bytes": 4855391,
"count": 4636
},
"inv": {
"bytes": 6193503,
"count": 14658
},
"sendheaders": {
"bytes": 474,
"count": 16
},
"wtxidrelay": {
"bytes": 474,
"count": 16
},
"addrv2": {
"bytes": 626368,
"count": 1268
},
"verack": {
"bytes": 474,
"count": 16
}
}
},
"ipv6": {
"feeler": {
"sendcmpct": {
"bytes": 30,
"count": 1
},
"sendaddrv2": {
"bytes": 33,
"count": 1
},
"version": {
"bytes": 261,
"count": 2
},
"ping": {
"bytes": 29,
"count": 1
},
"wtxidrelay": {
"bytes": 33,
"count": 1
},
"verack": {
"bytes": 57,
"count": 2
}
},
"inbound": {
"getcfheaders": {
"bytes": 976,
"count": 16
},
"getcfilters": {
"bytes": 1037,
"count": 17
},
"getblocktxn": {
"bytes": 66702,
"count": 17
},
"sendcmpct": {
"bytes": 2574,
"count": 84
},
"sendaddrv2": {
"bytes": 13368,
"count": 521
},
"headers": {
"bytes": 7701971,
"count": 126
},
"feefilter": {
"bytes": 1401,
"count": 48
},
"notfound": {
"bytes": 2835,
"count": 42
},
"*other*": {
"bytes": 324,
"count": 12
},
"version": {
"bytes": 88370,
"count": 683
},
"ping": {
"bytes": 76415,
"count": 2455
},
"getaddr": {
"bytes": 9654,
"count": 382
},
"tx": {
"bytes": 706464,
"count": 2116
},
"getheaders": {
"bytes": 305467,
"count": 306
},
"pong": {
"bytes": 91365,
"count": 2922
},
"getdata": {
"bytes": 1717706,
"count": 7377
},
"inv": {
"bytes": 11736308,
"count": 19811
},
"sendheaders": {
"bytes": 1869,
"count": 61
},
"wtxidrelay": {
"bytes": 4254,
"count": 142
},
"addrv2": {
"bytes": 102634,
"count": 1105
},
"addr": {
"bytes": 165,
"count": 3
},
"verack": {
"bytes": 16548,
"count": 661
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 30,
"count": 1
},
"sendaddrv2": {
"bytes": 33,
"count": 1
},
"headers": {
"bytes": 103,
"count": 1
},
"feefilter": {
"bytes": 29,
"count": 1
},
"version": {
"bytes": 135,
"count": 1
},
"ping": {
"bytes": 29,
"count": 1
},
"getheaders": {
"bytes": 1050,
"count": 1
},
"pong": {
"bytes": 29,
"count": 1
},
"sendheaders": {
"bytes": 33,
"count": 1
},
"wtxidrelay": {
"bytes": 33,
"count": 1
},
"verack": {
"bytes": 33,
"count": 1
}
},
"outbound-full-relay": {
"sendcmpct": {
"bytes": 63,
"count": 2
},
"sendaddrv2": {
"bytes": 81,
"count": 3
},
"headers": {
"bytes": 164735,
"count": 9
},
"feefilter": {
"bytes": 61,
"count": 2
},
"notfound": {
"bytes": 305,
"count": 5
},
"version": {
"bytes": 1144,
"count": 9
},
"ping": {
"bytes": 4445,
"count": 139
},
"tx": {
"bytes": 2133640,
"count": 3896
},
"getheaders": {
"bytes": 2007,
"count": 2
},
"pong": {
"bytes": 4445,
"count": 139
},
"getdata": {
"bytes": 2869,
"count": 37
},
"inv": {
"bytes": 691154,
"count": 2786
},
"sendheaders": {
"bytes": 24,
"count": 1
},
"wtxidrelay": {
"bytes": 81,
"count": 3
},
"addrv2": {
"bytes": 49482,
"count": 205
},
"verack": {
"bytes": 225,
"count": 9
}
}
},
"ipv4": {
"feeler": {
"sendcmpct": {
"bytes": 30,
"count": 1
},
"sendaddrv2": {
"bytes": 165,
"count": 5
},
"version": {
"bytes": 950,
"count": 7
},
"wtxidrelay": {
"bytes": 165,
"count": 5
},
"verack": {
"bytes": 213,
"count": 7
}
},
"inbound": {
"getcfheaders": {
"bytes": 244,
"count": 4
},
"getcfilters": {
"bytes": 183,
"count": 3
},
"getblocktxn": {
"bytes": 55161,
"count": 15
},
"sendcmpct": {
"bytes": 12099,
"count": 399
},
"sendaddrv2": {
"bytes": 33105,
"count": 1178
},
"headers": {
"bytes": 36128046,
"count": 814
},
"feefilter": {
"bytes": 6158,
"count": 211
},
"notfound": {
"bytes": 15714,
"count": 207
},
"*other*": {
"bytes": 324,
"count": 12
},
"version": {
"bytes": 188525,
"count": 1405
},
"ping": {
"bytes": 136003,
"count": 4538
},
"getaddr": {
"bytes": 22929,
"count": 853
},
"cmpctblock": {
"bytes": 190114,
"count": 6
},
"block": {
"bytes": 4920635,
"count": 4
},
"tx": {
"bytes": 28321664,
"count": 84510
},
"getheaders": {
"bytes": 540716,
"count": 531
},
"pong": {
"bytes": 192764,
"count": 6313
},
"getdata": {
"bytes": 5137343,
"count": 32117
},
"inv": {
"bytes": 48773424,
"count": 86883
},
"sendheaders": {
"bytes": 9759,
"count": 308
},
"wtxidrelay": {
"bytes": 19008,
"count": 594
},
"addrv2": {
"bytes": 246799,
"count": 3460
},
"addr": {
"bytes": 165,
"count": 3
},
"verack": {
"bytes": 34350,
"count": 1270
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 186,
"count": 6
},
"sendaddrv2": {
"bytes": 156,
"count": 5
},
"headers": {
"bytes": 8356,
"count": 61
},
"feefilter": {
"bytes": 148,
"count": 5
},
"version": {
"bytes": 1184,
"count": 9
},
"ping": {
"bytes": 11311,
"count": 371
},
"getheaders": {
"bytes": 5253,
"count": 5
},
"pong": {
"bytes": 11311,
"count": 371
},
"sendheaders": {
"bytes": 156,
"count": 5
},
"wtxidrelay": {
"bytes": 156,
"count": 5
},
"addrv2": {
"bytes": 5933,
"count": 114
},
"verack": {
"bytes": 252,
"count": 9
}
},
"outbound-full-relay": {
"sendcmpct": {
"bytes": 336,
"count": 11
},
"sendaddrv2": {
"bytes": 378,
"count": 12
},
"headers": {
"bytes": 8638418,
"count": 98
},
"feefilter": {
"bytes": 325,
"count": 11
},
"notfound": {
"bytes": 1490,
"count": 17
},
"version": {
"bytes": 1640,
"count": 12
},
"ping": {
"bytes": 14738,
"count": 502
},
"cmpctblock": {
"bytes": 1418449,
"count": 46
},
"tx": {
"bytes": 21044915,
"count": 59532
},
"getheaders": {
"bytes": 21342,
"count": 92
},
"pong": {
"bytes": 14738,
"count": 502
},
"getdata": {
"bytes": 13310,
"count": 131
},
"inv": {
"bytes": 6750879,
"count": 10224
},
"sendheaders": {
"bytes": 312,
"count": 10
},
"wtxidrelay": {
"bytes": 378,
"count": 12
},
"addrv2": {
"bytes": 257639,
"count": 728
},
"blocktxn": {
"bytes": 402708,
"count": 15
},
"verack": {
"bytes": 378,
"count": 12
}
}
}
},
"sent": {
"i2p": {
"feeler": {
"sendaddrv2": {
"bytes": 132,
"count": 4
},
"version": {
"bytes": 671,
"count": 5
},
"wtxidrelay": {
"bytes": 132,
"count": 4
},
"verack": {
"bytes": 132,
"count": 4
}
},
"inbound": {
"sendcmpct": {
"bytes": 2961,
"count": 96
},
"sendaddrv2": {
"bytes": 4491,
"count": 147
},
"headers": {
"bytes": 1968395,
"count": 245
},
"feefilter": {
"bytes": 2750,
"count": 91
},
"notfound": {
"bytes": 26978,
"count": 281
},
"version": {
"bytes": 19632,
"count": 147
},
"ping": {
"bytes": 30385,
"count": 1034
},
"cmpctblock": {
"bytes": 1028207,
"count": 31
},
"block": {
"bytes": 13581140,
"count": 9
},
"tx": {
"bytes": 11354505,
"count": 29797
},
"getheaders": {
"bytes": 82974,
"count": 83
},
"pong": {
"bytes": 28433,
"count": 970
},
"getdata": {
"bytes": 1669965,
"count": 2910
},
"inv": {
"bytes": 8536101,
"count": 14425
},
"sendheaders": {
"bytes": 1134,
"count": 36
},
"wtxidrelay": {
"bytes": 4491,
"count": 147
},
"addrv2": {
"bytes": 1505470,
"count": 1994
},
"blocktxn": {
"bytes": 2885474,
"count": 8
},
"verack": {
"bytes": 4491,
"count": 147
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 60,
"count": 2
},
"sendaddrv2": {
"bytes": 66,
"count": 2
},
"headers": {
"bytes": 1458319,
"count": 10
},
"version": {
"bytes": 272,
"count": 2
},
"ping": {
"bytes": 58,
"count": 2
},
"getheaders": {
"bytes": 4200,
"count": 4
},
"pong": {
"bytes": 58,
"count": 2
},
"sendheaders": {
"bytes": 33,
"count": 1
},
"wtxidrelay": {
"bytes": 66,
"count": 2
},
"verack": {
"bytes": 66,
"count": 2
}
},
"outbound-full-relay": {
"sendcmpct": {
"bytes": 90,
"count": 3
},
"sendaddrv2": {
"bytes": 99,
"count": 3
},
"headers": {
"bytes": 7210,
"count": 70
},
"feefilter": {
"bytes": 87,
"count": 3
},
"notfound": {
"bytes": 5726,
"count": 95
},
"version": {
"bytes": 408,
"count": 3
},
"ping": {
"bytes": 8004,
"count": 276
},
"getaddr": {
"bytes": 99,
"count": 3
},
"cmpctblock": {
"bytes": 43119,
"count": 1
},
"tx": {
"bytes": 4116198,
"count": 16101
},
"getheaders": {
"bytes": 3150,
"count": 3
},
"pong": {
"bytes": 7975,
"count": 275
},
"getdata": {
"bytes": 309526,
"count": 1705
},
"inv": {
"bytes": 6791282,
"count": 11680
},
"sendheaders": {
"bytes": 99,
"count": 3
},
"wtxidrelay": {
"bytes": 99,
"count": 3
},
"addrv2": {
"bytes": 39694,
"count": 547
},
"verack": {
"bytes": 99,
"count": 3
}
}
},
"onion": {
"feeler": {
"sendaddrv2": {
"bytes": 672,
"count": 22
},
"version": {
"bytes": 2938,
"count": 22
},
"wtxidrelay": {
"bytes": 672,
"count": 22
},
"verack": {
"bytes": 672,
"count": 22
}
},
"inbound": {
"cfheaders": {
"bytes": 8235234,
"count": 152
},
"sendcmpct": {
"bytes": 24222,
"count": 744
},
"cfilter": {
"bytes": 22844,
"count": 1
},
"sendaddrv2": {
"bytes": 22425,
"count": 868
},
"headers": {
"bytes": 3749134,
"count": 345
},
"feefilter": {
"bytes": 23449,
"count": 743
},
"notfound": {
"bytes": 47859,
"count": 276
},
"version": {
"bytes": 111829,
"count": 868
},
"ping": {
"bytes": 59370,
"count": 1917
},
"cmpctblock": {
"bytes": 728569,
"count": 23
},
"block": {
"bytes": 333742085,
"count": 209
},
"tx": {
"bytes": 21443260,
"count": 69085
},
"getheaders": {
"bytes": 158592,
"count": 151
},
"pong": {
"bytes": 45855,
"count": 1491
},
"getdata": {
"bytes": 278528,
"count": 2333
},
"inv": {
"bytes": 11575046,
"count": 10096
},
"sendheaders": {
"bytes": 1926,
"count": 60
},
"wtxidrelay": {
"bytes": 22425,
"count": 868
},
"addrv2": {
"bytes": 12480168,
"count": 1941
},
"blocktxn": {
"bytes": 2824483,
"count": 10
},
"verack": {
"bytes": 22425,
"count": 868
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 150,
"count": 5
},
"sendaddrv2": {
"bytes": 165,
"count": 5
},
"headers": {
"bytes": 515,
"count": 5
},
"version": {
"bytes": 680,
"count": 5
},
"ping": {
"bytes": 145,
"count": 5
},
"getheaders": {
"bytes": 5250,
"count": 5
},
"pong": {
"bytes": 145,
"count": 5
},
"sendheaders": {
"bytes": 165,
"count": 5
},
"wtxidrelay": {
"bytes": 165,
"count": 5
},
"verack": {
"bytes": 165,
"count": 5
}
},
"outbound-full-relay": {
"sendcmpct": {
"bytes": 498,
"count": 16
},
"sendaddrv2": {
"bytes": 474,
"count": 16
},
"headers": {
"bytes": 14288,
"count": 137
},
"feefilter": {
"bytes": 482,
"count": 16
},
"notfound": {
"bytes": 7469,
"count": 98
},
"version": {
"bytes": 2122,
"count": 16
},
"ping": {
"bytes": 16665,
"count": 552
},
"getaddr": {
"bytes": 474,
"count": 16
},
"cmpctblock": {
"bytes": 1344325,
"count": 40
},
"tx": {
"bytes": 31488390,
"count": 131785
},
"getheaders": {
"bytes": 18918,
"count": 18
},
"pong": {
"bytes": 16665,
"count": 552
},
"getdata": {
"bytes": 1236881,
"count": 5732
},
"inv": {
"bytes": 19452601,
"count": 22645
},
"sendheaders": {
"bytes": 474,
"count": 16
},
"wtxidrelay": {
"bytes": 474,
"count": 16
},
"addrv2": {
"bytes": 76865,
"count": 1026
},
"blocktxn": {
"bytes": 7513424,
"count": 23
},
"verack": {
"bytes": 474,
"count": 16
}
}
},
"ipv6": {
"feeler": {
"sendaddrv2": {
"bytes": 57,
"count": 2
},
"version": {
"bytes": 390,
"count": 3
},
"wtxidrelay": {
"bytes": 57,
"count": 2
},
"verack": {
"bytes": 57,
"count": 2
}
},
"inbound": {
"cfheaders": {
"bytes": 1862,
"count": 15
},
"sendcmpct": {
"bytes": 19713,
"count": 605
},
"cfilter": {
"bytes": 13309812,
"count": 649
},
"sendaddrv2": {
"bytes": 16176,
"count": 638
},
"headers": {
"bytes": 9001618,
"count": 447
},
"feefilter": {
"bytes": 19045,
"count": 602
},
"notfound": {
"bytes": 77755,
"count": 529
},
"*other*": {
"bytes": 4992,
"count": 26
},
"version": {
"bytes": 87605,
"count": 683
},
"ping": {
"bytes": 100734,
"count": 3222
},
"cmpctblock": {
"bytes": 1679473,
"count": 54
},
"block": {
"bytes": 631983309,
"count": 431
},
"tx": {
"bytes": 18700462,
"count": 40532
},
"getheaders": {
"bytes": 176586,
"count": 168
},
"pong": {
"bytes": 76142,
"count": 2446
},
"getdata": {
"bytes": 90122,
"count": 542
},
"inv": {
"bytes": 82845445,
"count": 44248
},
"sendheaders": {
"bytes": 1293,
"count": 40
},
"wtxidrelay": {
"bytes": 16176,
"count": 638
},
"addrv2": {
"bytes": 7163154,
"count": 3283
},
"blocktxn": {
"bytes": 16959500,
"count": 17
},
"addr": {
"bytes": 371337,
"count": 313
},
"verack": {
"bytes": 17256,
"count": 683
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 30,
"count": 1
},
"sendaddrv2": {
"bytes": 33,
"count": 1
},
"headers": {
"bytes": 103,
"count": 1
},
"version": {
"bytes": 136,
"count": 1
},
"ping": {
"bytes": 29,
"count": 1
},
"getheaders": {
"bytes": 1050,
"count": 1
},
"pong": {
"bytes": 29,
"count": 1
},
"sendheaders": {
"bytes": 33,
"count": 1
},
"wtxidrelay": {
"bytes": 33,
"count": 1
},
"verack": {
"bytes": 33,
"count": 1
}
},
"outbound-full-relay": {
"sendcmpct": {
"bytes": 294,
"count": 9
},
"sendaddrv2": {
"bytes": 225,
"count": 9
},
"headers": {
"bytes": 131470,
"count": 33
},
"feefilter": {
"bytes": 285,
"count": 9
},
"notfound": {
"bytes": 183,
"count": 3
},
"version": {
"bytes": 1424,
"count": 11
},
"ping": {
"bytes": 4669,
"count": 146
},
"getaddr": {
"bytes": 225,
"count": 9
},
"tx": {
"bytes": 23507,
"count": 51
},
"getheaders": {
"bytes": 16845,
"count": 16
},
"pong": {
"bytes": 4445,
"count": 139
},
"getdata": {
"bytes": 182411,
"count": 1679
},
"inv": {
"bytes": 1209111,
"count": 5343
},
"sendheaders": {
"bytes": 24,
"count": 1
},
"wtxidrelay": {
"bytes": 225,
"count": 9
},
"addrv2": {
"bytes": 20633,
"count": 259
},
"addr": {
"bytes": 665,
"count": 11
},
"verack": {
"bytes": 225,
"count": 9
}
}
},
"ipv4": {
"feeler": {
"sendaddrv2": {
"bytes": 213,
"count": 7
},
"version": {
"bytes": 1061,
"count": 8
},
"wtxidrelay": {
"bytes": 213,
"count": 7
},
"verack": {
"bytes": 213,
"count": 7
}
},
"inbound": {
"cfheaders": {
"bytes": 64458,
"count": 4
},
"sendcmpct": {
"bytes": 37701,
"count": 1182
},
"cfilter": {
"bytes": 20405,
"count": 3
},
"sendaddrv2": {
"bytes": 37227,
"count": 1343
},
"headers": {
"bytes": 19568359,
"count": 1044
},
"feefilter": {
"bytes": 36465,
"count": 1179
},
"notfound": {
"bytes": 434752,
"count": 2196
},
"*other*": {
"bytes": 5184,
"count": 27
},
"version": {
"bytes": 183430,
"count": 1405
},
"ping": {
"bytes": 210979,
"count": 6897
},
"cmpctblock": {
"bytes": 948391,
"count": 31
},
"block": {
"bytes": 9977590378,
"count": 12054
},
"tx": {
"bytes": 35121307,
"count": 99150
},
"getheaders": {
"bytes": 706974,
"count": 673
},
"pong": {
"bytes": 135742,
"count": 4529
},
"getdata": {
"bytes": 3430615,
"count": 17317
},
"inv": {
"bytes": 126231463,
"count": 77745
},
"sendheaders": {
"bytes": 8205,
"count": 256
},
"wtxidrelay": {
"bytes": 37227,
"count": 1343
},
"addrv2": {
"bytes": 11934125,
"count": 6866
},
"blocktxn": {
"bytes": 13856854,
"count": 15
},
"addr": {
"bytes": 852179,
"count": 627
},
"verack": {
"bytes": 38715,
"count": 1405
}
},
"block-relay-only": {
"sendcmpct": {
"bytes": 252,
"count": 8
},
"sendaddrv2": {
"bytes": 228,
"count": 8
},
"headers": {
"bytes": 9293,
"count": 89
},
"version": {
"bytes": 1569,
"count": 12
},
"ping": {
"bytes": 11407,
"count": 374
},
"getheaders": {
"bytes": 17889,
"count": 17
},
"pong": {
"bytes": 11311,
"count": 371
},
"sendheaders": {
"bytes": 156,
"count": 5
},
"wtxidrelay": {
"bytes": 228,
"count": 8
},
"verack": {
"bytes": 228,
"count": 8
}
},
"outbound-full-relay": {
"getblocktxn": {
"bytes": 2604,
"count": 15
},
"sendcmpct": {
"bytes": 426,
"count": 14
},
"sendaddrv2": {
"bytes": 378,
"count": 12
},
"headers": {
"bytes": 13290524,
"count": 126
},
"feefilter": {
"bytes": 354,
"count": 12
},
"notfound": {
"bytes": 1594,
"count": 25
},
"version": {
"bytes": 1614,
"count": 12
},
"ping": {
"bytes": 14767,
"count": 503
},
"getaddr": {
"bytes": 378,
"count": 12
},
"tx": {
"bytes": 121642,
"count": 260
},
"getheaders": {
"bytes": 22222,
"count": 68
},
"pong": {
"bytes": 14738,
"count": 502
},
"getdata": {
"bytes": 2315007,
"count": 7653
},
"inv": {
"bytes": 9941029,
"count": 18706
},
"sendheaders": {
"bytes": 312,
"count": 10
},
"wtxidrelay": {
"bytes": 378,
"count": 12
},
"addrv2": {
"bytes": 76689,
"count": 1000
},
"verack": {
"bytes": 378,
"count": 12
}
}
}
}
}
}
</details>
<details> <summary>Omit the new field</summary>
$ bitcoin-cli getnettotals | jq 'del(.detailed)'
{
"totalbytesrecv": 290796106,
"totalbytessent": 11516332695,
"timemillis": 1792494749925,
"uploadtarget": {
"timeframe": 86400,
"target": 0,
"target_reached": false,
"serve_historical_blocks": true,
"bytes_left_in_cycle": 0,
"time_left_in_cycle": 0
}
}
</details>
Previous incarnations of this: #27534 rpc: add 'getnetmsgstats', new rpc to view network message statistics (Thank you, @satsie!) #28926 rpc: add 'getnetmsgstats' RPC (Thank you, @willcl-ark!)