attachToTangle - 计算交易POW
为指定的交易计算POW。
调用参数
- trunkTransaction:主干交易哈希,字符串,必须
- branchTransaction:分支交易哈希,字符串,必须
- minWeightMagnitude:最小重量级,整数,必须
- trytes:交易三进制字符串数组,必须
返回结果
attachToTangle
调用返回包含有效nonce指的三进制交易码流,其最后
243个trytes组成如下:
trunkTransaction + branchTransaction + nonce
调用成功时返回的HTTP状态码为200,示例如下:
{
"trytes": ["OQBOQQOUAWPFCRKELBAS9DHKZ ...", "RGQKNQPXHC9QAVSFDPPFBSKTS ..."],
"duration": 59
}
调用失败时返回的HTTP状态码为400,示例如下:
{
"error": "'command' parameter has not been specified"
}
示例代码
Python
import urllib2
import json
command = {
"command": "attachToTangle",
"trunkTransaction": "VDJJSJVAIQXAUIZOWYLFXVTKFXHNZOGYFRIKBYWD9ZI9NNKYVOLWRJKCXXF9DOXFEGGFWSRVLHVLVADJI",
"branchTransaction": "WXQWVSAJVZLEHQTNFRUBEECZDOJGBRCTUBNDEKDFHKPMTVAQILPTQNG9EEPNEB9PLQZWZAZAKSIJBPG9P",
"minWeightMagnitude": 14,
"trytes": [
"HOHZUBAFSGNYMOOYGPCKANKOR ...",
"IOELDJYWAZBKWBTQZYLPTPLIT ..."
]
}
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": "attachToTangle",
"trunkTransaction": "VDJJSJVAIQXAUIZOWYLFXVTKFXHNZOGYFRIKBYWD9ZI9NNKYVOLWRJKCXXF9DOXFEGGFWSRVLHVLVADJI",
"branchTransaction": "WXQWVSAJVZLEHQTNFRUBEECZDOJGBRCTUBNDEKDFHKPMTVAQILPTQNG9EEPNEB9PLQZWZAZAKSIJBPG9P",
"minWeightMagnitude": 14,
"trytes": [
"HOHZUBAFSGNYMOOYGPCKANKOR ...",
"IOELDJYWAZBKWBTQZYLPTPLIT ..."
]
};
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": "attachToTangle",
"trunkTransaction": "VDJJSJVAIQXAUIZOWYLFXVTKFXHNZOGYFRIKBYWD9ZI9NNKYVOLWRJKCXXF9DOXFEGGFWSRVLHVLVADJI",
"branchTransaction": "WXQWVSAJVZLEHQTNFRUBEECZDOJGBRCTUBNDEKDFHKPMTVAQILPTQNG9EEPNEB9PLQZWZAZAKSIJBPG9P",
"minWeightMagnitude": 14,
"trytes": [
"HOHZUBAFSGNYMOOYGPCKANKOR ...",
"IOELDJYWAZBKWBTQZYLPTPLIT ..."
]
}'