【问题标题】:When Submitting transaction from fabric client application, from which peer SDK will actually submits transaction to the network?当从 Fabric 客户端应用程序提交事务时,哪个对等 SDK 将实际提交事务到网络?
【发布时间】:2023-03-03 11:01:01
【问题描述】:

我正在开发 Hyperledger Fabric Web 应用程序。我仍然对在第一网络上部署链代码的 fabcar nodejs 示例感到困惑(总共 4 个对等点)。在我们运行startFabric.sh 之后,我们可以使用query.js or invoke.js 查询或提交交易。在这样做的同时,我们通过 Fabric 节点 SDK 与网络进行通信。例如,如果我们尝试更改车主,我们只需使用此函数修改invoke.js 并运行node invoke.js,那么它将简单地更改分类帐中的特定车主。我的问题是,我们有 4 个对等点当前安装了我们的链代码,从哪个对等点 SDK 实际将交易提交到网络?如果我们想从另一个对等点提交交易怎么办?我们如何在invoke.js 中定义连接点(交易提交点)?任何澄清?

【问题讨论】:

    标签: hyperledger-fabric hyperledger hyperledger-fabric-ca hyperledger-fabric-sdk-js


    【解决方案1】:

    有两件事需要澄清..

    当您从 SDK 客户端提交交易时,它将转到背书节点进行背书,并返回给客户端,并将背书结果和实际有效负载连接到排序者

    希望你使用fabcar/javascript-low-level

    您可以在以下目标中提及它需要从客户端发送 Tx 的对等方

    注意:这只是为了让客户端了解peer,当你发送它时,它会发送给所有背书的peer。 (由客户端发起请求)

    其实不用管它试试网关服务

        const proposal_request = {
            targets: [peer],
            chaincodeId: 'fabcar',
            fcn: 'createCar',
            args: ['CAR12', 'Honda', 'Accord', 'Black', 'Tom'],
            chainId: 'mychannel',
            txId: tx_id
        };
    

    【讨论】:

    • 感谢您的回复@Narendranath Reddy。所以,你的意思是“交易经过所有背书节点而不是单个节点,然后结果由排序者验证。对吗??我认为,网关将连接到连接配置文件中指定的整个组织并将交易提交给背书人?是我对吗??
    • 是的,orderer 不会验证,因为背书节点在那里验证交易。是的,网关就是为此而生的。
    • 是的。我的意思是在背书节点上执行交易后,响应将被发送给排序者,响应将被验证并将订单放入块中。假设如果我们发送一个更改值的调用,在这种情况下,是背书节点更新账本,因为链码将在这些节点上执行,或者排序节点在验证区块并在网络上排序时更新账本,??
    • 背书节点不会更新账本,因为它将模拟它并将模拟结果发送回客户端,一旦排序者将块发送给提交节点,这些节点就会验证并更新账本和世界状态。注意:背书节点也是提交节点!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多