# 详解WAX账户资源（CPU/NET/RAM）

## 一、什么是WAX账户的CPU、NET、RAM资源？

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

![](https://2773763647-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Mk_rQKc4S9XtN6LE-I7%2F-Mkexq6lo-zWchjOdPEN%2F-MkezMqAcwuIrvpuo5lp%2F1.jpg?alt=media\&token=cd2f995d-c4c0-4cab-8710-6bfc6e11a16c)

**NET**原指电脑网络；在WAX系统中，当用户发送一笔交易信息后，区块生产者需要将这笔交易打包生成区块，然后将区块通过网络同步给其他生产者，这个过程需要消耗一定网络带宽资源。（NET是WAX系统中用于同步与传输数据的大小，单位是KB。）

**CPU**原指电脑的中央处理器；在WAX系统中，当用户发起调用智能合约这个动作时，区块生产者需要根据智能合约地址查找合约代码，然后将代码加载到内存中执行，这个过程需要消耗一定的CPU算力。（CPU是指WAX系统处理操作指令所需的时间，单位是时间，常用ms表示。）

**RAM**原指电脑内存；在WAX系统中，账号信息、收藏品信息、智能合约执行信息的当前状态都是存储在内存中的，这些信息的储存就需要长期占用内存资源，RAM就是存储账户数据所占用的WAX系统的存储空间。（用于记录，RAM的单位常用的是KB。）

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

## 二、WAX账户资源CPU/NET/RAM怎么获得？

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

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

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

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

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

**获取CPU/NET/RAM途径：**

**获取CPU/NET资源的方法：**&#x901A;过质押WAX至eosio.stake系统账户，获得对应的CPU/NET资源。（可以是自己为自己账号质押，也可以通过一个账号为另一个账号质押资源）

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

![](https://2773763647-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Mk_rQKc4S9XtN6LE-I7%2F-Mkexq6lo-zWchjOdPEN%2F-MkezZvIR3YIwvsYKK-1%2F2.jpg?alt=media\&token=cd28e028-b2c4-40e7-859d-0cefe4b7bcae)

## 三、关于CPU

### **1.哪些操作会占用CPU资源？**

a. 账号最常用的功能：转账操作；

b. 玩生态DApp游戏时；

c. 领糖果、账号竞拍等操作。

总之，每当你向WAX网络提交交易时都需要占用一定量CPU。因为BP节点们为维护网络，都必须处理该笔交易，CPU则是BP节点们在处理、验证交易时所必须花费的时间，以微秒（μs）为单位。由于每个BP节点运行基础架构设置不同，因此每个BP节点处理交易花费CPU也不一样。每一笔交易都需要用得到CPU资源，那么，如果你的CPU资源不足，自然就无法发起交易。

### **2.CPU为什么会不足？**

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

**CPU计算公式：**&#x43;PU价格 = CPU抵押的WAX总量 / 虚拟的CPU可用量，单位是 WAX/ms。 比如：1WAX/ms 意味着换取1ms的CPU时间，需要抵押1个WAX。

**CPU的价格是不断变化的，是因为** **为CPU而抵押的WAX的总量** **和** **虚拟的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资源，就增加。

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

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

* 等待系统在第二天重新给用户质押资源 —— 自交易失败时起，待下一次系统自动补充资源需要 24 小时
* 手动质押更多代币

#### &#x20;<a href="#p8ru7" id="p8ru7"></a>

### **3.如何解决？**

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

|              | **账户A是否需要发起交易** |                            **操作**                            |
| :----------: | :-------------: | :----------------------------------------------------------: |
|   耐心等待资源恢复   |        否        |                耐心等待账户资源恢复，CPU和NET资源的恢复周期为24小时。               |
| 其他账户为账户A质押资源 |        否        |                 通过另一个可以正常操作的账户为无法操作的账户质押资源即可。                |
|     资源租赁     |        否        | <p>通过第三方资源租赁通道，支付费用购买租赁一定期限的一定数量的CPU资源</p><p>比如：XXXXX租赁等</p> |

注：如果不着急操作账户，建议选择耐心等待资源恢复；如果着急操作账户，建议选择第2.3种方式。

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

|                 | **账户A是否需要发起交易** |           **操作**           |
| :-------------: | :-------------: | :------------------------: |
| 个人账户进行质押获取CPU资源 |      是（一次）      | 通过钱包中资源页抵押账户内WAX为自己质押CPU资源 |

### **4.CPU/NET资源如何恢复？**

CPU和NET资源的恢复周期为24小时。但并不是24小时后一次性复原，而是逐渐的线性恢复。由于每个用户获得CPU/NET资源的数量也是动态变化的， 所以在资源消耗后，实际上系统的判定并不是将资源恢复，而是逐步减少上一次操作消耗。每过一小时，之前操作的消耗便减少1/24，直到24小时候后，计算消耗为0。在进行操作的时候，只有：**新交易的消耗资源量 + 之前交易之后所记录下来的资源使用量 <= 系统分配的资源总量** 这笔交易才能进行。

![](https://2773763647-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Mk_rQKc4S9XtN6LE-I7%2F-Mkexq6lo-zWchjOdPEN%2F-Mkezg0iIea8_O0F-a2D%2F3.jpg?alt=media\&token=03f3953f-f30a-4cb9-9209-eb30b38dc637)

将资源恢复的规则这么设计，其实也是为了能更合理的分配资源。毕竟我们每个用户的资源分配量，本身就一直在变。这里有些绕，我举个例子大家就清楚了。假设现在抵押资源的人比较少，我用了1个WAX，获得了500ms的CPU资源（1WAX = 500ms）。就在此时，我进行了各种操作花掉了480ms的资源，而在下一秒，突然有大户进行了资源抵押，系统能分配给我的资源一下子从500ms降到了50ms（1WAX= 50ms）。但我已经消耗了480ms，那我此时应该有-430ms的cpu（没错就是负数）。到了一个小时以后，如果我恢复1/24的资源，就是20ms。这就相当于我之前价格，获得了当下的资源。这么做的话，一定会导致整个网络资源数变大。而这显然是做不到的。所以WAX用减少之前的消耗，代替了恢复。这么做，可以保证系统的总资源量，一直是恒定的。

## 四、如何质押/买入WAX账户资源（CPU/NET/RAM）

[<br>](http://learneos.cn/2018/07/21/resource-cost-net-cpu/)点击文章查看教程： [**《如何质押/买入账户资源（CPU/NET/RAM）？》**](https://www.yuque.com/docs/share/48c84fbb-bd7f-4beb-bd26-1cec62321e8a?#%20%E3%80%8A%E3%80%90%E7%A7%BB%E5%8A%A8%E7%AB%AF%E6%95%99%E7%A8%8B%E3%80%91%E5%A6%82%E4%BD%95%E8%B4%A8%E6%8A%BC/%E4%B9%B0%E5%85%A5%E8%B4%A6%E6%88%B7%E8%B5%84%E6%BA%90%EF%BC%88CPU/NET/RAM%EF%BC%89%EF%BC%9F%E3%80%8B)

## 五、如何赎回/卖出账户资源（CPU/NET/RAM）占用的WAX

点击文章查看教程：[**《如何赎回/卖出账户资源（CPU/NET/RAM）占用的WAX？》**](https://www.yuque.com/docs/share/c5320ea5-2812-4a51-a260-bea5005b1920?#%20%E3%80%8A%E3%80%90%E7%A7%BB%E5%8A%A8%E7%AB%AF%E6%95%99%E7%A8%8B%E3%80%91%E5%A6%82%E4%BD%95%E8%B5%8E%E5%9B%9E/%E5%8D%96%E5%87%BA%E8%B4%A6%E6%88%B7%E8%B5%84%E6%BA%90%EF%BC%88CPU/NET/RAM%EF%BC%89%E5%8D%A0%E7%94%A8%E7%9A%84WAX%EF%BC%9F%E3%80%8B)

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

> **本文章用于科普，不代表 橘猫社区 的投资建议。**
>
> **投资有风险，您须充分认识风险，并自行作出投资决策。**

## 六、加入橘猫社区

{% hint style="info" %}
加入橘猫社区

**Discord：**<https://discord.com/invite/YPtEWy8hGv>

**Telegram：**[https://t.me/NFTGamerChina ](https://t.me/NFTGamerChina)
{% endhint %}
