美文网首页eos
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测

作者: guaiguaihw | 来源:发表于2018-12-21 17:38 被阅读24次

    背景

    在cpu资源非常紧缺的情况下,各大cpu租赁平台层出不穷。BM君也不甘寂寞,前几天万众瞩目的rex终于出了beta版了。本人迫不及待的下载、编译、安装了合约,试玩了一下。具体详见:rex Release Notes。我会为大家简略介绍下合约安装步骤、rex主要功能、rex的表结构等情况。

    rex安装步骤

    根据提示,必须安装以下工具:

    eosio.cdt:1.5.0-rc1版本。用于编译合约,安装完成后,eosio-cpp命令用于生成合约的abi、wasm和wast文件。

    nodeos:v1.5.0版本。nodeos也需要升级,以便支持rex

    eosio.system合约:v1.6.0-rc1。本次rex的功能是集成在了eosio.system系统合约,因此,system合约需要重新编译部署。

    创建eosio.rex账户:eosio.rex是rex的系统账户,用于存储rex市场的全部资金,也需要在初始化的时候创建。

    安装过程我就不再赘述了,有问题可以留言给我,在玩之前要确保环境都正确。

    创建eosio.rex账户

    rex主要功能

    1. deposit 

    在rex市场中,无论是想买卖rex代币,还是想租赁cpu和net,都先要充值eos进入rex市场中。

    函数参数:

    owner:rex市场的账户

    amount:冲进rex市场的eos金额

    充值eos入rex市场

    充值完成后,可以查看rexfund表查询该账户在rex市场里的余额。

    查询账户在rex市场中有多少可用eos

    2. withdraw

    如果不想玩了,从rex市场中提出eos,转账回余额

    函数参数:

    owner:rex市场的账户

    amount:提出rex市场的eos金额

    从rex市场提出eos

    3. buyrex

    如果想将rex市场中的eos换成rex代币,就可以调用此函数。

    tips:购买rex的账户,先得投票给不少于21个的候选节点,或者投票给一个proxy,否则买不了rex代币。

    函数参数:

    from:rex市场的账户

    amount:想支付多少eos买rex

    买入rex代币

    买入代币后,rexfund表中的eos可用余额减少,rexbal表中的rex_balance增加

    买入前的eos和rex余额 买入后的rex和eos余额

    一个eos能买多少rex代币,是通过bancor算法计算的。初始的时候,1 rex=1 eos,无论买卖次数多少价值比例不变。只有当用户操作了租赁cpu和net的动作后,产生了额外eos收益,才会使rex与eos的兑换发生改变,rex代币是只涨不跌的。具体计算方法我后面的文章会讲,好奇的小伙伴可以先看看斜杠大神的文章,做一个大致的了解:EOS REX即将上线,CPU租赁大战即将开响

    4. unstaketorex

    账户里没有eos怎么办?可以用抵押的eos买rex代币。此操作将从账户质押中解除相应的cpu、net抵押,解除抵押的eos将用于购买rex代币,并在用户rexbal表中的余额体现。

    函数参数:

    owner:拥有抵押eos所有权的账户

    receiver:实际享有抵押的账户

    from_net:想解除net抵押的eos金额,用于买入rex

    from_cpu:想解除cpu抵押的eos金额,用于买入rex

    解除抵押,购买rex代币 购买前 购买后

    5. sellrex

    买入rex后,想卖出rex,则需要等4天的成熟期才能卖出,这么设计是防止投机行为

    函数参数:

    owner:rex市场的账户

    amount:想卖出rex代币的金额

    卖出rex失败 账户里成熟的rex为0

    如果sellrex交易成功了,则账户的rex市场中可用的eos会增加。

    6. rentcpu/rentnet

    租赁cpu,愿意付出100eos去租赁cpu,3eos进入cpu贷款中,供后续续租使用。

    函数参数:

    from:付eos租赁cpu/net的账户

    receiver:享受租赁的cpu/net的账户

    loan_payment:愿意付出租赁的eos数量

    loan_fund:额外进入cpu/net贷款的钱,供续租使用

    租赁cpu

    cpu增加了0.0299eos,租赁时间是30天,怎么计算100eos能租多少eos,我们在下节介绍rex表结构的时候,跟大家详细说明。

    获得了租赁的eos

    7. fundcpuloan/fundnetloan

    rentcpu/rentnet的时候,我们提到了一个额外的loan_fund,用于续租使用的。下面是官方关于loan_fund的详细描述:

    loan_fund的作用

    我简单解释下意思:

    在租赁cpu和net的时候,可以额外充入loan_fund金额,供之后的续租使用

    查表cpuloan/netloan,当balance >= payment时,30天租赁到期后,会自动续租。否则,balance里的金额会退回用户的rex市场账户。

    fundcpuloan/fundloan函数是为了给balance充值,保证能顺利续租。

    cpu_loan详情

    函数参数:

    from:租赁的发起人

    loan_num:cpuloan/netloan表中的号码,指明为哪笔续租充值

    payment:愿意追加多少eos去loan_fund

    为loan_fund追加eos 追加前 追加后

    8. defcpuloan/defnetloan

    可以为续租基金充值,也同样可以提取续租基金。

    函数参数:

    from:租赁的发起人

    loan_num:cpuloan/netloan表中的号码,指明从哪笔续租提币

    payment:从loan_fund提取多少eos

    从loan_fund提eos 提取后

    rex表结构

    涉及rex的表有以下几个:

    cpuloan:cpu租赁的单子,里面有详情,包括:付出的eos、获得多少cpu、续租基金余额

    netloan:net租赁的单子,里面有详情,包括:付出的eos、获得多少cpu、续租基金余额

    rexbal:账户在rex市场可用rex余额,包括:成熟可卖出的rex金额、各笔金额的成熟期等信息

    rexfund:账户在rex市场可用eos余额

    rexpool:rex资金池信息,包括:可借出的eos、已借出的eos、市场上rex总额等信息

    rexqueue:sellrex时,如果可用eos不够,订单会进入该表pending

    查表命令:

    cleos get table eosio eosio <table_name>

    我这里想着重介绍下rexpool表的信息:

    total_rex:rex市场中所有的rex代币

    total_lendable:rex市场中可用的eos(这里包括买rex的eos、以及cpu/net租赁的盈利eos)

    total_unlent:可以被用于出租或者买卖rex获利的eos

    total_lent:已经出租的eos

    total_rent:所有租赁cpu和net的获利金额的总和

    rexpool详情

    之前,rentcpu如何计算能租到多少cpu计算公式:

    rented_tokens = payment * total_unlent / total_rent

    后记

    rex作为官方cpu租赁平台,志在解决cpu资源短缺的问题,本人用起来还是比较流畅。希望rex能尽快推出正式版,我这几天也会再研究下rex的源码,届时再更新一篇为大家深入介绍。

    相关文章

      网友评论

        本文标题:【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测

        本文链接:https://www.haomeiwen.com/subject/pbolkqtx.html