我正在尝试通过以下两种方式获取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
。 最佳答案
该块没有哈希,因此SDK无法公开它,但是有一种方法可以根据BlockInfo
计算当前块的哈希
这是相关代码:Hex.encodeHexString(SDKUtils.calculateBlockHash(client, returnedBlock.getBlockNumber(), returnedBlock.getPreviousHash(), returnedBlock.getDataHash()))
关于java - 使用hyperledger fabric java sdk获取块信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52045794/