本文试图解读以下几个问题:
-
RAM是什么?
-
如何买卖RAM?
-
RAM的价格如何决定?
-
RAM在熊市的对冲逻辑是什么?
-
内存投机是什么意思?如何遏制内存投机
-
侧链与主链的RAM价格是否一样?
-
EOS如何限制内存的使用?
-
RAM的相关工具和网址
-
RAM/NET/CPU的区别?
-
如何购买和卖出RAM
RAM是什么?
RAM是指运行时的内存 ,在EOSIO系统中,RAM是一项宝贵的资源,将数据存储在区块链中要消耗该资源,是DApp开发时必须的资源。
如何买卖RAM?
RAM 的买卖,实质上是抵押 eos 到系统账户,而不是买方和卖方直接的交易。
不论是购买ram(即抵押eos,获取ram),还是卖出ram(即取回抵押的eos,释放ram),都是参与者与系统账户之间的交互,该过程将会收取0.5%的手续费。
买入RAM有两种计价方式: 买多少字节的RAM;买多少EOS的RAM。
卖出RAM只有一种方式:多少字节的RAM。
截止6月25日17:08,1个EOS可以购买19.8228Kb的EOS。
RAM的价格由什么决定?
RAM的价格是基于Bancor算法,可简单理解为市场的供需模型。如果RAM供不应求,则买入RAM时就需要锁定更多的EOS;同时,卖出RAM也能获得更多的EOS。
RAM在熊市的对冲逻辑是什么?
RAM的熊市对冲逻辑转自公众号区块链极乐空间的分析:
RAM的熊市对冲逻辑十分简单。币价下跌,开发成本下降,大量合约开始增速部署。首批部署的合约主要是1CO和发币合约。EOS的用户端没有手续费,但是开发端的成本不低。这些合约部署者都会大量购买RAM。币价越是下跌购买RAM的量越大。而根据bm的访谈,五月份最终版本的eos定价方法被换成了bencor算法。该算法的特别之一就是买的人越多,价格越高,并且增速会越来越大。因此RAM的价格大幅度跑赢了EOS的跌幅,RAM在熊市中的作用是十分明显的。
内存投机什么意思?
低价时大量囤积内存,在价格变贵后卖出内存来获利。
如何遏制内存投机?
-
但大量买入内存时,账户中相应的EOS将会被锁定,不能用于流通也不能用于出租带宽,将会损失EOS升值以及租赁带来的收益。
-
RAM不可直接转让,只能是以当前价格售出内存,而这个售出是要收取0.5%的手续费,这意味着RAM价格变贵后,对应的手续费也会上涨。
-
受供需模型限制,EOS DAWN4.0提到允许超级节点讲内存从4TB升级到16TB,可抑制早期大量囤积RAM的获利行为。
EOS如何实现对内存使用的限制?
合约帐户的当前内存使用量将存储在合约帐户的常规数据库中,而不是像带宽和算力限制那样使用单独的数据库。
EOS.IO数据库管理的代码可以轻易拒绝那些试图用更多的内存,而不是根据通过当前持有EOS代币来获得允许的交易。
数据库会对一个账号的进行追踪,如果它想超过账户中被锁定EOS分配的RAM ,交易就会被拒绝。
DAPP开发者账户要使用内存来运行相关智能合约,必须抵押一定数量的EOS,假如EOS不足,EOS.IO拒绝那些占用内存的交易。
EOS DAWN 4.0原文
内存分配模型 | RAM Allocation Model
测试中我们发现了EOSIO系统合同分配RAM(数据库空间)的方式会导致未来资源的短缺。我们改用了一种基于市场的分配方法,使用Bancor算法。
我们的计算表明,如果1TB RAM按比例分配给token持有者,那么每字节的成本将是0.018美元(假设每个token20美元)。事实上,大多数token持有者实际上并不需要使用他们可能拥有的RAM;因此,我们最初对RAM的定价是每字节0.000018美元(假设每个token20美元)。创建一个新帐户需要大约4KB的RAM,这意味着将花费约0.10美元。随着RAM被分配,价格会自动增加,这样在系统耗尽RAM之前价格就会接近无穷大。
在Dawn 3.0系统合约中,您只能以您支付的价格出售RAM。 目的是抑制囤积和投机。 这种方法的缺点那些廉价购买RAM的人在RAM变得更紧缺后,没有为其他用户腾出RAM的经济激励。在Dawn 4.0之下,系统合约现在以当前市场价格购买和销售RAM分配。 这可能会导致交易商在预计明天可能出现短缺的情况下购买RAM。 总的来说,这将导致市场随着时间的推移平衡RAM的供需。
随着时间的推移,摩尔定律将允许超级节点升级到4TB甚至16TB的内存,并且这种供应增长将逐渐降低EOSIO RAM市场价格。
“ 供应量的增长,使得囤积RAM的获利可能性大幅降低了,保证了RAM的正常流通。”
对智能合约开发者的影响 | Implications for Smart Contract Developers
作为一名智能合约开发者,RAM是一项宝贵的资源,数据库记录需要消耗RAM。考虑到RAM的成本,将存储在内存数据库中的数据量减到最小,并且设定你的应用程序在用户使用完后释放RAM将是非常重要的。
例如,Steem仅在RAM中存储了1周的内容,因此总体的量大小不会随着时间增长而增长。
“ 如果DAPP的开发者要长期占用内存资源,那么成本会非常高。通过经济机制,使得开发者尽可能的减少内存资源占用,或者有足够的经济激励来释放内存。”
尽量遏制投机 | Minimizing Speculation
那么现在形成了一个RAM市场,投机者或许想要利用RAM价格的波动性获取盈利。而 EOSIO 系统合约设定RAM不可转让,并收取1%的交易费用。这笔费用的结果是通过将其退出市场来抵消Token 的自然通货膨胀。
如果 RAM 的年度交易量等于 Token 供应量,则所有块生产者奖励的100%将由 RAM 市场费用支付。
“ 1. 这里的RAM不可转让是指RAM资源不可以直接转让,只能通过锁定EOS来获取RAM资源。而这个过程将会收取1%的手续费,这个机制的设定类似于以太坊上gas的限制。
2. 年度交易量如果等于Token供应量,那么对应的手续费将可用于抵消因奖励超级节点所带来的通胀。”
主链、侧链的 RAM
主链与侧链的RAM是独立的,每条链上的运行的智能合约只访问自身的RAM。
主链、侧链上的RAM价格不同,因为RAM的价格是由该链上的供需所决定。显然,在主链上的DAPP开发需求将要大的多,因此主链的RAM会更贵;而DAPP的开发者也可以选择在侧链上开发,到时会有许多侧链,选择价格便宜的侧链将会节约成本。
无论是在主链还是在侧链上购买RAM,都是使用相同的EOS Token。
RAM的相关工具和网址
1. 实时查看RAM价格和K线图:1) https://www.feexplorer.io/EOS_RAM_price
2) https://eosmeta.io/statistics
2. 利用TOOKIT进行EOS的各种操作,包括买卖RAM: https://eostoolkit.io/account/undelegate
3. 设定RAM的购买需求,计算对应的EOS
RAM、NET带宽、CPU带宽的对比
NET带宽:网络带宽以过去3天的平均消耗量为单位进行测量,单位是字节如KB。每次发送操作或事务时都会暂时消耗网络带宽,但随着时间的推移会减少到0。抵押的EOS越多,网络带宽可以使用得越多。 可以随时赎回EOS,但是有三天左右的赎回期。
CPU带宽:CPU带宽以过去3天的平均消耗(以微秒ms为单位)来衡量。 当您发送操作或事务时,CPU带宽会暂时消耗,但随着时间的推移会减少到0。事务运行时间越长,它将消耗的CPU带宽就越多。 可以随时赎回EOS,但是有三天左右的赎回期。
三个区别:
1. RAM是自由市场买卖模式,由市场价格来决定。CPU、NET是抵押模式,抵押多少取消多少。
2. RAM是随时可以交易,但CPU、NET有三天等待期。
3. CPU和NET可用于出租给其他账户,取消抵押后,EOS可以回到自己的账户。RAM可帮助其他账户购买,但卖出时的EOS归其他账户所有。
如何购买和卖出RAM?
购买RAM
命令格式:
Buy RAM
Usage: cleos system buyram [OPTIONS] payer receiver tokens
Positionals:
payer TEXT The account paying for RAM (required)
receiver TEXT The account receiving bought RAM (required)
tokens TEXT The amount of EOS to pay for RAM (required)
示例:
$ cleos system buyram testuser1111 testuser1111 '1 EOS' -p testuser1111
卖出RAM
命令格式:
Sell RAM
Usage: cleos system sellram [OPTIONS] account bytes
Positionals:
account TEXT The account to receive EOS for sold RAM (required)
bytes UINT Number of RAM bytes to sell (required)
示例:
$ cleos system sellram testuser1111 30000 -p testuser1111
= END =