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

背景

在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账户

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第1张图片

rex主要功能

1. deposit 

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

函数参数:

owner:rex市场的账户

amount:冲进rex市场的eos金额

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第2张图片
充值eos入rex市场

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

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第3张图片
查询账户在rex市场中有多少可用eos

2. withdraw

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

函数参数:

owner:rex市场的账户

amount:提出rex市场的eos金额

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第4张图片
从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怎么玩?(beta偷跑版测试)_第5张图片
买入前的eos和rex余额
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第6张图片
买入后的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

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第7张图片
解除抵押,购买rex代币
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第8张图片
购买前
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第9张图片
购买后

5. sellrex

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

函数参数:

owner:rex市场的账户

amount:想卖出rex代币的金额

卖出rex失败
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第10张图片
账户里成熟的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全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第11张图片
获得了租赁的eos

7. fundcpuloan/fundnetloan

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

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第12张图片
loan_fund的作用

我简单解释下意思:

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

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

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

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第13张图片
cpu_loan详情

函数参数:

from:租赁的发起人

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

payment:愿意追加多少eos去loan_fund

为loan_fund追加eos
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第14张图片
追加前
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第15张图片
追加后

8. defcpuloan/defnetloan

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

函数参数:

from:租赁的发起人

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

payment:从loan_fund提取多少eos

从loan_fund提eos
【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第16张图片
提取后

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

我这里想着重介绍下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的获利金额的总和

【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试)_第17张图片
rexpool详情

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

rented_tokens = payment * total_unlent / total_rent

后记

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

你可能感兴趣的:(【eos全家桶系列】官方租赁市场Rex怎么玩?(beta偷跑版测试))