风险提示:理性看待区块链,提高风险意识!
如何在NEO共识节点间分配任务
首页 > 币界资讯 > 区块链知识 2019-06-18 23:33:00

任何计算机系统都有监控操作,可能会发送心跳信息、校验和查询及哈希请求等。这些操作在本文中都被统称为任务。在中心化系统中,通常会有一个受认证的节点或节点群组来完成任务。而去中心化系统可以将任务下发给各个节点,从而灵活拓展,因此效率也显然更高,但这也就导致了相应的问题——到底如何在所选节点间分配任务。我们可以通过以下两种方式解决这个问题:

  • 节点随机选择要做的任务

  • 节点使用dBFT之类的共识算法分配任务

本文将探讨第二种方法。

拜占庭容错任务分配

假设有v个任务和n个可随时在系统中工作的节点。每个任务和节点都有一个独一无二的标识符。因此每个节点都可以使用HRW [2]选择任务,使用预先设定的算法来执行任务。任务分配共识实际上确认了所有任务都是在未发生技术故障的前提下完成的。

使用dBFT算法,即使网络[1]中高达1/3的节点做出妥协也可以达成共识。举个例子,若某系统n=v=3:

该系统有3个任务和3个节点,其中有一个节点有欺诈行为。

这些任务统一在各节点中进行分配:如果每个节点承担一个任务,在最坏的情况下会有一个任务可能无法被执行。因此我们使用了冗余来确保所有任务都能被执行。v任务须被n/3+1个节点执行。在此情况下,节点任务池的大小可通过以下公式算出。

在此案例中,P(3,3) = 2

不管哪个节点做出了妥协,所有任务都仍能被正确执行。

图1 不同任务数前提下任务池大小的最大值

图1标明,该公式的值趋向于v/3,意味着在任何情况下各节点任务池中的任务都占所有任务的1/3。在负载增加的情况下系统可能不能正常拓展。

减小任务池大小

若系统的n=3 v=4,任务池大小即为P(3,4) = 2.3 ≈ 3。各节点的任务池大小就可减至2:

因此,各任务被执行的几率就都达到了66%。因此任务池大小可以缩减,只要确保一定的精度就可以了。

出于研究的目的,我们建立了一个模拟模型进行实验,参数为v=1000。我们尝试在不同n的情况下找到能使任务无法执行的可能性小于0.00001的任务池大小。该模型已开源在github[3]。结果如图2所示:

图2 v=1000时的任务池容量实验

上图显示,该模型的实验数据实际上处于任务池容量的最大和最小值的区间里。因此当n增加时,任务池所需容量会减小。任务池容量的最大值与实验值之间的差额可以使用R(x)(位于y1轴上,取0-1之间的任意值)公式求得一个近似值。然后任务池容量就可通过以下公式求得。

深入研究

本文并未考虑网络节点发生故障的可能性,而且所有实验均在最坏假设下进行,做出妥协的节点数也带入了最大值。显然,100个节点中出现33个妥协节点的比例也比3个节点中出现1个妥协节点的几率小。因此可以将“妥协几率”的方程定义为Q(x),而后计算出任务池的大小为P(n,v)⋅R(n)⋅Q(n)。而当妥协节点的数量小于n/3时,R(x)的的行为还需要深入研究。

参考文献

  1. 张铮文,区块链拜占庭容错算法:docs.neo.org/en-us/basic…

  2. 一致性哈希(最高随机权值):
    en.wikipedia.org/wiki/Rendez…

  3. 模拟模型库:github.com/AlexVanin/b…

原文翻译自:medium.com/@neospcc/ta…

作者:Alexey Vanin

上一篇: ABT区块基石是什么币?2019年ABT币最新发展情况
下一篇: 委托拜占庭容错共识机制(dBFT)的技术介绍、挑战和前景
推荐专栏
web3首席知识博主
一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
爱Web 3,爱生活,爱科技,爱炒币的老韭菜
热门币种
更多
币种
价格
24H涨跌幅
BTC比特币
¥265,385.78
37,183.98 USDT
+0.44%
ETH以太坊
¥14,450.05
2,024.64 USDT
+0.17%
USDT泰达币
¥7.20
1.01 USDT
-0.03%
BNB币安币
¥1,632.68
228.76 USDT
+1.48%
XRP瑞波币
¥4.32
0.60570 USDT
+0.51%
USDC
¥7.14
1.00 USDT
+0.03%
SOLSolana
¥400.46
56.11 USDT
+1.29%
OKBOK币
¥399.62
55.99 USDT
-0.01%
ADA艾达币
¥2.69
0.37700 USDT
-0.89%
DOGE狗狗币
¥0.55410
0.07765 USDT
-0.98%
热搜币种
更多
币种
价格
24H涨跌幅
Terra Classic
¥0.00
9.585E-5 USDT
-18.53%
Gala
¥0.00
0.02573 USDT
-4.37%
dYdX
¥22.68
3.2068 USDT
-0.62%
比特股
¥0.05
0.006495 USDT
-3.38%
PancakeSwap
¥15.71
2.2207 USDT
-1.33%
Filecoin
¥31.66
4.4749 USDT
-0.34%
FTX Token
¥29.36
4.15 USDT
+15.67%
Conflux
¥1.09
0.1538 USDT
-2.41%
Yield Guild Games
¥2.57
0.3627 USDT
-0.41%
Shiba Inu
¥0.00
8.17E-6 USDT
-2.27%
比特币
¥263,037.62
37183.98 USDT
+0.44%
比原链
¥0.07
0.01001 USDT
-4.95%
最新快讯
更多
汇款公司Kalyssi旗下钱包已集成AlchemyPay法币出入金解决方案
2023-11-28 19:26:47
PlanB:比特币可能不会再低于3.5万美元
2023-11-28 19:23:01
摩根大通和Apollo计划推出代币化“企业主网”
2023-11-28 19:14:28
汇丰、恒生、渣打、富邦华一四家外资银行入围首批“数字人民币”业务试点名单
2023-11-28 19:06:57
OKX上线MATIC链上赚币产品
2023-11-28 19:06:21
摩根大通和Apollo计划建立代币化“企业主网”
2023-11-28 19:03:57
Nansen2公测版本上线,新增链上数据异动、智能搜索等功能
2023-11-28 18:59:52
下载币界网APP