checkConsistency - 检查交易一致性
使用checkConsistency
调用检查交易的一致性。一致性交易应当满足以下条件:
- 节点没有丢失交易的分支或主干交易
- 交易包(bundle)有效
- 交易的分支和主干交易有效
调用参数
- tails:要检查的交易哈希数组,必须
返回结果
checkConsistency
调用返回一个JSON对象,结构如下:
- state:所检查的交易是否都满足一致性要求。布尔值。true表示所有的 交易都满足一致性要求,false表示至少有一个交易不满足一致性要求。
- info:如果state字段的值为false,则info字段给出描述信息
- duration:请求执行用时,单位:毫秒
调用成功时HTTP状态码为200,响应示例如下:
{
"state":true,
"info":"",
"duration":982
}
调用失败时HTTP状态码为400,响应示例如下:
{
"error": "'command' parameter has not been specified"
}
示例代码
Python
import urllib2
import json
command = {
"command": "checkConsistency",
"tails": [
"SHHXOGUUYSCCFVMCZYCNBJIMGEEIBEPCCEUXKXF9ROYQNJFFGEHOOHDLNDN9XAWXYBVYYARTPRAFFOJN9",
"QMMDUXSUOSITO9JVPCJWHIQRVDBPKKZGTSYOKLUNMSM9WIXLLJLFEMKUPEO9MOFDYRDC9GMRRETRGAWJD"
]
}
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": "checkConsistency",
"tails": [
"SHHXOGUUYSCCFVMCZYCNBJIMGEEIBEPCCEUXKXF9ROYQNJFFGEHOOHDLNDN9XAWXYBVYYARTPRAFFOJN9",
"QMMDUXSUOSITO9JVPCJWHIQRVDBPKKZGTSYOKLUNMSM9WIXLLJLFEMKUPEO9MOFDYRDC9GMRRETRGAWJD"
]
};
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": "checkConsistency",
"tails": [
"SHHXOGUUYSCCFVMCZYCNBJIMGEEIBEPCCEUXKXF9ROYQNJFFGEHOOHDLNDN9XAWXYBVYYARTPRAFFOJN9",
"QMMDUXSUOSITO9JVPCJWHIQRVDBPKKZGTSYOKLUNMSM9WIXLLJLFEMKUPEO9MOFDYRDC9GMRRETRGAWJD"
]
}'