4

问题

我正在使用自定义帐户和密钥运行具有 2 个本地节点的私有链。

对等发现有效,但区块尚未最终确定。

Idle (1 peers), best: #0 (0xb166…8ad2), finalized #0 (0xb166…8ad2),
Idle (1 peers), best: #0 (0xb166…8ad2), finalized #0 (0xb166…8ad2),
...

描述

chain_spec.rs

  • 从Armstrong、Armstrong//stash、Aldrin、Aldrin//stash种子中创建一组新帐户,方法是在 bin/node 中完成:

    AccountPublic::from(sp_core::Public::Pair::from_string(seed)).into_account()

  • 将初始权限设置为控制帐户ArmstrongAldrin

  • 为初始权限创建SessionKeys

  • BalancesConfig: 为每个账户赋予一些余额。

  • SessionConfig: 使用SessionKeys我刚刚创建的。

  • StakingConfig: 设置stakers为 4-tuple 包含(stash, controlller, amount, StakerStatus::Validator)

这会产生一个构建规范,如:

托盘会话

{
    "keys": [
        [
        "<STASH_ID>",
        {
            "grandpa": "...",
            "babe": "<CONTROLLER_ID>",
            "im_online": "<CONTROLLER_ID>",
            "authority_discovery": "<CONTROLLER_ID>"
        }
        ],
        [
        "<STASH_ID>",
        {
            "grandpa": "...",
            "babe": "<CONTROLLER_ID>",
            "im_online": "<CONTROLLER_ID>",
            "authority_discovery": "<CONTROLLER_ID>"
        }
        ]
    ]
}

托盘放样

"stakers": [
    [
        "<STASH_ID>",
        "<CONTROLLER_ID>",
        <STASH_AMOUNT>,
        "Validator"
    ],
    [
        "<STASH_ID>",
        "<CONTROLLER_ID>",
        <STASH_AMOUNT>,
        "Validator"
    ]
]

Polkadot.js 用户界面

  • Peer 显示在 Explorer -> Node info 中:

在此处输入图像描述

  • 我可以将创建的帐户添加到通讯簿,但它们没有显示在帐户中:

在此处输入图像描述 在此处输入图像描述

  • Stash 帐户在 Stacking 屏幕中显示为验证器,但 Account 操作会显示一条No funds staked yet. Bond funds to validate or nominate a validator消息:

在此处输入图像描述 在此处输入图像描述

4

1 回答 1

1
  1. 检查您是否已将爷爷私钥添加到节点的存储中(author_insertKey 或旋转)。当您启动 alice/bob 链时,私钥已经在存储中
  2. 存在一个问题,即节点在启动时检查私钥是否在存储中(生成爷爷线程),因此如果您插入爷爷私钥,则需要重新启动节点。
于 2021-12-01T14:20:36.900 回答