IOTA API手册

getNodeInfo - 获取节点信息

使用getNodeInfo调用获取指定节点的信息。

调用参数

返回结果

getNodeInfo调用返回一个JSON对象,结构如下:

  • appName:IRI网络名称
  • appVersion:IRI版本
  • jreAvailableProcessors:节点CPU数量
  • jreFreeMemory:节点的java虚拟机空闲内存
  • jreMaxMemory:节点的java虚拟机最大内存
  • jreTotalMemory:节点的java虚拟机内存总量
  • jreVersion:节点的java运行时版本
  • latestMilestone:最近的里程碑
  • latestMilestoneIndex:最近的里程碑索引
  • latestSolidSubtangleMilestone:最近的solid里程碑
  • latestSolidSubtangleMilestoneIndex:最近的solid里程碑索引
  • milestoneStartIndex:当前版本的IRI的起始里程碑
  • lastSnapshottedMilestoneIndex:触发节点的本地快照的最近里程碑的索引
  • neighbors:已连接的邻居节点的数量
  • packetsQueueSize:包队列大小
  • time:当前的unix时间戳
  • tips:网络中的tips数量
  • transactionsToRequest:节点账本中缺失的交易数量
  • features:已启用的配置
  • coordinatorAddress:协调器地址
  • duration:请求执行用时,单位:毫秒

调用成功的HTTP状态码为200,响应示例如下:

{
 "appName": "IRI",
 "appVersion": "1.7.0-RELEASE",
 "jreAvailableProcessors": 8,
 "jreFreeMemory": 2115085674,
 "jreVersion": "1.8.0_191",
 "jreMaxMemory": 20997734400,
 "jreTotalMemory": 4860129502,
 "latestMilestone": "CUOENIPTRCNECMVOXSWKOONGZJICAPH9FIG9F9KYXF9VYXFUKTNDCCLLWRZNUHZIGLJZFWPOVCIZA9999",
 "latestMilestoneIndex": 1050373,
 "latestSolidSubtangleMilestone": "CUOENIPTRCNECMVOXSWKOONGZJICAPH9FIG9F9KYXF9VYXFUKTNDCCLLWRZNUHZIGLJZFWPOVCIZA9999",
 "latestSolidSubtangleMilestoneIndex": 1050373,
 "milestoneStartIndex": 1050101,
 "lastSnapshottedMilestoneIndex": 1039138,
 "neighbors": 7,
 "packetsQueueSize": 0,
 "time": 1554970558971,
 "tips": 9018,
 "transactionsToRequest": 0,
 "features": [
  "snapshotPruning",
  "dnsRefresher",
  "tipSolidification"
 ],
 "coordinatorAddress": "EQSAUZXULTTYZCLNJNTXQTQHOMOFZERHTCGTXOLTVAHKSA9OGAZDEKECURBRIXIJWNPFCQIOVFVVXJVD9",
 "duration": 0
}

调用失败的HTTP状态码为400,响应示例如下:

{
  "error": "'command' parameter has not been specified"
}

示例代码

Python

import urllib2
import json

command = {"command": "getNodeInfo"}

stringified = json.dumps(command)

headers = {
    'content-type': 'application/json',
    'X-IOTA-API-Version': '1'
}

request = urllib2.Request(url="http://localhost:14265", data=stringified, headers=headers)
returnData = urllib2.urlopen(request).read()

jsonData = json.loads(returnData)

print jsonData

Node.js

var request = require('request');

var command = {"command": "getNodeInfo"}

var options = {
  url: 'http://localhost:14265',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
        'X-IOTA-API-Version': '1',
    'Content-Length': Buffer.byteLength(JSON.stringify(command))
  },
  json: command
};

request(options, function (error, response, data) {
  if (!error && response.statusCode == 200) {
    console.log(data);
  }
});

命令行

curl http://localhost:14265 \
-X POST \
-H 'Content-Type: application/json' \
-H 'X-IOTA-API-Version: 1' \
-d '{"command": "getNodeInfo"}'