use*_*878 4 hyperledger hyperledger-fabric hyperledger-composer
我遇到了getNative API,通过它来调用来自Hyperledger作曲家的链码.见这里:https://github.com/hyperledger/composer/issues/3120
有人可以告诉我这究竟是如何工作的?假如我有一个带有getter和setter的非常简单的链代码,我可以从作曲家的JS代码中调用它们
小智 11
要在事务处理器函数中调用Hyperledger Fabric API,必须调用composer
该函数getNativeAPI
.getNativeAPI
允许用户直接调用Fabric shim API
,后者为应用程序开发人员提供API,以实现Hyperledger Fabric后端的"智能合约",也称为Chaincodes
.
下面是getNativeAPI
在composer 中使用的示例示例,该示例调用Hyperledger Fabric API函数getHistoryForKey
以将指定资产的历史记录作为迭代器返回.然后,事务处理器功能将返回的数据存储在数组中.
async function simpleNativeHistoryTransaction (transaction) {
const id = transaction.assetId;
const nativeSupport = transaction.nativeSupport;
const nativeKey = getNativeAPI().createCompositeKey('Asset:systest.transactions.SimpleStringAsset', [id]);
const iterator = await getNativeAPI().getHistoryForKey(nativeKey);
let results = [];
let res = {done : false};
while (!res.done) {
res = await iterator.next();
if (res && res.value && res.value.value) {
let val = res.value.value.toString('utf8');
if (val.length > 0) {
results.push(JSON.parse(val));
}
}
if (res && res.done) {
try {
iterator.close();
}
catch (err) {
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请记住:getState
和putState
Hyperledger Fabric API函数将绕过Hyperledger Composer访问控制规则.
一些资源:
希望这些能帮助你理解.
归档时间: |
|
查看次数: |
824 次 |
最近记录: |