Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hyperledger fabric 历史记录是如何工作的?我想根据资产id保存所有交易的历史记录_Hyperledger Fabric_Hyperledger_Hyperledger Composer - Fatal编程技术网

Hyperledger fabric 历史记录是如何工作的?我想根据资产id保存所有交易的历史记录

Hyperledger fabric 历史记录是如何工作的?我想根据资产id保存所有交易的历史记录,hyperledger-fabric,hyperledger,hyperledger-composer,Hyperledger Fabric,Hyperledger,Hyperledger Composer,历史记录是如何工作的?我想根据资产id保存所有交易的历史记录。如何在hyperldeger fabric中实现这一点?历史记录已经存在。每次资产发生变化时,都会创建一个新的交易,并将其记入分类账,这意味着您已经拥有与一项资产相关的所有变化的历史记录 您可以通过使用composer Playerd来验证这一点,您将看到其行为 区块链系统(如Hyperledger)是不可变的。然而,这并不意味着你不能改变你的资产。这意味着您不能更改已提交的事务。这真的是最大的事情 如果您使用composer res

历史记录是如何工作的?我想根据资产id保存所有交易的历史记录。如何在hyperldeger fabric中实现这一点?

历史记录已经存在。每次资产发生变化时,都会创建一个新的交易,并将其记入分类账,这意味着您已经拥有与一项资产相关的所有变化的历史记录

您可以通过使用composer Playerd来验证这一点,您将看到其行为

区块链系统(如Hyperledger)是不可变的。然而,这并不意味着你不能改变你的资产。这意味着您不能更改已提交的事务。这真的是最大的事情

如果您使用composer rest api创建rest api,您将获得所有资产的端点,并且您将获得历史记录方面的端点。问题是功能还不存在,因此您还不能加载资产的所有状态更改。我相信它有一个开放的票证,但到目前为止,它还不可用。

对于编程方法(“我想获取历史记录”,而不是保存),请参阅此堆栈溢出以获取资产历史记录->(资产历史记录),然后查看事务历史记录,您可以在事务REST API端点上使用环回过滤器,例如,对于
Trade
事务类,类似于:

var options = {
    method: 'GET',
    uri: 'http://localhost:3000/api/Trade?filter='{%22where%22:{%22asset_id%22:%22resource:org.acme.biznet.Commodity#ABC%22}%2C %22include%22:%22resolve%22}'
    json: true
};

let results = await rp(options);
    //console.log("Return value from REST API is " + results);

results.sort(function(a, b) {
  if (a.timestamp > b.timestamp) return 1;
  if (a.timestamp < b.timestamp) return -1;
});

console.log(" ");
console.log(" ");
console.log(`TRANSACTION HISTORY for Asset ID:  ${results[0].commodity.tradingSymbol} is: `);
console.log("================================================== ");
console.log(" ");
for (const asset of results) {

      console.log("Type   Transaction Date          Transaction ID                                                     New Ownership     ");
     console.log("=====================================================================================================================");

     console.log(`${asset.$class.split(".").pop()}  ${asset.timestamp}  ${asset.transactionId}   ${asset.newOwner.tradeId}`);
 }
var选项={
方法:“GET”,
uri:'http://localhost:3000/api/Trade?filter=“{%22where%22:{%22asset_id%22:%22resource:org.acme.biznet.Commodity#ABC%22}%2C%22include%22:%22resolve%22}”
json:true
};
让结果=等待rp(选项);
//log(“RESTAPI返回值为”+结果);
结果.排序(函数(a,b){
如果(a.timestamp>b.timestamp)返回1;
if(a.timestamp