我们建立了一个结构服务器,并将一些事务放入其中。我们有一些应用程序将与结构服务器配合。这是一个情况。
- 应用程序发送交易
fabric-sdk-java
or fabric-sdk-node
- 面料执行
chaincode
- 结构通知应用程序结果/应用程序侦听交易事件(提交交易、生成区块链、追加区块链、更新世界状态等)
- 应用程序通知海关交易结果。
如您所知,执行chaincode
会花费一些时间。特别是,blockchain
将在数十秒后提交。所以我想要peer
回调aurl
或者只是让应用程序知道执行的结果。有可能吗?
您甚至可以注册到中心并列出正在提交的块/交易的通知。如果您正在寻找示例,请考虑看看fabcar https://github.com/hyperledger/fabric-samples/tree/release/fabcar from 面料样品 https://github.com/hyperledger/fabric-samples。特别是你可能想看看调用.js https://github.com/hyperledger/fabric-samples/blob/release/fabcar/invoke.js.
var options = {
wallet_path: path.join(__dirname, './creds'),
user_id: 'PeerAdmin',
channel_id: 'mychannel',
chaincode_id: 'fabcar',
peer_url: 'grpc://localhost:7051',
event_url: 'grpc://localhost:7053',
orderer_url: 'grpc://localhost:7050'
};
let eh = client.newEventHub();
eh.setPeerAddr(options.event_url);
eh.connect();
let txPromise = new Promise((resolve, reject) => {
let handle = setTimeout(() => {
eh.disconnect();
reject();
}, 30000);
eh.registerTxEvent(transactionID, (tx, code) => {
clearTimeout(handle);
eh.unregisterTxEvent(transactionID);
eh.disconnect();
if (code !== 'VALID') {
console.error(
'The transaction was invalid, code = ' + code);
reject();
} else {
console.log(
'The transaction has been committed on peer ' +
eh._ep._endpoint.addr);
resolve();
}
});
});
eventPromises.push(txPromise);
Java 和 Golang SDK 中也存在类似的 API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)