所有的区块链网络都会使用一种共识算法来确保下一个写入账本中的区块是正确的。Hyperledger Indy 使用的是称为 Plenum 的共识算法,它实现了拜占庭容错 Byzantine Fault Tolerance (BFT) 算法。BFT 算法能够实现即使有部分节点不可用或者有问题的情况下还能够得到正确的结果。
虽然说验证节点越多越安全,但是节点的增多会影响达成共识的效率,经过测试发现,25个节点(能够支持8个无效节点)具有最好的效率来支持大约每秒100次的 transactions。
Indy 网络中的 Stewards 节点可以分别负责两部分的工作:
- 验证节点,validators nodes:参与 Plenum 共识算法,向账本中写入数据。
- 观察者节点,observer nodes:追踪区块链的增长,提供数据读取服务,并且如果需要可以随时成为验证节点。