问题描述
我已经尝试准备一个网络(每个组织2个组织,每个组织2个对等方),其中使用网关从不同来源提交交易。网关将交易提交到Fabric区块链。可以使用网关执行以下操作。
- 提交值
- 计算平均值
以持续的速度(每秒约100个事务)来提交值。 每分钟之后,将启动来自网关的事务以计算平均值。它检索直到当前时间(由网关提供)的交易,并使用值和先前的平均值准备平均值。
在进行平均计算时,我遇到了一个问题。
该交易无法进行平均计算。
java.lang.IllegalArgumentException: The proposal responses have 2 inconsistent groups with 0 that are invalid. Expected all to be consistent and none to be invalid.
at org.hyperledger.fabric.sdk.Channel.doSendTransaction(Channel.java:5583)
at org.hyperledger.fabric.sdk.Channel.sendTransaction(Channel.java:5542)
at org.hyperledger.fabric.gateway.impl.TransactionImpl.commitTransaction(TransactionImpl.java:150)
at org.hyperledger.fabric.gateway.impl.TransactionImpl.submit(TransactionImpl.java:110)
at org.hyperledger.fabric.gateway.impl.ContractImpl.submitTransaction(ContractImpl.java:50)
我检查后发现,根据区块高度和时间,两个认可同伴不同步。因此,两个对等方在背书期间会检索两个不同的值列表,因为一个对等方同时拥有(假定)5000个块,而另一个对等方同时拥有(假定)5013个块。
As an example
Organization 1 peer : retrieves 800 values
Organization 2 peer : retrieves 813 values
如何确保所有对等端在特定时间同步,或如何确保不同对等端的列表相同。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)