使用Hyperledger Fabric Java SDK获取块信息

时间:2018-08-27 19:23:48

标签: java spring-boot hyperledger-fabric hyperledger blockchain

我正尝试通过以下两种方式获取blockinfo。

##One way of getting Blockchain block

BlockchainInfo blockinfo = channel.queryBlockchainInfo(userContext);

currentHash1 = Hex.encodeHexString(blockinfo.getCurrentBlockHash());
Hex.encodeHexString(blockinfo.getPreviousBlockHash())

##Another way of iterating over blockchain block

BlockInfo returnedBlock = channel.queryBlockByNumber(blockinfo.getHeight() - 1);
currentHash2 = Hex.encodeHexString(returnedBlock.getDataHash())

因此,使用这两种获取块信息的方法,但是在这些情况下,如果我必须使用后一种方法遍历区块链,则currentHash并不相同。没有哈希与先前的哈希匹配。

我不确定是否应该是这样,但是当前块previousHash应该匹配上一个块的datahash

1 个答案:

答案 0 :(得分:0)

该块没有哈希,因此SDK无法公开它,但是有一种方法可以根据BlockInfo

计算当前块的哈希

这是相关的代码: Hex.encodeHexString(SDKUtils.calculateBlockHash(client, returnedBlock.getBlockNumber(), returnedBlock.getPreviousHash(), returnedBlock.getDataHash()))