gpt4 book ai didi

hyperledger-fabric - 如何在 Hyperledger Fabric 中监听事件(提交事件)?

转载 作者:行者123 更新时间:2023-12-01 08:11:21 25 4
gpt4 key购买 nike

我们设置了一个结构服务器,并将一些事务放入其中。我们有一些应用程序将与结构服务器合作。这是一种情况。

  • 应用程序使用 fabric-sdk-java 发送交易或 fabric-sdk-node
  • Fabric 执行chaincode
  • 结构将结果通知应用程序/应用程序监听交易事件(提交交易、生成区块链、附加区块链、更新世界状态等)
  • 应用程序将交易结果通知海关。

  • 如您所知, chaincode 的执行会花费一些时间。特别是, blockchain将在几十秒后提交。所以我想要 peer回调一个 url或者只是让应用程序知道执行的结果。有可能吗?

    最佳答案

    您可以注册到偶数中心并列出正在提交的块/事务的通知。如果您正在寻找示例,请考虑查看 fabcar来自 fabric-samples .特别是你可能想看看 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。

    关于hyperledger-fabric - 如何在 Hyperledger Fabric 中监听事件(提交事件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46462151/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com