我有一个我在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作曲家不能允许这样的查询。
我可以用来实现我的目标的任何其他解决方案将受到高度赞赏
提前致谢。
也许如果您进行查询以仅返回具有特定资产ID的事务。
就像是:
let q1 = businessNetworkConnection.buildQuery(
'SELECT org.hyperledger.composer.system.HistorianRecord'
+ 'WHERE (transactionId == assetId)'
);
我的坏,但也许是类似的东西
transaction.transactionInvoked.eventsemitted.asset == assetName
也许是作品。