Hyperledger indy validator-info 基本解释

Hyperledger indy validator-info basic explanation

我正在玩 hyperledger indy,它是 validator-info,但我真的找不到括号中的数字(节点别名旁边)是什么意思。

我相信它与主节点有关,但这只是我的假设,而且我从未在 Indy 的文档中看到任何关于该数字的注释。有人可以解释一下节点别名​​旁边的数字是什么,例如。 Node1 (0)Node2 (1) 是什么意思?

Reachable Hosts:   4/4
  Node2 (1)
  Node1 (0)
  Node3 
  Node4 
Unreachable Hosts: 0/4

当我停止 Node2 时,我可以看到 Node2 变得无法访问。符号 (1) 仍然在 Node2 旁边,如下所示。

Reachable Hosts:   3/4
  Node4
  Node1 (0)
  Node3
Unreachable Hosts: 1/4
  Node2 (1)

然而,几分钟后(±5 分钟)Node2 的数字 (1) 消失了。

Reachable Hosts:   3/4
  Node4
  Node3
  Node1 (0)
Unreachable Hosts: 1/4
  Node2 

当我再次启动 Node2 时,它又变得可以访问了,但是 Node2 旁边的号码不在这里。

Reachable Hosts:   4/4
  Node1 (0)
  Node3 
  Node2 
  Node4 
Unreachable Hosts: 0/4

好吧,在调查 git 提交历史和 INDY 的 jira 几个小时后,我发现 INDY-967 ticket.

有人要求增加一些附加功能,以增强验证器信息的实用性。

要求:

Indicate the nodes that are the current primaries. In the verbose human-readable output, this can be indicated by the primary number in parenthesis after the name of the nodes that are primaries, in this fashion:

居然有和我OP类似的评论——为什么号码不见了。这个问题也有答案。

if node is primary for instance and it is disconnected for more than 2-3 min then whole instance is removed. if we do not have instance we cannot have primary for it, so it is expected that unreachable node is not a primary. also it is possible that some instance has no primary during view change

  • 这个号码怎么了?

该实例已断开连接,几分钟后共识决定删除该实例,因此无需将该节点保留为主节点。

  • 这个数字是什么意思?

数字表示主节点。 (0) 是第一个 BFT 协议实例的主节点,(1) 是第二个 BFT 协议实例的第二个主节点——类似于 (0) 的备份,因为它在 RBFT protocol white paper 中定义。

  • 是否有一些延迟或者为什么我需要等待几分钟直到 (1) for Node2 消失。

延迟是与新的备份 BFT 协议实例达成共识之前的一段时间。 1 应该分配给另一个节点。

  • 即使在 20 多分钟后,(1) 仍未分配给任何 Reachable 主机。为什么?

我目前的假设是,在主要 BFT 实例相同之前,共识和 RBFT / Indy-Plenum 的 RBFT 不会 运行 新的 "election" 也就是主要实例的视图更改或 "round-robin" 与 BFT 实例的分配。因此,如果不可用的节点有备份主副本,这无关紧要,也不需要更新 BFT 实例。