Hyperledger fabric 历史记录是如何工作的?我想根据资产id保存所有交易的历史记录
历史记录是如何工作的?我想根据资产id保存所有交易的历史记录。如何在hyperldeger fabric中实现这一点?历史记录已经存在。每次资产发生变化时,都会创建一个新的交易,并将其记入分类账,这意味着您已经拥有与一项资产相关的所有变化的历史记录 您可以通过使用composer Playerd来验证这一点,您将看到其行为 区块链系统(如Hyperledger)是不可变的。然而,这并不意味着你不能改变你的资产。这意味着您不能更改已提交的事务。这真的是最大的事情 如果您使用composer rest api创建rest api,您将获得所有资产的端点,并且您将获得历史记录方面的端点。问题是功能还不存在,因此您还不能加载资产的所有状态更改。我相信它有一个开放的票证,但到目前为止,它还不可用。对于编程方法(“我想获取历史记录”,而不是保存),请参阅此堆栈溢出以获取资产历史记录->(资产历史记录),然后查看事务历史记录,您可以在事务REST API端点上使用环回过滤器,例如,对于Hyperledger fabric 历史记录是如何工作的?我想根据资产id保存所有交易的历史记录,hyperledger-fabric,hyperledger,hyperledger-composer,Hyperledger Fabric,Hyperledger,Hyperledger Composer,历史记录是如何工作的?我想根据资产id保存所有交易的历史记录。如何在hyperldeger fabric中实现这一点?历史记录已经存在。每次资产发生变化时,都会创建一个新的交易,并将其记入分类账,这意味着您已经拥有与一项资产相关的所有变化的历史记录 您可以通过使用composer Playerd来验证这一点,您将看到其行为 区块链系统(如Hyperledger)是不可变的。然而,这并不意味着你不能改变你的资产。这意味着您不能更改已提交的事务。这真的是最大的事情 如果您使用composer res
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