昨天写了一篇文章,介绍在EOS之中RAM资源的分配和使用情况。
涉及到的代码较多,有些朋友直呼读不懂啊读不懂。读不懂不是你的错,是我没有把这部分写明白。结合在币问上面一位朋友的提问,以及昨天跟金马兄的交流,再补充一下对于RAM这个问题的理解。
这篇文章里,我简单写下对于RAM的理解,不用怕,这次不上代码了。 T_T
另外想了解宪法怎么上链? 今天我们会聊一聊。
肯定会有一些理解不到位的地方,还请各位大拿多多指教。
1 RAM 是什么?还有什么其他资源?
RAM一般是指运行时的内存, 在EOSIO 系统中,用于存储账户等状态信息的。是支持dapp运行的基础资源。
仅有RAM资源肯定是不够的,所以在 EOSIO中,还需要有CPU资源进行程序逻辑的运算,需要带宽资源进行信息传输。
根据账户所抵押的EOS的数量,账户能够调用的资源也是有所不同的。跟Steem一样,EOS使用了速率限制的算法来计算账户可以动用的资源。
2. 买卖RAM是什么意思?
昨天文章里提到在 RAM,沿用了eosio.system合约之中的写法,buyram和sellram,有朋友疑问,既然抵押EOS就可以得到RAM,那么,直接用人民币买EOS 来抵押就可以了,为什么要买RAM?
澄清一点:无法直接用人民币来购买RAM。
RAM 的买卖,实质上是抵押 eos 到系统账户,就是说将eos转账到eosio这个系统账户之中作为抵押,而不是买方和卖方直接的交易。
不论是购买ram(即抵押eos,获取ram),还是卖出ram(即取回抵押的eos,释放ram),都是参与者与系统账户之间的交互,而不是直接的市场交易行为。只是,价格会按照bancor算法来决定。
3. RAM通过抵押EOS来获得,新账户怎么办?
网友问到:如果我没有EOS,就不能够获得RAM,那么怎么使用基于EOS设计的DAPP呢?
实际上,每个新创建的账户,账户之中会有一定的eos,有4kb左右的内存可用于存储自己账户的状态信息。所以,仍然是可以使用dapp的。
至于其他的cpu或者带宽资源,可以有多种方式,比如,dapp的开发者或者运营人员将dapp的资源租赁给用户使用;或者,用户也可以付费从其他人那里租赁EOS,从而得到这些资源的使用权限。
4. 购买 RAM是市场行为么?
购买和出售RAM,跟我们常见的买卖不同,实际上都是账户跟系统之间的交互,买卖双方不直接进行交易。本质上还是抵押eos得到使用权,只是用了基于bancor算法来对RAM进行定价。
购买RAM,是抵押EOS得到了RAM的使用权限;而出售RAM,则是释放了自己所占用的RAM,从系统账户之中取回来所抵押的EOS。
抵押RAM和取回,是立即进行的,不像cpu和带宽资源一样,有三天的延迟期。
比如,你需要购买/出售100 Mb的RAM,需要抵押或赎回多少的eos,这里根据市场价格(由bancor算法来决定)算出来了EOS的数量,我们假设是100 eos,纯粹为了方便理解。然后进行转账。
如果是购买 100 Mb的RAM,则转账100 eos到eosio这个账户中;如果是出售 100 Mb的RAM,则从eosio这个账户中,系统会转回100 eos到你的账户里面。
这样写,可能更方便理解。
简单来说,eos中ram资源是无法租赁给别人的,只能够按照市场价格,将对应数额的eos抵押到系统账户去,从而得到对应的ram资源。
bm的解释:https://steemit.com/eosio/@dan/eos-io-development-update
5. 作为DAPP开发者,怎么统筹资源呢?
DAPP需要用到多种资源:CPU,带宽,和RAM。都需要抵押EOS来获得资源的使用权,
那么,对于开发者而言,应该要怎么规划,要抵押多少呢?
现在仍然只能够手动来处理了。不过希望block.one会出来新的方式来应对。
网友评论