星球日报
搜索
手机客户端
iPhone · Android
微信公众号
微信公众号

iPhone · Android

微信公众号

解决CPU的终极出路

2019-01-06

从长远看,大规模 CPU 租赁市场的崛起是解决 CPU 资源分配的基础

本文来自:EOSMeetOne(ID:EOSMeetOne),作者:MEET.ONE,星球日报经授权转发。

解决CPU的终极出路

类似于 ETH 每笔交易都需要手续费,CPU 是 EOS 主网上令开发者和用户都头疼的一项资源,更痛苦的是 EOS 的 CPU 经常爆了,转账无力....

今天小编将系统的谈谈如何解决 CPU 资源问题,内容比较专业,先看结论:

1. 用户不需要给自己的 EOS 账户质押 CPU, 闲散的 EOS 都应该租出去,等需要时直接从自由市场租赁;

2. 未来,用户使用 CPU 的成本应该由 dApp 支付,dApp 支付的市场前提是 CPU 已具备完善的定价机制,因此必须具备若干个大规模的 CPU 租赁服务平台;

3. 从资源利用的角度,EOS 应该缩短解除质押的 3 天赎回期。

下面的分析主要参考了 MEET.ONE 实验室早前发布的《EOSIO CPU 资源分配原理分析》,内容有难度,但如果你看懂了,不仅会感慨 BM 不可否认的天才性,也会对 CPU 资源形成更深的理解。毕竟行情不好的时候,多看看书,苦练内功。

你的 1 个 EOS, 究竟可以分配到多少 CPU?

我要抵押多少个 EOS 才够用?

最近都没有用过,怎么 CPU 就爆了呢?

我都抵押了 100 个 EOS, 怎么没用几次就爆了?

这些都是新手用户最常问的问题,通常我们会告诉用户,你的 CPU 资源分配数是实时波动的,网络繁忙的时候 CPU 常常不够用,如果等恢复的话需要 24 小时,急的话可以从 cpubaole.com 付费租, 那么究竟 CPU 怎么分配的呢?

看公式 1, 我如果抵押 1 个 EOS,24 小时所获得的 CPU 资源是实时变动的,因为全网总抵押的 EOS 数是实时变动的。

解决CPU的终极出路公式 2 则计算了 24 小时可分配 CPU 这个数值,它只受 max_block_cpu_usage 影响,只要这个数字短期内系统不调整,那么 24 小时可分配 CPU 这个数值就不会变动。

解决CPU的终极出路

EOS Charge统计当前热门操作所需消耗的CPU

因此,如果主网总抵押了 4.98 亿 EOS,则抵押 1 个 EOS 每天可获得 69.40μs 的 CPU,而每进行一次 EOS 转账就需要约 1008μs(据 EOS Charge 数据),也就是说质押 100 个 EOS 只够转 6 笔账,如果真是这样,那么 EOS 真要凉凉,但好在天才的 BM 又为 EOS 设计了 “空闲” 和“拥堵”两种模式。

空闲模式下,CPU 资源可放大 1000 倍

现实生活中,通过峰谷电、阶梯价等手段有效实现了电力资源的错时分配和供给。而 BM 也设计了类似的机制,即空闲模式下分配到的 CPU 比拥堵模式下扩大 1000 倍(考虑到抵押 EOS 的用户不是每时每刻用 CPU, 所以空闲时你可以 “借用” 别人的 CPU),而在系统 “拥堵” 时,按照原先计算的质押比例去使用。

那它是怎么定义 “拥堵” 的呢?

当过去一分钟每个块的平均 CPU 使用量大于 max_block_cpu_usage * target_block_cpu_usage_pct 则进入 “拥堵” 模式。

前段时间,大家看到 MEET.ONE 快讯经常报道关于节点投票对 target_block_cpu_usage_pct 参数进行调整的新闻。现在就懂了,调整这个参数就是为了调高 “拥堵” 的临界值,使得 “拥堵” 状态更难触碰。从 10% 调到 20%,再调到 30%。 但是后来发现如果一旦调到 30% ,会出现丢块等问题,出现丢块的原因是多方面的,比如节点的配置跟不上,因此又把这个参数调到了 25%。

CPU 分配的 “涨跌停板” 保护机制

既然拥堵和空闲模式下,分配到的可用 CPU 有 1000 倍的差距,那么 EOS 主网的 CPU 为什么没有出现剧烈的直上直下走势呢?

解决CPU的终极出路

EOS Titan 统计过去1小时内每一个EOS可获得的CPU

答案是 EOS 系统设置了类似股票中的涨跌停板的保护机制。全网拥堵时,可用资源的变化缓慢生效,具体是:可用量每分钟乘以 0.99,如果 CPU 使用量一直没有降下来,直到触底需要大约 687 分钟 (log(0.001) / log(0.99)),从绝对拥堵完全恢复则更慢,是 log(1000) / log(1000/999) = 6904 分钟。

当然这个变化过程是可能随便改变方向的,类似多头和空头拉锯。比如使用量下降到阈值以下,可用量又会开始上升。

CPU 为什么老是爆?

充分剖析了 CPU 的分配和运行机制,现在我们可以深度思考 EOS 的 CPU 老是爆的问题。

EOS 的 CPU 鼓励错峰使用,忙的时候使用 CPU 等于下雨天打车,出价高的人可以打到车,但只要打车的人稍微多了就触发下雨,只要下雨,打车的人就更多了。

解决CPU的终极出路

这似乎是一个死循环,该怎么解决呢?

普通用户不需要给自己抵押 CPU,dApp 应该为用户买单

其实,当大家在抱怨 CPU 总是爆了,EOS 辣鸡的时候,完全可以从生活的角度考虑问题,CPU 本身是一种云计算资源,它和水、电等生活物资一样,但为什么在主网只有 60 多万用户的时候,我们就得面临 CPU 经常爆了的情况?或者说,普通用户压根就不应该去面对 CPU 爆了的问题。

如同我们在现实生活中,根本就不需要知道电厂如何发电,因为用户不需要同时承担生产电力和使用电力两个角色。往深处说,落后的小电力厂、落后的电力产能也会逐渐被市场淘汰掉,还有通过国家电力局统一的峰谷电定价等调控措施,最终实现了电力资源的有效分配,让普通用户用得起,用得够。

类比到 CPU 资源也是一样的。普通用户自己给自己抵押,就是产生了大量 “游离” 的、小规模的 CPU, 这些 CPU 平时闲着不用,就是无效产能,非常浪费!合理的做法是什么?把 EOS 租给大平台,让大平台去集中调度,这样 CPU 要么以 “经济实惠” 的价格租给 dApp 开发者,要么在你需要的时候按需租赁。

目前 CPU 租赁规模比较大的有 Chintai 平台,MEET.ONE 的付费租赁 cpubaole.com ,还有即将闪亮登场的 REX(Block.one 开发)等等,这些租赁平台生产 “有效” 的 CPU,租赁价格渐渐趋于一致,构成完整的市场定价机制。

EOS 应缩短原 3 天质押赎回期

前面的 CPU 分配公式中,小编一直在强调一个概念叫做 24 小时可获得的 CPU 和 24 小时可分配 CPU,这个细节很重要。BM 在设计这个循环单位的时候,应该是经过慎重考虑的。

1. 质押一次 EOS,获得的是 24 小时的 CPU,为什么不是每秒、每分,也不是每月,每年?

如果是每分、每秒,每几个小时,按前面的公式,将导致质押同样的 EOS,分配到的可用 CPU 更少了,更快进入爆了的状态,尽管此时等待 CPU 恢复的时间是短了,但对于用户而言其实更加不友好。因为一般我们倾向于一个时间段内集中使用 EOS 网络。如果是一个星期,一个月,一年,虽然你分配的 CPU 多了,用的时候一时爽,用完等半年....

解决CPU的终极出路

小编的试验账户在今天下午2点和傍晚7点的CPU可用情况

因此,人以一天为一个作息单位,EOS 也一样,充分考虑了用户习惯,一次性获得一天的 CPU 使用量,想用就用,用完恢复再等一天。

2. 由于用户获得的是 24 小时的 CPU, 所以恢复时间也设置成 24 小时,从 CPU 的分配和恢复上讲,这个模型是比较合适的,但由于获得 CPU 的前提是质押 EOS, 而一旦质押 EOS,要解除 EOS 质押的状态却要等三天,这个时间我们认为是非常不合理的。理由如下:

a. 等待恢复状态的这部分 EOS,不能继续抵押获得 CPU,也不能交易,什么都不能做,这是一种资源浪费;

b. 由于解除质押将导致 3 天不能用,从行为心理上看,普通用户倾向于如果质押了就放着懒得动,而大户则通过质押获得安全性上的保障(质押时不能转账,账户被盗了有 3 天时间向 ECAF 求救)。事实上,站在资源利用的角度,如果你放着半天不用是合理的,但是十天八天半个月都不用,就是大大的浪费!过去 EOS 主网刚启动,为了达到 1 亿(10%)的激活启动花了不少时间,但是如今质押的雪球越滚越大,有近 5 亿 EOS 质押了。从前面的公式可以估算出,同样质押 1 个 EOS,过去 1 个亿的时候,实际可以获得 300μs 的 CPU, 现在只能获得 60μs 多。

解决CPU的终极出路

EOS Flare 显示当前主网EOS质押情况

c. 不少操作过赎回的用户都知道,我今天赎回一个 EOS,如果明天再赎回 1 个 EOS, 那么这两个 EOS 都要再等 3 天才能赎回,我们站在 CPU 租赁服务平台的角度去思考,如果质押赎回时间缩短的话,进入租赁市场的 EOS 将获得更好的流动性,有利于 CPU 使用单价下降,提高 EOS 主网的可用性。

这就是结论 3:从资源利用的角度,EOS 应该缩短解除质押的 3 天赎回时间。

小编总结:

60 万用户只是 EOS 的一个小小开始,从长远看,大规模 CPU 租赁市场的崛起是解决 CPU 资源分配的基础。只有解决了 CPU 经常爆的问题,让更多用户用得更舒服, 更多的 dApp 才能发展起来,而繁荣的生态推动 EOS 价格的上涨,也将促使节点更主动地进行技术升级,整个生态才能实现正向的生长。

本文来自投稿,不代表Odaily立场。如若转载请注明出处。

参与讨论

登录后参与讨论

星球君的朋友们

特邀作者

星球君的朋友们

优质区块链文章转载

总文章数: 816


分享至

微信扫一扫分享

0
金融区块链