一文读懂WAX账户资源(CPU/NET/RAM)
目前WAX账户系统中主要有三种资源分别为:网络带宽资源(NET)、CPU计算资源(CPU)、运行内存资源(RAM)。
NET原指电脑网络;在WAX系统中,当用户发送一笔交易信息后,区块生产者需要将这笔交易打包生成区块,然后将区块通过网络同步给其他生产者,这个过程需要消耗一定网络带宽资源。(NET是WAX系统中用于同步与传输数据的大小,单位是KB。)
CPU原指电脑的中央处理器;在WAX系统中,当用户发起调用智能合约这个动作时,区块生产者需要根据智能合约地址查找合约代码,然后将代码加载到内存中执行,这个过程需要消耗一定的CPU算力。(CPU是指WAX系统处理操作指令所需的时间,单位是时间,常用ms表示。)
RAM原指电脑内存;在WAX系统中,账号信息、收藏品信息、智能合约执行信息的当前状态都是存储在内存中的,这些信息的储存就需要长期占用内存资源,RAM就是存储账户数据所占用的WAX系统的存储空间。(用于记录,RAM的单位常用的是KB。)
简单来讲,NET带宽资源主要用于传输信息;CPU资源用来计算账户余额的变化;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)。
1.哪些操作会占用CPU资源?
a. 账号最常用的功能:转账操作;
b. 玩生态DApp游戏时;
c. 领糖果、账号竞拍等等操作。
总之,每当你向WAX网络提交交易时都需要占用一定量CPU。因为BP节点们为维护网络,都必须处理该笔交易,CPU则是BP节点们在处理、验证交易时所必须花费的时间,以微秒(μs)为单位。由于每个BP节点运行基础架构设置不同,因此每个BP节点处理交易花费CPU也不一样。每一笔交易都需要用得到CPU资源,那么,如果你的CPU资源不足,自然就无法发起交易。
2.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 小时
手动质押更多代币
3.如何解决?
情况一:账户A因CPU不足已经导致账户“卡死”无法再次进行任何操作
账户A是否需要发起交易 | 操作 | |
耐心等待资源恢复 | 否 | 耐心等待账户资源恢复,CPU和NET资源的恢复周期为24小时。 |
其他账户为账户A质押资源 | 否 | 通过另一个可以正常操作的账户为无法操作的账户质押资源即可。 |
资源租赁 | 否 | 通过第三方资源租赁通道,支付费用购买租赁一定期限的一定数量的CPU资源 比如:XXXXX租赁等 |
注:如果不着急操作账户,建议选择耐心等待资源恢复;如果着急操作账户,建议选择第2.3种方式。(目前WAX链上暂时还没有第三方开发资源租赁功能)
情况二:个人账户A的CPU资源仅能支撑账户操作几次交易,且有WAX余额
账户A是否需要发起交易 | 操作 | |
个人账户进行质押获取CPU资源 | 是(一次) | 通过钱包中资源页抵押账户内WAX为自己质押CPU资源 |
4.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.如何质押/买入WAX账户资源(CPU/NET/RAM)
查看教程:【教程】如何质押/买入账户资源(CPU/NET/RAM)?
b.如何赎回/卖出账户资源(CPU/NET/RAM)占用的WAXP
查看教程:【教程】如何赎回/卖出账户资源(CPU/NET/RAM)占用的WAXP?
小知识:转账WAXP所带MEMO
规定不能超过 256 bytes。以utf-8编码的中文字符占 3 bytes,所以在MEMO
中的中文字符不能超过85个。
本介绍文章用于科普,不代表 橘猫社区 的投资建议。
投资有风险,您须充分认识风险,并自行作出投资决策。
想要了解更多,加入橘猫玩家公会:
Telegram:https://t.me/NFTGamerChina
Discord:https://discord.gg/NU82sXeTNs