【发布时间】:2018-08-03 11:07:20
【问题描述】:
我正在尝试像链表一样遍历区块链。 我只通过提供的块号从块中找到以前的哈希,如何使用节点 js 获取块的当前哈希,我有兴趣在查看页面上显示。
【问题讨论】:
-
请将您尝试过的代码插入您的问题中
标签: node.js hyperledger-fabric
我正在尝试像链表一样遍历区块链。 我只通过提供的块号从块中找到以前的哈希,如何使用节点 js 获取块的当前哈希,我有兴趣在查看页面上显示。
【问题讨论】:
标签: node.js hyperledger-fabric
node sdk 不提供当前哈希值,但可以使用类似于此的代码从块头计算它。
var sha = require('js-sha256');
var asn = require('asn1.js');
var calculateBlockHash = function(header) {
let headerAsn = asn.define('headerAsn', function() {
this.seq().obj(
this.key('Number').int(),
this.key('PreviousHash').octstr(),
this.key('DataHash').octstr()
);
});
let output = headerAsn.encode({
Number: parseInt(header.number),
PreviousHash: Buffer.from(header.previous_hash, 'hex'),
DataHash: Buffer.from(header.data_hash, 'hex')
}, 'der');
let hash = sha.sha256(output);
return hash;
};
【讨论】: