EOS的cpu,net,ram资源价格计算

本文介绍了EOS系统中CPU和NET资源的定价机制,以及如何通过抵押EOS获取和计算资源价格。CPU价格基于账户的抵押比例和系统总量动态计算,而内存价格则运用Bancor算法,通过内存市场数据进行计算。详细阐述了如何使用EOS相关工具获取和解析这些数据,为开发者提供了理解和实现资源价格计算的方法。
摘要由CSDN通过智能技术生成

net和cpu资源价格的估算

EOS系统中,cpu和net资源是通过抵押eos获取的。抵押的时候只记录了抵押cpu/net对应的eos数量,获取到的资源不是固定的,而是在使用的时候会按照当前你所抵押eos的数量占全网抵押总量的比例实时计算的,最终体现为 limit 的值。实时计算由 eos/libraries/chain/resource_limits.cpp 中 get_account_net_limit_ex 和 get_account_cpu_limit_ex 方法实现。

用 /v1/chain/get_account API 可以查看账户资源情况,返回的 Response 中显示

"cpu_weight": 54320,
"cpu_limit": {
    "used": 1142,
    "available": 6896,
    "max": 8038
  }

价格计算:

CPU价格 = ( cpu_limit.max / 1000 ) / ( cpu_weight / 10000 ) = 1.48 ms/EOS

  • cpu_limit.max/1000 ms 总毫秒数 8.038 ms
  • cpu_weight/10000 EOS 总抵押 5.432 EOS,就是抵押的数量token数量

同理 Net 可以是这样获取

RAM资源价格计算器

要计算EOS内存资源的价格,需要使用bancor算法。如果你希望学习如何在自己的EOS钱包产品中实现资源的价格计算,可以参考这个EOS钱包开发教程

首先用EOS的客户端工具cleos命令获取内存市场数据:

$ cleos -u http://nodes.get-scatter.com:80 get table eosio eosio rammarket                  

{
  "supply": "10000000000.0000 RAMCORE",
  "base": {
    "balance": "35044821247 RAM",
    "weight": "0.50000000000000000"
  },
  "quote": {
    "balance": "3158350.8754 EOS",
    "weight": "0.50000000000000000"
  }
}

基于上面的内存市场数据,可以按如下公式计算内存价格:

内存价格 = Connector Balance / (Smart Token’s Outstanding supply × CW) = 3158350.8754 EOS / 35044821247 RAM = 0.09 EOS/Kib

其中:

  • Connector Balance = quote.balance
  • Smart Token’s Outstanding supply = base.balance
  • CW = quote.weight
  • EOS是连接器(connector), RAMCORE是智能代币(smart token)

注意:在Bancor协议白皮书中有个错误,CW不是故意设置为50%,详情参考这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值