区块广播:

为什么我EOS账户会有CPU不够用的情况?

dfuseio船员发布在 dfuse
 1692  1


EOS与别的区块链比的独到之处之一是它资源抵押机制 —— 用户可以通过抵押EOS代币来获得链上的CPU和网络带宽资源使用权。 然而,我们也看到高资源消耗的用户和 dapp 越来越多,抵押资源有时也成了瓶颈。 BP节点们和 Block.one 也都在努力解决这些问题。

在这篇文章中,EOS Canada 将先解释下 CPU 的使用方式,然后会描述当前有关 CPU 的问题、已尝试过的解决方案以及正在筹备中的新解决方案。

CPU 在 EOS 上被用来做什么?


每当你向EOS网络提交交易时,BP节点们都必须处理该交易。 CPU是BP节点在处理、验证交易时必须花费的时间,以微秒(μs)为单位。由于每个BP节点运行基础架构设置不同,因此每个BP节点处理交易花费CPU也不一样。 社区中也出现了尽可能的测量每个BP节点的相对执行速度的工具:BP节点评估基准
通过升级基础架构、改进编译器、优化 WebAsssembly(WASM)虚拟机性能、把签名验证移动到单独的线程以及dapp端代码的优化,我们已经看到了执行时间惊人的减少。

每个EOS能给我多少CPU?

在EOS中,每个区块之间间隔500毫秒。 为了帮助确保BP节点们有足够的时间在世界各地发放区块,每的区块的处理时间限制为200毫秒,BP节点必须在这200毫秒内将生产出来的区块进行验证然后发布到网络上。 这就剩下了300毫秒在网络上发布区块的时间。
在那200毫秒的上限内还有一个百分比阈值会启动限速。 在达到此阈值之前,所有用户都可以在网络上自由进行交易,甚至可以使用超过其抵押数量的CPU,因为它不处于 “拥堵模式”。一旦超过此阈值,用户就会被限制回到根据抵押的EOS,按比例分配的CPU。您可以使用 EOS Titan 的工具来实时观察 CPU/EOS 的分配率。
简单的说,如果整个EOS网上有1000个代币被抵押在CPU上,而我的账户抵押了20个,那么我保证会拥有CPU总容量的2%的使用权。 如果网络没有被大量使用并且没有达到激活限速阈值,我的CPU用量能超过总量的2%,一旦网络繁忙,达到了该阈值,我就最多只能用到我的2%。

为什么我的总CPU时间会有波动?


当你看你在一个区块浏览器查看你拥有的CPU时间时,你会看到你已用的CPU和CPU总量。如果你在链处于 “拥堵模式” 期间刷新页面,你的CPU时间总量可能会出现巨大的差异。
举一个例子,下面是 eosq 上显示的同一帐户的CPU,其中一个显示的可用资源几乎是另一个的两倍,尽管这两个截图相隔不到一分钟。

此外,由于你的CPU总量可能会根据网络使用情况发生变化,因此你可能会在网络拥挤时看到你的的帐户显示已超过了100%的使用率。

我是否必须继续购买CPU?

由于CPU是一种瞬态资源,你的帐户会在24小时收回任何消耗了的CPU。用户也可以随时赎回他们抵押在CPU上的代币。 因此,虽然在谈论资源时会使用“消耗”这个词,但实际上并没有失去任何代币。
用户还可以将CPU委托给其他帐户。 社区中有服务提供少量的免费CPU,也有一些提供更大数量的收费服务。 想要了解这些服务大家可以查看 CPUEmergencyBank of Staked、 和 Chintai,看看哪个更适合你。

我需要多少CPU?

并不是只有你一个人不确定你需要多少CPU来与EOS区块链进行交互。由于参数和基础设施的不断变化,不同的 dapp 要求不同,因此没有任何明确的指导方针。 EOS New York 推出了一个叫 EOS Charge 的网站,可以估算出你的帐户能够执行常规操作的次数。显示的数量将始终会有变化,因此应仅将其作为指南。
只有在将交易推送到链上后,区块浏览器中显示的已使用CPU量才会更新。如果24小时后它仍你的CPU用量是最大值,不要担心,继续进行交易,它会更新的。
  • 正序
  • 最新
只看帖主楼层直达
登录 账号发表你的看法,还没有账号?立即免费 注册
帖子数 69 获赞数 1
dfuse 是区块链 API, 通过组织全球的去中心化数据,帮助开发人员构建高性能的应用程序。 登陆官网 dfuse.io 获取免费 API Key。 进开发者微信群请加管理员:EOS_Canada
推荐节点
热帖榜
热门跟帖