Hyperledger-Sawtooth:共识如何工作?

时间:2018-10-15 14:41:57

标签: hyperledger hyperledger-sawtooth

通过3个验证器建立锯齿网络,每个验证器都连接到事务处理器。我正在测试共识机制,因此我的TransactionHandler在setState上做了一些预期的混乱。在2个处理器中,我在状态中设置了相同的对象,在另一个处理器中,我设置了不同的值。因此,每笔交易在验证器中的状态都不相同。
在不同的验证器中具有不同的状态是否可以?那么共识在哪里?

1 个答案:

答案 0 :(得分:3)

在我看来,如果发生这种情况,验证器节点不会对等。后一个事务将覆盖状态中的前一个事务。 3个验证者节点必须位于对等网络中。您只能在第一个节点中创建创世块(块0)。该节点将被复制到Sawtooth网络中的所有其他节点。

您可以使用sawnet compare-chains命令验证创世节点在所有节点上都相同(并且所有其他节点都相同)。在链的末尾寻找一组不同的块。

我建议开始使用预先构建的配置与Docker创建一个Sawtooth网络。例如,使用在这里找到的sawtooth-default-poet.yaml文件:  https://sawtooth.hyperledger.org/docs/core/nightly/master/app_developers_guide/creating_sawtooth_network.html 基本上你开始 sawtooth-validator -vvv --peering dynamic --seeds tcp://validator-0:8800 --seeds参数指定初始网络节点,并且网络与其他对等节点动态对等。