今天,许多EOS使用者提到说自己的CPU资源超标了(在有些eos浏览器中,如eosflare,会显示为红色),导致转账操作无法进行。
我们一起来聊一下怎么回事,顺带看下关于EOS资源模型的几个问题。这篇文章中只是根据我个人的有限理解所写的,如果有理解不当的地方,非常期待你的指正。
今天只说CPU,是因为相对而言,目前的Net资源并不稀缺,只需要很小的EOS量就可以得到足够用的带宽资源。
什么是CPU资源"爆红"?
如果你的账号中已用的CPU资源量,超过了分配给你的CPU总量。那么, 在一些EOS浏览器中,如果超出过多的话,会用红颜色来显示,我们称之为CPU爆红。
以EOSFlare为例,而如果超出的量不大,会仍然显示为黄色。
![](https://img.haomeiwen.com/i1084915/da44ad2893298390.png)
这个账号:https://eosflare.io/account/hezdeobug4ge
什么时候会出现这种情况?
当EOS网络中,抵押用于换取CPU资源的EOS数量突然增加的时候,会导致1个EOS所对应的可用CPU资源减少。
比如,你账户之中有1万个EOS抵押用于换取了CPU资源,原先可以有10分钟的CPU计算资源。
你去玩了很久时间的游戏,一看,CPU资源用掉了分钟了,还总共有2分钟可以用。那不着急去增加抵押,继续玩吧。
这时候,突然有DAPP团队抵押了大量的EOS,例如,直接将总抵押量增加了一倍,这就会导致每个EOS可用的CPU资源量减半。
那么,你的1万个EOS所对应的cpu资源,就变成了5分钟。
这种情况下,你已用了8分钟的cpu资源;而因为抵押量暴增导致分配给你的EOS的cpu资源量减半,总额变成了5分钟。
这种情况下,你的CPU超额使用,导致无法再发起交易。这时候,你的可用CPU时间,是负数!
因为,可用时间 = 总配额 - 已用时间
那么,目前的情况下怎么解决呢?
两种方式:
一是增加总配额,即通过抵押更多EOS,来得到更多的cpu用量。按照我们上面的假设,你需要再抵押至少1万个EOS,才能够让总的CPU资源配额,再变成10分钟;
第二种,就是等。因为,CPU资源是线性恢复的,4小时会完全恢复。关于这一点,可以看下我之前写过的一篇介绍文章: EOS的CPU/带宽恢复周期是多久?
除此之外,如果主网的抵押量下降,那么意味着单个EOS所分配的CPU资源增加,也会导致总配额的增加。
如何更好改进: 一起探讨
上面所提到的,只是当前的解决方式,但是,要么,就需要抵押更多的代币;要么,就得等很久。对于EOS使用者而言,体验其实并不好。如何更好的改进?
刚才在 Chintai的项目讨论群里,有朋友提供了非常有意思的一些解决思路。CPU的资源模型,如何进行优化,降低对用户的影响,怎么在面临今天这类情景的时候,让更多的人不必再面临同样的问题。
什么是更好的资源分配制度?我目前还没有想到,也期待更多关注的朋友来一起交流探讨。
对于EOS资源部分的设计,我这几天也重新开始去梳理一下,希望能够有一些体会的时候,跟大家一起交流。
今天写得匆忙,导致在币乎发出来的时候,只先发了前半部分,实在不好意思。
祝大家周末愉快。
![](https://img.haomeiwen.com/i1084915/507e6437401e778d.png)
网友评论