EOS智能合约开发(七)EOS资源管理

第四篇文章,我们通过eosio超级账户,部署了eosio.bios合约,部署了eosio.system合约,我们创建eosio.token账户,用来管理eosio.token合约。我们实现创建代币,分发代币,转移代币的动作,详情请查看EOS智能合约开发(四):EOS智能合约部署及调试(附编程示例) 这篇文章。

我们之前已经创建了eosio.token账户,用来管理esoio.token合约。
在购买资源之前,需要部署系统合约。

部署方法如下:

./cleos  set contract  eosio ../../contracts/eosio.system

这里我们今天天EOS的资源系统

EOS资源系统
EOS资源系统由RAM,CPU,NET组成。数据存储需要消耗RAM,账号交易需要使用CPU和NET。一个EOS账号创建的时候可以通过购买和抵押来获取资源,费用由主账号支付。如果创建账号时并未购买资源,则需要通过其他账号购买或者进行抵押,因为购买和抵押本身就是一种交易行为需要消耗资源。
RAM
RAM是运行时的内存。在EOSIO系统中,数据存储在区块链中要消耗该资源,是DApp开发时必须的资源。
RAM的交易方式

  • RAM 的买卖,实质上是抵押 eos 到系统账户,而不是买方和卖方直接的交易。
  • 不论是购买ram(即抵押eos,获取ram),还是卖出ram(即取回抵押的eos,释放ram),都是参与者与系统账户之间的交互,该过程将会收取0.5%的手续费。
  • 买入RAM有两种计价方式: 买多少字节的RAM;买多少EOS的RAM。
  • 卖出RAM只有一种方式:多少字节的RAM。

RAM相关网站
- RMA价格实时查询:https://eosmeta.io/statisticsram,https://eos.feexplorer.io/
- RAM购买:https://eostoolkit.io/account/undelegate

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归其他账户所有。

我们先看一个Demo,我们如何购买和抵押NET和CPU

之前,我们已经创建了EOS代币,并将代币分发给了EOSIO系统账户了一部分。
我们也部署在系统合约eosio.system,我们下一步就可以操作购买RAM和CPU ,NET

1、购买RAM操作。

./cleos system buyram eosio eosio "1000000.0000 SYS"  

2、抵押NET和CPU

./cleos system delegatebw eosio esoio "10000 SYS" "10000 SYS"

3、我们也可以在创建账户的时候,给这个账户购买RAM,抵押NET和CPU

./cleos system newaccount eosio voterperson1 EOS692tDRw96F2bb3T2V5Wc1f1fWKFGaf7WZ1u492F3Ffnsny9c3H EOS692tDRw96F2bb3T2V5Wc1f1fWKFGaf7WZ1u492F3Ffnsny9c3H --stake-net '5000.0000 SYS' --stake-cpu '50000.0000 SYS' --buy-ram '100000.0000 SYS'

eosio这个账户在创建voterperson1这个账户的同时,给这个账户抵押了’5000.0000 SYS’ 的 net 和 ‘5000.0000 SYS’的CPU。并且帮忙购买了 ‘100000.0000 SYS’。

4、我们也可以让被人帮我们购买EOS后,我们自己购买RAM和抵押net和CPU

./cleos transfer eosio voterperson1 '180000000000 SYS'
#通过eosio帮助voterperson1购买了 '180000000000 SYS'
./cleos system burram voterperson1 voterperson1 '50000000000 SYS'
#voterperson自己给自己购买了 '50000000000 SYS'的 RAM
./cleos system delegatebw voterperson1 voterperson1 '50000000000 SYS' '50000000000 SYS'
#voterperson1这个账户给自己抵押了'50000000000 SYS'的Net和'50000000000 SYS'的cpu

这里我们了解了EOS的资源系统。并且实践了如何购买RAM以及抵押net和cpu的几种方式。对EOS资源也有了一定了解。但是,要购买资源之前,必须部署eosio.system这个系统合约。这个是前提。

2018年7月30日,修改整理于深圳。

你可能感兴趣的:(区块链,技术篇,区块链开发)