【问题标题】:How to activate Substrate GRANDPA finalization?如何激活 Substrate GRANDPA 定稿?
【发布时间】:2020-05-03 08:31:07
【问题描述】:

我想用 Babe/Grandpa 共识启动一个链。我可以在 UI 中使用 Toolbox->RPC->author->insertKey() 开始块生产。但我不知道如何开始区块终结。

我尝试过设置爷爷钥匙,就像我在Toolbox->RPC->author->insertKey() 中坐着宝贝钥匙一样:

  • 密钥类型:gran
  • 苏瑞://Alice
  • publicKey:0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee(我也试过sr25519版本0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d

它没有帮助。

在这里你可以看到块号正确增加,而最终计数器保持为#0:

2020-01-16 15:03:19 Idle (1 peers), best: #101 (0x56ce…7c6a), finalized #0 (0x885c…85d7), ⬇ 0 ⬆ 0
2020-01-16 15:03:21 Imported #102 (0xe984…2776)
2020-01-16 15:03:24 Idle (1 peers), best: #102 (0xe984…2776), finalized #0 (0x885c…85d7), ⬇ 0.1kiB/s ⬆ 10 B/s
2020-01-16 15:03:27 Starting consensus session on top of parent 0xe98487a704c4fb20239df06ba4e8dda9e57c3fa1813b97819c16311c4ac92776
2020-01-16 15:03:29 Idle (1 peers), best: #102 (0xe984…2776), finalized #0 (0x885c…85d7), ⬇ 72 B/s ⬆ 76 B/s
2020-01-16 15:03:31 Imported #103 (0xc3ef…1438)
2020-01-16 15:03:34 Idle (1 peers), best: #103 (0xc3ef…1438), finalized #0 (0x885c…85d7), ⬇ 0.1kiB/s ⬆ 10 B/s

【问题讨论】:

    标签: blockchain parity substrate


    【解决方案1】:

    Start a network with Substrate 有一个很好的教程,它几乎涵盖了您正在寻找的确切主题,除了一个小例外,它使用 Aura 而非 Babe 来进行区块生产。

    如果您想使用知名的 Alice、Bob 等帐户作为验证者,将其密钥放入密钥库的最简单方法是在启动节点时提供 --alice 标志。本教程的step 2 介绍了这种方法。来自substrate --help

    --爱丽丝
    --name Alice --validator 的快捷方式,Alice 的会话密钥已添加到密钥库。

    如果您想使用自己生成的密钥,则必须按照您的描述进行 RPC 调用。此过程在教程中的end of step 4 中进行了介绍。

    可以按照您的尝试通过 RPC 调用插入众所周知的 Alice 密钥。以下是您在尝试此方法时可能尚未最终确定区块的两个原因。

    • GRANDPA 需要 2/3 的验证者进行最终投票才能完成任何事情 (research)。如果您的链规范中有其他验证器,则在您将正确的密钥插入至少 2/3 的验证节点之前,任何事情都不会最终确定。
    • 可能在插入密钥时需要提供完整的dev phrase 而不仅仅是//Alice

    【讨论】:

    • 我使用aurasubstrate-node-template repo 完成了本教程。同样的问题,通过 RPC 调用提交 2 个总共 2 个的爷爷密钥不会开始最终确定,但是,指定 --alice--bob 会。是否可以以某种方式调试此过程?
    • 您确定在每个节点中插入一个密钥吗?当您从 UI 进行 RPC 调用时,您将它们发送到特定节点。如果将两个键都插入单个节点,它将不起作用。所以你必须将 UI 连接到 alice 的节点,插入 alice 的密钥,将 ui 连接到 bob 的节点,插入 bob 的密钥。
    • 我正在执行以下 4 个命令,以启动一个 local_testnet 链模板,其中 //Alice//Bob 作为 2 个验证器。他们是正确的吗? gist.github.com/chebykin/4dbe8f5c43926b8424e87ed0a16ae6a4
    • 我找到了一个临时解决方案。通过 RPC 注入密钥后重新启动节点开始完成。可能是 Substrate 的一个错误。
    猜你喜欢
    • 2020-02-10
    • 1970-01-01
    • 2022-06-10
    • 2011-01-13
    • 2019-07-13
    • 2012-01-27
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    相关资源
    最近更新 更多