![5e0510301fc08e1c466d1e2994f0458f.png](https://i-blog.csdnimg.cn/blog_migrate/816688d38bea8f78f88a2a2fbe29aaca.jpeg)
NGK和EOS都选用了相同的21个超级节点来运行网络。那么这里就有一个疑问,为什么一个区块链系统非要21个超级节点来运行呢?
在NGK生态中,超级节点是一种约定俗成的称呼,官方说法其实是:“区块生产者”,是http://NGK.IO网络稳定运行的基础。在NGK系统中,超级节点承担着以下五大职责:
Ø 提供服务器节点,保证节点的正常运行;
Ø 收集网络中的交易;
Ø 验证交易并把交易打包到区块;
Ø 广播区块给其他区块,在通过验证后将区块添加到自己本地区块链上;
Ø 保障并促进区块链项目的发展。
除此之外,超级节点还通过硬件及服务器配置提供了http://NGK.IO网络运行所需要的“算力”。
![19ce284b6c1c0074fc426707c434c6d7.png](https://i-blog.csdnimg.cn/blog_migrate/3f743e37d4052f945ba7f5dd5d7ac037.png)
那么NGK系统为什么选择21个超级节点呢?
首先,21是奇数,这与“多数节点是正义的”设定有着密切的关系。而且,在最长链原则下,只有超级节点数为奇数才能保证最长链只有一条,客观上避免了分叉的产生。
其次,由于http://NGK.IO遵循“不可逆”原则,至少需要2/3的节点进行区块确认。所以,如果超级节点数量比较多就要花费更长的等待时间用于确认;而如果超级节点数量比较少,虽然降低了确认的等待时间,但在系统延迟时容易引发风险。
因此,NGK设定21个超级节点是基于实践后,在去中心化和性能之间找到的平衡点。
当然,NGK是一个社区驱动型项目,超级节点的数量也并非固定不变。如果超级节点的数量不符合项目需求,可以通过社区投票的方式来决定超级节点的数量