【问题标题】:Hyperledger Fabric - sendTransactionProposal() commits block to the ledger?Hyperledger Fabric - sendTransactionProposal() 将块提交到分类帐?
【发布时间】:2019-08-06 12:53:18
【问题描述】:

我目前正在使用我自己的链码在this 之后调用我的(hyperledger-fabric)网络的链码。发送交易的行是这样的:

Collection<ProposalResponse> responses = channelClient.sendTransactionProposal(request);

它工作正常,每当我调用交易时,账本都会更新。

我的问题是:为什么这段代码会更新分类帐?因为它只包括提案交易?客户端不应该发送包含先前提案响应的交易以更新世界状态/区块链吗? 另一个示例(如预期的那样)最初收集提案响应然后发送事务是this。发送交易的两行是:

Collection<ProposalResponse> responses = channel.sendTransactionProposal(request);

CompletableFuture<TransactionEvent> cf = channel.sendTransaction(responses);

我也使用了这段代码,结果是一样的(成功更新了账本)。

有什么帮助吗?

【问题讨论】:

  • 您的第二个示例绝对是获取提案并将其提交给订购者的正确方法。您给出的第一个示例不会将提案提交给订购者,因此不会向区块链提交任何内容,因此不会更新任何内容。您可以稍后检查对等日志,以查看第一个示例没有提交任何块,但第二个示例应显示对等日志中正在提交的块。
  • 感谢您的回答!

标签: java sdk hyperledger-fabric hyperledger


【解决方案1】:

原来我使用ChannelClient 而不是Channel 来发送TransactionProposal。第一个在提案请求后自行发送交易! (在 sendTransactionProposal(...) 函数内)

【讨论】:

  • 我明白了。 ChannelClient 是他们的示例类之一,不是 java SDK 的一部分。谈论混淆给它相同的方法名称并实际做一些不同的事情。我看到该样本也已存档。指定fabric java sdk 1.0 看起来很老
猜你喜欢
  • 2019-03-13
  • 2019-03-08
  • 2019-01-14
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2019-09-29
  • 2019-09-06
  • 1970-01-01
相关资源
最近更新 更多