【发布时间】:2021-12-15 00:44:52
【问题描述】:
我正在使用 SDK Node v2.2 研究 Hyperledger Fabric v2.2,遇到了一个问题,我不知道如何在将“数据哈希”提交到分类帐之前计算它,我需要它在客户端之间进行验证数据和分类帐数据。
我的提交交易链码函数:
file: chaincode.js
...
async addNewDataToLedger(ctx, dataId, data){
return await ctx.stub.putState(dataId, Buffer.from(data));
}
然后在我的应用程序中,我有一个 JSON 数据,例如
const dataSample = {a : 1, b : 2};
const transaction = contract.createTransaction('addNewDataToLedger');
const result = await transaction.submit('number1', JSON.stringify(dataSample));
提交到账本后。我将收到一个“数据哈希”,例如e2c07a0541f0b90ef0cea2174365719abeda50fd024468f9d7639b76cb1878fb
我猜它散列了我的Buffer.from(data) 和一些秘密,因为我意识到,即使输入数据相同,“数据散列”总是不同的。
如果data_hash被data: {...}部分加密,如下块,那么如何验证客户端的数据与账本中的数据是否匹配?
{
header: {
number: {},
previous_hash: "e4617a6446d30628b723206d3f0a0e61308e08dc5eef502bb4c87d228c1c4d10",
data_hash: "38afae3941a400149c8508f7d8e4a26bf938cf60dd3a6f4be602ec829f7115fd"
},
data: { //IS 'data_hash' HASHED THIS SECTION OBJECT?
data: [...]
},
metadata: {
metadata: [...]
}
}
我到处搜索但找不到“数据哈希”是由什么编码的,以及如何验证数据完整性,希望您能帮助我,非常感谢!
【问题讨论】:
标签: hyperledger-fabric sha256 hyperledger-fabric-sdk-js