EOS系列 - 哪些情况会消耗RAM

EOS系统资源主要包括RAM、CPU和NET,其中RAM需要购买,而CPU和NET只需要用EOS抵押即可获得,赎回期是3天。所以,可以理解为RAM是收费的,CPU和NET是免费的。

理解RAM

EOS的RAM是用来存储内存数据库的部分。DApp会使用EOS RAM来存储状态信息,以便于DApp的快速存储。另外创建EOS的账户也需要EOS RAM。

RAM价格机制

在EOS系统中,CPU和网络的使用权采用质押EOS的方式,根据质押EOS的数量占全网EOS质押总量的比例获取对应比例的使用权,一旦你不使用了,就可以赎回你所有的EOS。而RAM的分配制度则是采用Bancor算法。而内存的价格由系统Bancor Relay 算法决定,EOS 内存买卖采用的是自由市场定价的算法,可分配的内存越少,价格越高。所以,越早买入,越晚卖出,能从EOS 系统中换回来的EOS 数量就越多。

RAM消耗之处

在EOS网络中,创建账号、创建智能合约、转账、购买资源、抵押、赎回、投票等操作的时候, 需要存储数据,所以会消耗RAM。

RAM消耗机制

  1. 给一个EOS账户下面新建一个新的代币名字需要花费0.11kbRAM
  2. 给一个EOS账户下面新建一个新的代币转账单用来记录B转账RAIN的记录)需要花费0.125kbRAM
  3. 当账户A给账户B转账某个新代币(假设名字是RAIN)的时候他需要:
    1. 为B新建一个新的代币名(RAIN)
    2. 为B新建一个新的代币转账单(用来记录B转账RAIN的记录)
    3. 则一共需要0.11+0.125 大约为0.235kbRAM
  4. 当账户B第一次转账新代币的时候,流程如下:
    1. B需要为自己创建一个新的代币转账单(用来记录B转账RAIN的记录)
    2. 归还之前A为自己垫付的转账的新建转账单的费用
    3. 总的来说就是归还费用所以要B支付0.125kbRAM 同时A收到0.125kbRAM
  5. 当账户B将自己全部的新代币转移出去,流程如下:
    1. 由于B已经将全部代币转移出去,所以B账户下不再需要新代币的名字和转账单,所以销毁名字和转账单并归还相应的RAM
    2. 其中包括归还给B自己创建转账单的0.125kbRAM 和 A为B创建名字的0.11kbRAM
    3. 所以返还A0.11 kb RAM 返还B 0.125kb RAM
  6. 所以EOS转账并不都免费,只有第一次转账会收取创建转账单的费用。
  7. 所以当有人给你转账某个新代币的时候,如果你要转出的时候,不要全部转出,哪怕留0.0001个。否则以后再给你转币还要花费一笔创新名字的费用。

总结

EOS中的资源主要包含RAM,CPU和NET.RAM用于数据存储,需要购买,且每次买卖都会收取0.5%的手续费,但凡涉及到数据存储的操作都会消耗RAM,比如创建账号需要存储账号信息,建立一条新币种的转账记录,新建智能合约等.CPU和NET转账的时候会消耗,但是会随着时间的增长面慢慢恢复,无需购买,抵押EOS即可.

假设有账号A,B,C和D,以及代币T.
转账免费:A,B,C和D都有T,互转T免费,如EOS,因为每个账号创建的时候,余额都是大于0的.
转账收费:A有T, B.C和D没有T,A先给B转账T,消耗0.359kb RAM,A再给C转T,消耗0.235kb RAM.如果B使用了T代币(如转账T),转到已有T的账号,会消耗0.125kb RAM,同时该0.125kb RAM会返回给A; B给D转T,消耗0.235kb RAM.

买卖RAM收取0.5%手续费,不消耗RAM.
抵押CPU和NET:自己为自己抵押不收费;A为B第一次抵押,收取0.391kb,之后再为B抵押不消耗,但是C为B第一次抵押,消耗了0.156kb,因此可以 确定第一次为其他账号抵押会消耗RAM,之后再为相同账号抵押不会消耗RAM.

发布了58 篇原创文章 · 获赞 66 · 访问量 8178

猜你喜欢

转载自blog.csdn.net/wcc19840827/article/details/94415036