接上篇,继续分析eosio.system.hpp头文件。 user_resources user_resources表保存EOS账户的资源余额信息,定义如下: 字段含义如下: owner:EOS账户名;net_weight:抵押到网络资源的EOS数量;cpu_weight:抵押到CPU资源的EOS数量;ram_bytes:购买的内存量,单位字节。user_resources表的表名被指定为userres: typedef eosio::multi_index< "userres"_n, user_resources > user_resources_table; 使用cleos get table命令查询userres表的示例如下: cleos get table命令查询Multi-index表时,需要传递account、scope、table三个参数: cleos get table [OPTIONS] account scope table 之前介绍的多索引数据表如global、global2、producers、voters等,使用的account和scope是相同的(都是eosio),即这些表只有一个scope; 但查询userres表时,每个EOS账户对应一个scope,主要是为了便于经常需要通过账户名查询数据的操作,因为EOS账户名也是唯一的。 当需要查询userres表的用户时,可以使用cleos get scope命令: 通过选项-t userres指定要查询的Multi-index数据表。 delegated_bandwidth delegated_bandwidth表保存资源抵押记录和抵押关系,定义如下: 字段含义如下: from:抵押EOS的账户;to:获得CPU/NET资源的账户;net_weight:抵押到网络资源的EOS数量;cpu_weight:抵押到CPU资源的EOS数量。根据EOS规则,抵押EOS代币获取CPU/NET资源有两种方式: stake:自己抵押EOS换取资源给自己用,即表中from和to字段的值相同;delegate:自己抵押EOS换取资源给别人用,即表中from和to字段的值不同。delegated_bandwidth表的表名被指定为delband: typedef eosio::multi_index< "delband"_n, delegated_bandwidth > del_bandwidth_table; delband表和userres表类似,都是一个账户一个scope,使用cleos get table命令查询delband表的示例如下: 例子中eosio账户给eosio.assert、eosio.lost账户抵押了EOS,后两者获取CPU/NET资源的方式是delegate;guzdkmrtgage账户给自己抵押了EOS,获取CPU/NET资源的方式是stake。 refund_request refund_request表记录CPU/NET资源的解抵押记录,定义如下: 字段含义如下: owner:EOS账户名;request_time:请求时间;net_amount:解除抵押到网络资源的EOS数量;cpu_amount:解除抵押到计算资源的EOS数量。解抵押后CPU/NET资源会被立即收回,但EOS代币变为可用(liquid)状态需要等待72小时,因此会失去72小时的资源可用性; 还有一个系统上的要求是全网投票率达到15%以上才允许解抵押,另外解抵押操作会写入新的数据到refund_request数据表,因此会消耗RAM。 refund_request表的表名被指定为refunds: typedef eosio::multi_index< "refunds"_n, refund_request > refunds_table; 使用cleos get table命令查询时使用refunds,scope规则和userres、delband表相同。 下面是Jungle测试网上的refunds表查询示例: REX相关的数据表 eosio.system.hpp还定义了REX资源交易所相关的数据表(结构体名,括号里为表名): rex_pool(rexpool);rex_fund(rexfund);rex_balance(rexbal);rex_loan(cpuloan、netloan);rex_order(rexqueue)。这些表在之前的文章:【EOSREX】REX的数据状态中有详细介绍。 eosio.system.hpp中接下来声明了系统合约类system_contract,放到下一篇文章中介绍。 更多内容 币圈信息站开发目录 EOS开发系列目录 —- 编译者/作者:松果 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
【EOS源码分析】30 - eosio.system.hpp中资源相关的Multi-index表
2020-06-08 松果 来源:区块链网络
LOADING...
相关阅读:
- 随着区块链忠诚度平台升级,MiL.k的MLK在Kucoin上市2020-08-06
- LINK努力对抗比特币突破90,000 SAT:分析2020-08-06
- ForTube Bond投资即可享受“空投返还gas费”活动2020-08-06
- 报告创下历史新高后,Chainlink抢占了市场焦点:报告2020-08-06
- 币圈有道:(8-6)比特币凌晨金评2020-08-06