加入PolkaWorld社区,共建Web3.0!
本文是波卡的联合创始人RobertHabermeier刚刚发布的关于Kusama首批平行链的网络稳定性报告!
在前5次平行链拍卖后,我们监控了Kusama网络的稳定性。目前Kusama网络上有6条平行链。
我们的监控集中在4个关键领域:
出块稳定性批准投票统计网络连接网络加载我们从选择加入的验证人中进行了采样,以通过Prometheus和Grafana两个监测性能的工具来收集信息,如下图所示。
出块稳定性
在理想情况下,协议的当前迭代中,每个平行链为每2个中继链块生成一个块。我们可以通过将平行链上线期间产生的中继链块的数量除以该时间段产生的平行链块的数量来确定每个平行链的出块率。
下表显示了截至最近的区块编号(#)的6个当前平行链的值。
由于所有这些平行链都由相同的验证人集保护并由随机验证人验证,所以验证人向平行链提供的服务应该没有重大差异。
网络噪音的影响此时不值得考虑,因为在过去的几天里,平行链没有足够的时间反复暴露于支持验证人的所有可能组合。但是噪音当然不能解释Shiden与其他平行链之间的巨大差异,这些平行链主要占据理想值的5%到10%之间的范围。值得注意的是,Statemine在推出的前几周经历了一段艰难的时期,这导致它每分钟仅产生一次区块,并且当前的数据因最初的问题而有所偏差。
这种差异有两种可能的解释。真正的原因可能是两者之一或两种都有:
1.繁重的平行链执行或数据
2.收集人与验证人的连接性较差
目前,提供给收集人和验证人产生平行链块的时间窗口非常短,这使得系统脆弱并且在通信中经历短暂的延迟。对于这两个问题,长期的解决方案是改进平行链协议,为下一个平行链区块的创建留出更长的时间。一个短期的解决方案是将收集人的地理位置更靠近大部分验证人节点的位置。然而,这会造成暂时的区域集中风险——长期解决方案可以减轻这种风险。
批准投票
批准投票协议负责提供平行链的大部分安全性。它与GRANDPA的最终性协议紧密集成。粗略地说,节点被随机选择来检查平行链区块的有效性。需要一定数量的节点来完成包含候选者的中继链块,并且宣布他们打算检查但不跟进的“未出现”将被自动替换。关于有效性的争议升级到整个验证人集,导致至少一个验证人被Slash惩罚。
为了对批准投票进行基准测试,我们可以观察到以下几点:
验证人的GRANDPA最终性滞后意见验证人分配的平均“部分”验证人分配和批准的数量最终延迟
上图显示了对数标度,应该落后于中继链最终确定性的区块数量的最大和平均意见。每个验证人都有自己的意见,基于验证人对中继链引用的每个平行链块的批准状态的看法。
大多数情况下,这是在2到5之间。然而,它偶尔会跳到50。这些事件有点令人震惊——50块有一个故障保护,很明显,每隔几周就会被击中一次。
目前正在调查这些最终失速事件。我们将提出治理解决方案,以在Polkadot平行链发布之前解决这个问题。
平均Tranche
每个验证人在技术上都被分配来检查每个平行链块。唯一的问题是什么时候——通常只有第0批验证人被实际征召进行检查,并且只有在第0批验证人未能出现时才会出现后续的一批。
上图表明,除了最终失速事件外,第50和第95个百分位数分配的部分通常为0。
分配和批准
该图展示了验证人在网络上的分配如何转化为相应的批准投票。我们可以看到所有分配都被转换为批准,尽管其中大多数报告为过时。该数据与报告的最终延迟不一致,因为“过时”批准是那些在最终确定后变得无关紧要的批准。
几乎根据定义,大多数批准不应该是陈旧的,因为它们首先是最终确定所必需的。此类别有可能被节点或Grafana误报。在Rococo,相应的图表显示了分配和成功批准的近乎1:1的映射。
网络连接
在Kusama上,有900个验证人,每个session中随机选择200个参与平行链共识。每个当前验证人都旨在连接到当前活跃验证人集中的验证人以及最后6个session。
有许多验证人有大约200个连接,这是因为它们是旧验证人集的一部分。作为当前验证人集的一部分的验证人应该会遇到更高连接性的峰值。我们可以看到,在很大程度上,我们在网络中检查的验证人是过度连接的,并且连接到验证对等集上的其他899个验证人中的大多数。这对正确性没有问题,但确实为提高效率提供了机会。
一些验证人连接不足,并没有像应有的那样插入到传播网络。尽管如此,没有一个验证人的连接数少于100,因此信息应该被验证人传播,尽管要经过更多的跳跃。
某些请求需要点对点通信,因此,所有验证人都必须可以通过已发布的节点地址公开访问。节点软件自动执行此功能,但节点运营商负责确保节点可访问。
该图显示了每秒发出的块请求数,以及不同类型的失败数。这里的请求类型并不重要,关键是“拨号失败”失败几乎正好是请求数量的10%。这表明10%的验证人在其发布的地址上无法访问。
加载(CPU&网络)
此图显示验证人在内核中的CPU使用率。大多数验证人都在1.5-2core利用率范围内。我们目前的建议是让验证人使用4核CPU运行,因此CPU利用率在预期范围内。
此图按任务显示CPU使用情况细分。前3个任务支配CPU使用率,降序是“libp2p-node”、“network-worker”和“grandpa-voter”任务。这些任务主要与网络相关,这表明网络利用率的优化将大大降低节点的CPU利用率。
节点使用的大部分用于传播的流量发生在/polkadot/validation/1网络协议上。这会汇总节点之间的所有信息,并占网络流量的很大一部分。该图显示,总体而言,验证人的平均网络带宽非常稳定的在400-500KB/s之间,“输入”带宽略大于“输出”带宽。
节点使用的大部分请求/响应带宽都在块分布协议中。有200个验证人和1MB的最大PoV大小,块的峰值约为15KB。在这些平均请求/响应速率下,这意味着大约307KB/s的输入和138KB/s的输出带宽。然而,目前PoV非常小,因为平行链还没有接近峰值交易量。
建议
总体来说,网络运行平稳。尽管平均对等点数和网络带宽在整个网络中看起来是一致的,但仍有一些异常节点过度连接并经受了更高级别的网络带宽。
在目前的环境下看,强大的4核CPU和64GB内存以及快速的互联网连接的长期推荐已经绰绰有余。当前的带宽使用似乎在8-16Mbps的范围内,因此一个典型的100Mbps数据中心连接足以维持最后5个。
唯一的主要问题是网络遇到的不常见的区块最终性的停顿。这些停顿被故障保护装置捕获,因此没有造成太大损害,但我们正在调查根本原因,会在Polkadot启动平行链之前提出解决方案。
原文链接:https://polkadot.network/network-stability-report-kusama-with-parachains/
翻译:波卡第一中文社区
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。