Net API
Tip
To enable the Net RPC API on a node, add "net" to the PublicModules section in node_config.json.
Definitions:
* Node ID: A 32-byte Ed25519 public key derived from the 64-byte private key stored in ~/.gvite/maindata/net/peerKey or specified as PeerKey in node_config.json.
* Node Name: A human-readable name specified as Identity in node_config.json.
* Node Address: The IP address and port of the node.
* Network ID: Configured as NetID in node_config.json. 1 represents the mainnet.
* Block Propagation Delay: The time difference, in milliseconds, between the broadcast of a snapshot block and its timestamp.
* Reliable Node: A node is considered reliable if its height does not exceed the maximum height in the WhiteBlockList by more than 86400 and all snapshot blocks in the list are validated by the node. If BlackBlockHashList is configured and a node provides a block in the blacklist, it is deemed unreliable. By default, all nodes are considered reliable.
* Sync Start Height: The starting height of the current sync cycle, calculated as the node's current height rounded down to the nearest 100 plus 1. If the snapshot block at this height cannot be retrieved, the synchronizer will attempt up to 100 blocks backward or start from the node's irreversible height. For new nodes, this value is 0.
* Sync End Height: The ending height of the current sync cycle, determined as the median height of all connected nodes. For new nodes, this value is 0.
* Irreversible Height: The height at which more than two-thirds of SBPs have produced blocks in a round. This height is considered irreversible.
* Block Segment: A continuous range of snapshot blocks represented by a start and end block.
Note
For fully synced nodes (state = 2), the sync start and end heights remain unchanged.
net_syncInfo
Retrieve the sync status of the node.
-
Parameters: None
-
Returns:
SyncInfofrom:stringThe sync start height.to:stringThe sync end height.current:stringThe current height of the node.state:uintThe sync state: 0 - Not started, 1 - Syncing, 2 - Completed, 3 - Error, 4 - Canceled.status:stringA description of the sync state.
-
Example:
Example
net_syncDetail
Retrieve the detailed sync status of the node.
-
Parameters: None
-
Returns:
SyncDetailfrom:stringThe sync start height.to:stringThe sync end height.current:stringThe current height of the node.state:stringThe sync state. This field returns the same value asstatus.status:stringA description of the sync state.tasks:Array<string>The current download tasks. Only nodes in the syncing state have download tasks.connections:Array<SyncConnectionStatus>address:stringThe address of the connected node, composed of the first 16 bytes of the node ID + "@" + the node's IP address and port.speed:stringThe download speed from the node.task:stringThe current download task.
chunks:Array<SnapshotRange>Verified snapshot block segments waiting to be inserted into the local ledger.height:uint64The height of the snapshot block.hash:hashThe hash of the snapshot block.
caches:Array<Segment>Unverified snapshot block segments stored in the cache.From:uint64The starting height of the snapshot block segment.To:uint64The ending height of the snapshot block segment.Hash:hashThe hash of the block segment.PreHash:hashThe hash of the previous block segment.Points:Array<HashHeight>The hash height points contained in the block segment.height:uint64The height of the snapshot block.hash:hashThe hash of the snapshot block.
-
Example:
Example
{
"jsonrpc": "2.0",
"id": 4,
"result": {
"from": 692001,
"to": 727000,
"current": 692084,
"state": "Syncing",
"status": "Syncing",
"tasks": [
"692001-693000 Completed",
"693001-694000 Pending"
],
"connections": [
{
"address": "24a160122317e6e4940ef2a91242b07f@118.25.49.80:8484",
"speed": "0.00 Byte/s",
"task": ""
},
{
"address": "04508fbe0512c01a48c8a450425547de@118.24.112.185:8484",
"speed": "0.00 Byte/s",
"task": ""
}
],
"chunks": [
[
{
"height": 692000,
"hash": "74add6f7f61c33dd741276d97d8ade4456c47485da78752587aef8a209fe7e88"
},
{
"height": 693000,
"hash": "b6af1c6fb3b502268b17928b1d91206e71003f614c134f8865bf6886d88d8e30"
}
]
],
"caches": [
{
"From": 691001,
"To": 693000,
"Hash": "b6af1c6fb3b502268b17928b1d91206e71003f614c134f8865bf6886d88d8e30",
"PrevHash": "028e2730c8fad34b53b8d8f5a41881024fa8b87a97a9cfc61f0e0c83984336a0"
},
{
"From": 694001,
"To": 696000,
"Hash": "e14662c3e9a9751b28822f2640be79cf13bd778c6b3158c8f6ff584fbf89fa24",
"PrevHash": "c6cd65717345f017309ee961a6bcda9ba021e0ed5913d8111471ff09fc95590c"
},
{
"From": 698001,
"To": 699000,
"Hash": "4e067e54b9e966b264053c271c7d976065b8a0796d6995b9dda45e11339e0b57",
"PrevHash": "26a6bdcfd3d9f58951eb76ebd4784160e98098564cc31e236618f045cb90f365"
}
]
}
}
net_nodeInfo
Retrieve detailed information about the node and its connected peers.
-
Parameters: None
-
Returns:
NodeInfoid:stringThe node ID.name:stringThe node name.netId:intThe network ID.version:intThe node version. All nodes return0.address:stringThe node address. Not implemented. Currently returns an empty string.peerCount:intThe number of connected peers.peers:Array<PeerInfo>The connected peers.id:stringThe peer ID.name:stringThe peer name.version:intThe peer version. All peers return0.height:intThe current height of the peer.address:stringThe IP address and port of the peer.flag:byteThe connection type.0- Inbound,1- Outbound.superior:booltrueif the peer is an SBP.reliable:booltrueif the peer is reliable.createAt:stringThe time the peer connected.readQueue:intThe current length of the peer's message read queue.writeQueue:intThe current length of the peer's message write queue.peers:Array<string>The list of peer IDs currently connected to the peer.
height:uint64The node height.nodes:intThe size of the node table. Not implemented. Currently returns0.latency:Array<int>An array of four integers representing the current block broadcast delay, the average block broadcast delay over the past hour, the average block broadcast delay over the past 12 hours, and the average block broadcast delay over the past 24 hours, respectively. The unit is milliseconds.broadCheckFailedRatio:float32The ratio of accounts that received more than 100 confirmations within 16 seconds.server:Array<SyncConnectionStatus>Not implemented. Currently returns an empty array.
-
Example:
Example
{
"jsonrpc": "2.0",
"id": 0,
"result": {
"id": "91590a7475ec17834eae6119afe750f11c4e103e2fb78d1986bdd86a8980de43",
"name": "ESP-FullNode.001",
"netId": 1,
"version": 0,
"address": "",
"peerCount": 3,
"peers": [
{
"id": "8d8b0b17411b85e943043759ddca4e641a8cc9f6ae47d4b3f767635358c42e76",
"name": "MIK33",
"version": 0,
"height": 100933254,
"address": "173.212.248.239:56996",
"flag": 0,
"superior": false,
"reliable": true,
"createAt": "2022-08-19 16:07:16",
"readQueue": 0,
"writeQueue": 0,
"peers": [
"836c6ccf6582a9c8d2bc96aa7d2aed8e8e693e4050af0b4f01ad7375d9739aac",
"918a47b9b0958412659723a3459c50e0197dc4239eafa57e540cacd2ab418f96",
"8e1521741c92b2b9c502996d3c7424c6e500e52ed1c065ffa0378b2835a12dc1",
"aa0e28a73212030ce62cf2c2090134ca90fb5e5a37e98513266551462e0dcf25",
"bf14738360ff11517769b3a6f09fc41f81be77f8d8e4494cba9a7a5ddd845929",
"9e41b1a3ff686074515db5fdf7de9515d04adc110b4ceefaa84409dfa5bc759e",
"91590a7475ec17834eae6119afe750f11c4e103e2fb78d1986bdd86a8980de43",
"e3245a342927df824aa72ec392a74ea5312f165700552057c9f40a9ff22f0589",
"9a85aa364ae14c6b9c64180ce1fb97d0debd1b433f5aa734f42d73feeba52b6c"
]
},
{
"id": "9402381bbdc2cbc3280e38dbcbb76cc293f802789e6c4fcb0f339f540ba47548",
"name": "concat0",
"version": 0,
"height": 100933253,
"address": "144.91.84.68:39782",
"flag": 0,
"superior": false,
"reliable": true,
"createAt": "2022-03-01 14:05:47",
"readQueue": 0,
"writeQueue": 0,
"peers": [
"a5df8cab8c6996322553c360f490adca265bdbaccf964425f8137283d7f89272",
"db9ec3aa4c8637c2dadb8f2898e84d91ab29795ae56b2b2b05dd5a8b39d977df",
"9e067c62c8bf64322a039165eb2431a3b5c6405faf5dfe9133d147a6752eac08",
"e2c87c9eb5966f1d7de679bc9d72abdd19557c6ca235b85de38565a4e7cca7e7",
"a15e0067d90ff678052ebe55fbbf89468b1d80e8ffc1b76cd0d6e0285117f70d",
"9c560323d72b643742f120f498791cc7a0d107e55e632d3dc8244f3feba95833",
"89d433317c349235a429966a47b17039708429b3ab06283e6ad43af1312e0ab9",
"91590a7475ec17834eae6119afe750f11c4e103e2fb78d1986bdd86a8980de43",
"d13da3047b319c7da19f96200473a8cd08e43641081d37a93691ff38c13587e2",
"9ffb393ba09f56db9aea74300562360911b64fddfdc463b262dbc37ecad6fb86"
]
},
{
"id": "9508ce5c35989d6df24757f5c14cfe775449fe03fae69da4a96e001aacd4a426",
"name": "nimu",
"version": 0,
"height": 100933253,
"address": "207.180.250.64:51858",
"flag": 0,
"superior": false,
"reliable": true,
"createAt": "2022-08-19 06:46:23",
"readQueue": 0,
"writeQueue": 0,
"peers": [
"91590a7475ec17834eae6119afe750f11c4e103e2fb78d1986bdd86a8980de43",
"8e20a38270d2e19c186d37f113f075bf6cd6b6949ffa9790b4c0281e215de1b2",
"99f746721c7aeacfb3587859e0cdfae1049b7b0875400e58c7d476fefa7155c8",
"9dc1ba02d3592de3f1506a09c4c416b7e6cb4ffae5fc8654432b3efcedf799f7",
"08e69aca38eb71c155234a93a32a7a642f4bb2efebd9837227dcf57892ff1d26",
"0f6c334025afa0db6583f1d86b314ed0778031b9e42a5f6bf834ef4e102feb70",
"96feeb78b2bcd4fd55bc47b4fb49f039e12e3a68a7acac78b909dbace39f0954",
"97266099862560c6cde73e767add04e391e37fc86fe52fdd9372b01ac9e4af38",
"805dcb1cdc2514b4fdecfd9cbfd2291e2bfb17a75fcad46153703db08fdbd341",
"97275bef2b7dcaf023c75fa5b8fea4fb9550d6b74b7a18faa9b4e12caf33df49"
]
}
],
"height": 100933262,
"nodes": 0,
"latency": [
23,
77,
74,
72
],
"broadCheckFailedRatio": 0.027027028,
"server": {
"connections": []
}
}
}
net_nodes
Retrieve all live nodes in the node table.
Note: Live nodes are not necessarily connected nodes. Live nodes are those stored in the node table and reachable via ping.
-
Parameters: None
-
Returns:
Count:intThe number of live nodes.Nodes:Array<Node>id:stringThe node ID.address:stringThe IP address and port of the node.net:intThe network ID.ext:Array<byte>Additional information. Defaults to null.
-
Example:
Example
{
"jsonrpc": "2.0",
"id": 0,
"result": {
"Count": 13,
"Nodes": [
{
"id": "95d52a0b506cd29a8153b4777a9c1d3852a15ae604daeb3376260201661c0259",
"address": "173.249.53.109:8483",
"net": 1,
"ext": null
},
{
"id": "c537033862e4a4178260536bfebfc5898d94dcde0a2c7c894df341c6871974dd",
"address": "144.91.86.89:8483",
"net": 1,
"ext": null
},
{
"id": "e9dcad1603c29de4fb636707d60c76c9f1ff28eb4040d5602576aab78c94db69",
"address": "161.35.129.182:8483",
"net": 1,
"ext": "3MLy0o+z4lmDN4NrF8yK65PFtM9A683ElMU7Y55bXY2w4oNw9O3aGQQ5r+8Bf8E91lFATMrT1DrD4spEmHgRs/GoSCdKX16t8d3TU9oBVgrQW2Hk6QQ4gh2dHBLzb9QC"
},
{
"id": "f738db16fb0b8b15efff3e367c05d49d3993b67b2cd3b8ddd96a6b01cf6a7af7",
"address": "163.47.117.157:8483",
"net": 1,
"ext": null
},
{
"id": "8ff65551f0dbe604f8cf9c18322cd85ddf5bfc0362e1df3e426d3032fd843b94",
"address": "173.249.45.46:8483",
"net": 1,
"ext": null
},
{
"id": "874c9e4f5b34d0c26b7e6ad27bec231948c11157f1dc2977dffed88361280d31",
"address": "95.216.50.183:8483",
"net": 1,
"ext": null
},
{
"id": "9fb855389ddb6fb9b3a3e6ec4f3121e2216354a12203581105889323518ba812",
"address": "161.97.153.45:8483",
"net": 1,
"ext": null
},
{
"id": "993d43801d63433657cb35d4f5c75bdd92a62f646e19ef961a193a558c4ab007",
"address": "173.249.5.87:8483",
"net": 1,
"ext": null
},
{
"id": "9c724d1179c5b6e09733651ff83a61227320bee604d6cd220d67799556b8f19f",
"address": "5.189.150.247:8483",
"net": 1,
"ext": null
},
{
"id": "9d1bfbbdd92e8c520703a4f76da9ce8cc5954dc584eb21663606cfbc78d381bd",
"address": "3.143.25.47:8483",
"net": 1,
"ext": null
},
{
"id": "9e067c62c8bf64322a039165eb2431a3b5c6405faf5dfe9133d147a6752eac08",
"address": "161.97.118.202:8483",
"net": 1,
"ext": null
},
{
"id": "9d0f2f7545c0f997cc752d72c2a1f37bb294bd9293e2ff489c4a31fe646cfaff",
"address": "62.171.182.175:8483",
"net": 1,
"ext": null
},
{
"id": "99c52026f5469c95c85796c4495c5e804ec57fbfc306f09a512d83fdfdb9ab93",
"address": "135.181.51.68:8483",
"net": 1,
"ext": null
}
]
}
}
net_peerCount
Retrieve the number of connected peers.
-
Parameters: None
-
Returns:
intThe number of connected peers.
-
Example: