测试MainNet的区域乘数

世界地图

团队正在MainNet之前对区域乘法器进行最后测试,以确保它们按预期行事。

两周前,我们宣布了对地理区划的更新,这将为区域乘数的测试提供依据--时机已经到来。利用上周的数据,我们为每个地区计算了新的乘数。

有了这些乘数,我们应该抵消不同区域内运行节点的延迟因素。  

这是一个不完善的系统。像中东这样只有一个节点的地区,读取的结果并不能真正描述其总体表现。其他地区,如北非,根本就没有节点,因此,他们的数值必须是猜测的。

但是,一个更大的挑战是,正确的乘数是一个区域有多少个节点的函数。在设计网络时,我们使一个地区的每个节点都经历了团队中任何节点的最高乘数。这是为了确保永远不会出现节点操作员被激励不参与某一轮的情况。因此,一个特定区域的正确乘数是该区域的节点数量的函数。

这意味着,随着网络的增长和缩小,乘数将需要定期更新。从下面可以看出,乘法器的数学运算是相对有规律的,所以可能会在某个时间点将其整合到链上,并在每个时代自动计算。 

这个解决方案也需要调整乘数的处理方式。最初,一个团队中的所有节点都继承了相同的乘数。这导致了一些非常奇怪的乘数,所以我们正在调整算法,给所有节点提供他们自己的乘数和团队中的最高乘数的平均值。

计算乘数

在计算乘数时,我们从原始数字开始,每个节点在每个时代得到多少分,不包括乘数。我们希望一切都很公平,我们希望每个节点的选手都能被激励与其他每个节点组队。因此,我们的目标是确保全员参与能让你在网络中获得全额 "积分"。

在我们继续之前,有一些定义。

  1. Mᵢ - Bin中所有节点的乘数。 i.
  2. Aᵢ - 调整后的Bin的点值 i.
  3. Pᵢ--至少有一个节点来自bin的概率 i 被包含在一个团队中,而来自任何bin的节点<i 不包括在内。


该计算是由真实的网络数据作为种子。在过去的一周里,我们得到了每个节点在一个时代中的cMix操作的平均积分。然后,这被 "归一化",以产生该仓的调整点值,称为Aᵢ。

这个系统的目标是创造乘法器,使未来的阿斯都是1。

在计算积分时,每个节点的乘数是他们的乘数和团队中最高的乘数的平均值(也是最低的i)。 

因为平均数最低的区域,即0号仓,覆盖了所有其他区域,0号仓的乘数可以计算为:。

我们的目标是确保所有团队中所有节点的乘数和调整数平均也是1的最大值。因为Mₙ是第n个有序仓的乘数,Aₙ是第n个有序仓的归一化平均数。这可以很容易地得到解决。

1号仓的下一个乘数可以计算为1号仓的节点与0号仓的节点被选中的概率(使用M0仓乘数)和1号仓的节点与0号仓的节点没有组队的概率(使用M1组乘数)。

我们可以对Bin 2做同样的计算。

这些方程,对于任何Bin来说,都是可解的,可以用乘数来定义。对于Bin 2,计算乘数的变换是:。

我们可以用任何团队乘数宾n的求和法来概括这一点。

除了递归定义外,概率也很难搞清楚。5个节点组成的团队的每一次选择都包括从网络中的节点总数中随机抽出,没有替换。这种选择是由超几何分布描述的。最常见的是,这种分布被应用于具有二进制特征的计数对象(在我们的例子中是节点)的简单情况(例如,在BFT共识领域:拜占庭/诚实的节点)。然而,在cMix中,我们把节点分成了12个仓,这就把问题变成了一个多维的问题,意味着我们需要计算一个多变量的超几何分布。幸运的是,由于乘数工作的性质,当我们从例如2号仓选择一个节点时,我们并不关心团队中的任何其他节点是否属于乘数更高的仓。这意味着我们需要计算的所有概率都是相似的:我们希望团队中至少有一个节点来自第i仓,而没有任何节点来自所有仓<i。我们在下面的资源中包括了一个电子表格,其中详细说明了如何做到这一点。

误差

这个解决方案有一些误差,因为A值的差异在很大程度上是由影响选择概率的回合时间的变化造成的。我们的模拟所描述的这个解决方案是正确的,在3%之内。未来的工作可以解构点变化的原因,以更好地模拟它们并减少这种误差。

资源。

仓位清单。

 https://docs.google.com/spreadsheets/d/1z9kvEW7XXcHYxUSPpXkoA1Cv9trIbY4VkPzaWzJEN_I/edit#gid=2056956216

调度算法。 https://git.xx.network/xx_network/primitives/-/blob/dev/region/ordering.go

乘数计算。

https://docs.google.com/spreadsheets/d/1d2HcuCVorKDkUppBam-dk-_PJ8ukPp8ja18DyE_VYJQ/edit?usp=sharing

用于模拟的Python脚本,以确认计算结果。

https://git.xx.network/-/snippets/3

热门