关于WAX账户资源(CPU/NET/RAM)

1.什么是WAX账户的CPU、NET、RAM资源?

目前WAX账户系统中主要有三种资源分别为:网络带宽资源(NET)、CPU计算资源(CPU)、运行内存资源(RAM)。37183bbe0d55

  • NET原指电脑网络;在WAX系统中,当用户发送一笔交易信息后,区块生产者需要将这笔交易打包生成区块,然后将区块通过网络同步给其他生产者,这个过程需要消耗一定网络带宽资源。(NET是WAX系统中用于同步与传输数据的大小,单位是KB。)
  • CPU原指电脑的中央处理器;在WAX系统中,当用户发起调用智能合约这个动作时,区块生产者需要根据智能合约地址查找合约代码,然后将代码加载到内存中执行,这个过程需要消耗一定的CPU算力。(CPU是指WAX系统处理操作指令所需的时间,单位是时间,常用ms表示。)
  • RAM原指电脑内存;在WAX系统中,账号信息、收藏品信息、智能合约执行信息的当前状态都是存储在内存中的,这些信息的储存就需要长期占用内存资源,RAM就是存储账户数据所占用的WAX系统的存储空间。(用于记录,RAM的单位常用的是KB。

简单来讲,NET带宽资源主要用于传输信息;CPU资源用来计算账户余额的变化;RAM资源则是账户实时状态的记录。

2.WAX账户资源CPU/NET/RAM怎么获得?

在WAX系统中,CPU和NET的使用权采用质押WAXP的方式,根据质押WAXP的数量占全网WAXP质押总量的比例获取对应比例的使用权,一旦你不使用了,就可以赎回你质押的所有WAXP,赎回质押的WAXP需要72小时。

而RAM的分配制度则是采用Bancor算法,WAX 内存买卖采用的是自由市场定价的算法,可分配的内存越少,价格越高。RAM总量有限,但可扩容,并且RAM不可转让,也就是说只能够和系统交易,合约规定RAM买卖WAX主网系统会收取0.5%的手续费。

您还需要明白CPU/NET属于可恢复赎回型资源,而RAM属于消耗性资源。

可以说账户的各种操作都需要占用一定量的CPU和NET,这些资源会在操作的24H后自动恢复,不需要时可赎回资源质押的WAXP,整个过程中WAXP没有损耗,所以属于可恢复赎回型资源。

大量的操作都需要消耗RAM 来存储数据,比如创建一个WAX 账号、创建一个WAX 智能合约、进行WAXP转账等都会会占用RAM,被占用的RAM很难被释放,因此属于消耗型资源。

获取CPU/NET/RAM途径

1、获取CPU/NET资源的方法:通过质押WAXP至eosio.stake系统账户,获得对应的CPU/NET资源。(可以是自己为自己账号质押,也可以通过一个账号为另一个账号质押资源)

2、获取RAM资源的方法:支付WAXP至eosio.ram系统账户购买RAM(其中0.5%的手续费会自动转入eosio.ramfee系统账户中),RAM价格基于Bancor算法,由供求关系决定(可以是自己为自己账号购买RAM,也可以通过一个账号为另一个账号购买资源)。因此可以通过买卖赚取差价(不建议炒RAM)。

3e1120ca9b06

3.关于CPU

1.哪些操作会占用CPU资源?

a. 账号最常用的功能:转账操作;
 
b. 玩生态DApp游戏时;
 
总之,每当你向WAX网络提交交易时都需要占用一定量CPU。因为BP节点们为维护网络,都必须处理该笔交易,CPU则是BP节点们在处理、验证交易时所必须花费的时间,以微秒(μs)为单位。由于每个BP节点运行基础架构设置不同,因此每个BP节点处理交易花费CPU也不一样。每一笔交易都需要用得到CPU资源,那么,如果你的CPU资源不足,自然就无法发起交易。
 

4.CPU为什么会不足?

抵押了一定数量的WAXP,具体可以得到多少的CPU资源,是会根据WAX网络的忙碌程度而变化;如果CPU使用的高峰期,则获得的资源就少,如果是空闲时候,获得的资源就更多。

CPU计算公式:CPU价格 = CPU抵押的WAXP总量 / 虚拟的CPU可用量,单位是 WAXP/ms。

比如:1WAXP/ms 意味着换取1ms的CPU时间,需要抵押1个WAXP。

CPU的价格是不断变化的,是因为 为CPU而抵押的WAXP的总量 和 虚拟的CPU可用量 都是在不断变化。

A.为CPU而抵押的WAX总量 是不断变化的

当WAX网络中,抵押用于换取CPU资源的WAX数量突然增加时,会导致1个WAX所对应的可用CPU资源减少。比如,你用10个WAX抵押换取CPU资源,目前可以有10分钟的CPU计算资源;突然有DAPP团队直接将总抵押量增加了一倍,这时就会导致你质押10个WAX所对应的cpu资源,会减少到原来的一半,也就是5分钟。

B.虚拟的CPU可用量 也是根据WAX网络动态调整的

当WAX网络拥堵时,那么,虚拟的CPU可用量就会降低,导致了CPU成本上升,1个WAX能够换取的可用资源就下降;而网络空闲时,虚拟的CPU可用量就增加,1个WAX能够换取的可用CPU资源,就增加。

【如果你抵押了WAXP获得CPU资源,当你的CPU超额使用 或者 WAX网络繁忙你所分配到的CPU资源变少,不足以发起交易,这时就是CPU资源不足的情况。】

通俗来讲,当新用户注册 WAX 云钱包时,云钱包系统会自动给用户质押 1 WAXP 的 CPU 和 1 WAXP 的 NET 资源(注:目前注册新WAX云钱包账户已经没有系统免费质押),以及购买部分RAM资源。这意味着每次有新的帐户注册时,都会有 WAXP 被质押。随着大量新用户的涌入,整个资源池因质押量的增长而不断被稀释。但事实上,CPU 资源池没有变大,还和之前一样,以蛋糕为例,尺寸是没有变化的,但是每个用户可分的“蛋糕块”变小了。系统自动质押资源支持用户立即开始购买、出售和交易 NFT。账户持有人可以通过 CPU 和 NET 数量百分比了解自己可以进行多少交易。
 
一旦 CPU 和 NET 资源不足导致交易失败时,用户将有两个可用选项:
 
等待系统在第二天重新给用户质押资源 —— 自交易失败时起,待下一次系统自动补充资源需要 24 小时;

手动质押更多代币。

5.如何解决?

情况一:账户A因CPU不足已经导致账户“卡死”无法再次进行任何操作

e9925af5bbf4注:如果不着急操作账户,建议选择耐心等待资源恢复;如果着急操作账户,建议选择第2.3种方式。(目前WAX链上暂时还没有第三方开发资源租赁功能)

情况二:个人账户A的CPU资源仅能支撑账户操作几次交易,且有WAX余额

f81bed2f8868

6.CPU/NET资源如何恢复?

CPU和NET资源的恢复周期为24小时。
 
但并不是24小时后一次性复原,而是逐渐的线性恢复。由于每个用户获得CPU/NET资源的数量也是动态变化的, 所以在资源消耗后,实际上系统的判定并不是将资源恢复,而是逐步减少上一次操作消耗。每过一小时,之前操作的消耗便减少1/24,直到24小时候后,计算消耗为0。
 
在进行操作的时候,只有:新交易的消耗资源量 + 之前交易之后所记录下来的资源使用量 <= 系统分配的资源总量 这笔交易才能进行。
 
将资源恢复的规则这么设计,其实也是为了能更合理的分配资源。毕竟我们每个用户的资源分配量,本身就一直在变。
 
这里有些绕,我举个例子大家就清楚了。
 
假设现在抵押资源的人比较少,我用了1个WAXP,获得了500ms的CPU资源(1WAXP = 500ms)。就在此时,我进行了各种操作花掉了480ms的资源,而在下一秒,突然有大户进行了资源抵押,系统能分配给我的资源一下子从500ms降到了50ms(1WAXP= 50ms)。但我已经消耗了480ms,那我此时应该有-430ms的cpu(没错就是负数)。到了一个小时以后,如果我恢复1/24的资源,就是20ms。这就相当于我之前价格,获得了当下的资源。这么做的话,一定会导致整个网络资源数变大。而这显然是做不到的,所以WAX用减少之前的消耗,代替了恢复。
 
这么做,可以保证系统的总资源量,一直是恒定的。

质押/赎回教程

质押教程:

A.在钱包内质押

3dd8acb00cc2

999a93957bc4

B.在区块浏览器质押

WAX区块浏览器地址:https://wax.bloks.io/

73a7b0ff44ee

赎回教程

d91487ad29d7

小知识:转账WAXP所带MEMO规定不能超过 256 bytes。以utf-8编码的中文字符占 3 bytes,所以在MEMO中的中文字符不能超过85个。

                                                                                                                          ———文章转载自《链视界》

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 共12条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情图片

    请登录后查看评论内容