大佬教程收集整理的这篇文章主要介绍了特定参与者的历史学家,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
您可以将自v0.20以来的REST
API调用的结果返回给调用的客户端应用程序,因此可以进行如下操作(未经测试,但是您知道了)。注意:您可以直接通过REST直接使用您的参数(或您为自己的业务网络创建的任何端点-
下面的示例是Trade-network
)调用REST API结束(/ GET Trader
),而不是使用“只读”的示例如下所述的事务处理器端点,用于将更大的结果集返回到客户端应用程序。在文档中查看有关此内容的更多信息
使用API的NODE Js ClIEnt:
const BusinessNetworkConnection = require('composer-clIEnt').businessNetworkConnection;
const rp = require('request-promise');
this.bizNetworkConnection = new BusinessNetworkConnection();
this.cardname ='admin@mynet';
this.businessNetworkIDentifIEr = 'mynet';
this.bizNetworkConnection.connect(this.cardName)
.then((result) => {
//you can do ANYTHING HERE eg.
})
.catch((error) => {
throw error;
});
// set up my read only transaction object - find the history of a particular Participant - note it Could equally be an Asset instead !
var obj = {
"$class": "org.example.Trading.MyPartHistory",
"TradEID": "P1"
};
async function callPartHistory() {
var options = {
method: 'POST',
uri: 'http://localhost:3000/API/MyPartHistory',
body: obj,
Json: true
};
let results = await rp(options);
// console.log("Return value from REST API is " + results);
console.log(" ");
console.log(`PARTICIPANT HISTORY for Asset ID: ${results[0].TradEID} is: `);
console.log("=============================================");
for (const part of results) {
console.log(`${part.TradEID} ${part.namE}` );
}
}
// Main
callPartHistory();
//模型文件
@commit@R_772_5279@
@returns(Trader[])
transaction MyPartHistory {
o String TradEID
}
只读交易处理器代码(在“ logic.Js”中):
/**
* Sample read-only transaction
* @param {org.example.Trading.MyPartHistory} tx
* @returns {org.example.Trading.Trader[]} All trxns
* @transaction
*/
async function participantHistory(tX) {
const partID = tx.TradEID;
const nativeSupport = tx.nativeSupport;
// const partRegistry = await getParticipantRegistry('org.example.Trading.Trader')
const nativeKey = getNativeAPI().createCompositeKey('Asset:org.example.Trading.Trader', [partID]);
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) {
console.log("@deBUG val is " + val );
results.push(JsON.parse(val));
}
}
if (res && res.donE) {
try {
iterator.close();
}
catch (err) {
}
}
}
var newArray = [];
for (const item of results) {
newArray.push(getserializer().fromJsON(item));
}
console.log("@deBUG the results to be returned are as follows: ");
return newArray; // returns something to my NodeJs clIEnt (called via REST API)
}
以上是大佬教程为你收集整理的特定参与者的历史学家全部内容,希望文章能够帮你解决特定参与者的历史学家所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。