如何知道fabcar示例中的链?

时间:2018-06-23 03:49:47

标签: hyperledger

例如,我有一个car1首先是manufacturer的所有者,然后将其转移到retailer,然后转移到user

在fabcar示例中,我不知道谁是前所有者,因此可以知道谁是它的当前所有者。

有办法吗?

这是我关注的http://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html示例

1 个答案:

答案 0 :(得分:0)

未在链码中实现。为此,您可以实现一个新方法,该方法返回资产的历史记录。

以下是nodeJS官方文档的链接(您也可以在GoLang中找到它):

https://fabric-shim.github.io/ChaincodeStub.html#getHistoryForKey__anchor

这里有个例子:

async queryValueHistory(stub,args){
  if (args.length != 1) {
    throw new Error('Incorrect number of arguments. Expecting identifier ex: CAR01');
  }

  let carId = args[0];

  let iterator = await stub.getHistoryForKey(carId);

  let allResults = [];
  while (true) {
    let res = await iterator.next();
    if (res.value && res.value.value.toString()) {
      let jsonRes = {};
      console.log(res.value.value.toString('utf8'));

      jsonRes.TxId = res.value.tx_id;
      jsonRes.Timestamp = res.value.timestamp;
      jsonRes.IsDelete = res.value.is_delete.toString();
      try {
        jsonRes.Value = JSON.parse(res.value.value.toString('utf8'));
      } catch (err) {
        console.log(err);
        jsonRes.Value = res.value.value.toString('utf8');
      }
      console.info(jsonRes);
      allResults.push(jsonRes);
    }
    if (res.done) {
      console.log('end of data');
      try{
        await iterator.close();
      }catch(err){
        console.log(err);
      }
      console.info(allResults);
      return Buffer.from(JSON.stringify(allResults));
    }
  }

}