1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
// Copyright (C) 2019-2021 Aleo Systems Inc. // This file is part of the snarkOS library. // The snarkOS library is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // The snarkOS library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with the snarkOS library. If not, see <https://www.gnu.org/licenses/>. use serde::{Deserialize, Serialize}; /// Returned value for the `getnodestats` rpc call #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct NodeStats { /// Stats related to messages received by the node. pub inbound: NodeInboundStats, /// Stats related to messages sent by the node. pub outbound: NodeOutboundStats, /// Stats related to the node's connections. pub connections: NodeConnectionStats, /// Stats related to the node's handshakes. pub handshakes: NodeHandshakeStats, /// Stats related to the node's queues. pub queues: NodeQueueStats, /// Miscellaneous stats related to the node. pub misc: NodeMiscStats, } #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct NodeInboundStats { /// The number of successfully processed inbound messages. pub all_successes: u64, /// The number of inbound messages that couldn't be processed. pub all_failures: u64, /// The number of all received `Block` messages. pub blocks: u64, /// The number of all received `GetBlocks` messages. pub getblocks: u64, /// The number of all received `GetMemoryPool` messages. pub getmemorypool: u64, /// The number of all received `GetPeers` messages. pub getpeers: u64, /// The number of all received `GetSync` messages. pub getsync: u64, /// The number of all received `MemoryPool` messages. pub memorypool: u64, /// The number of all received `Peers` messages. pub peers: u64, /// The number of all received `Ping` messages. pub pings: u64, /// The number of all received `Pong` messages. pub pongs: u64, /// The number of all received `Sync` messages. pub syncs: u64, /// The number of all received `SyncBlock` messages. pub syncblocks: u64, /// The number of all received `Transaction` messages. pub transactions: u64, /// The number of all received `Unknown` messages. pub unknown: u64, } #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct NodeOutboundStats { /// The number of messages successfully sent by the node. pub all_successes: u64, /// The number of messages that failed to be sent to peers. pub all_failures: u64, } #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct NodeConnectionStats { /// The number of all connections the node has accepted. pub all_accepted: u64, /// The number of all connections the node has initiated. pub all_initiated: u64, /// The number of rejected inbound connection requests. pub all_rejected: u64, /// Number of currently connecting peers. pub connecting_peers: u32, /// Number of currently connected peers. pub connected_peers: u32, /// Number of known disconnected peers. pub disconnected_peers: u32, } #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct NodeHandshakeStats { /// The number of failed handshakes as the initiator. pub failures_init: u64, /// The number of failed handshakes as the responder. pub failures_resp: u64, /// The number of successful handshakes as the initiator. pub successes_init: u64, /// The number of successful handshakes as the responder. pub successes_resp: u64, /// The number of handshake timeouts as the initiator. pub timeouts_init: u64, /// The number of handshake timeouts as the responder. pub timeouts_resp: u64, } #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct NodeQueueStats { /// The number of messages queued in the common inbound channel. pub inbound: u64, /// The number of messages queued in the individual outbound channels. pub outbound: u64, } #[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)] pub struct NodeMiscStats { /// The current block height of the node. pub block_height: u64, /// The number of blocks the node has mined. pub blocks_mined: u64, /// The number of duplicate blocks received. pub duplicate_blocks: u64, /// The number of duplicate sync blocks received. pub duplicate_sync_blocks: u64, /// The number of orphan blocks received. pub orphan_blocks: u64, /// The number of RPC requests received. pub rpc_requests: u64, }