我正尝试通过以下两种方式获取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
。
答案 0 :(得分:0)
该块没有哈希,因此SDK无法公开它,但是有一种方法可以根据BlockInfo
这是相关的代码:
Hex.encodeHexString(SDKUtils.calculateBlockHash(client,
returnedBlock.getBlockNumber(), returnedBlock.getPreviousHash(), returnedBlock.getDataHash()))