我有一个在Hyperledger Composer中创建的资产,我想使用资产ID获取资产的交易历史记录。
similar question中建议的解决方法之一是向每个对资产进行更改的交易发送事件,然后根据发出的事件查询历史记录。
这是我的意思
// transaction that is going to make changes to the asset
transaction ModifyAsset{
o String assetId
}
// event
event ModifyAssetEvent {
o Asset asset
o String assetId
}
// queries the historian record
query searchProductHistory {
description: "search product by serial number"
statement:
SELECT org.hyperledger.composer.system.HistorianRecord
WHERE (eventsEmitted[0].assetId == $assetId)
}
这本来是很理想的,但不幸的是Hyperledger作曲家不能允许这样的查询。
高度赞赏我可以使用的其他解决方案
提前谢谢。
答案 0 :(得分:0)
也许您进行查询以仅返回具有特定资产ID的交易有效。
类似的东西:
let q1 = businessNetworkConnection.buildQuery(
'SELECT org.hyperledger.composer.system.HistorianRecord'
+ 'WHERE (transactionId == assetId)'
);
答案 1 :(得分:0)
我不好,但也许像
transaction.transactionInvoked.eventsemitted.asset == assetName
也许可行。