EOS计算资源估算办法【内存/CPU/带宽】

简介: 要开发一个基于EOS区块链的DAPP需要多少内存、CPU或带宽资源?这是很多即将开始EOS项目的开发者关注的一个重要问题。本文将介绍如何估算EOS DAPP的内存/CPU/带宽资源需求以及相应的成本。

要开发一个基于EOS区块链的DAPP需要多少内存、CPU或带宽资源?这是很多即将开始EOS项目的开发者关注的一个重要问题。本文将介绍如何估算EOS DAPP的内存/CPU/带宽资源需求以及相应的成本。

在我们开始进入具体的EOS区块链DApp的资源需求估算之前,先了解一下EOS中的资源类型、使用方法以及资源分配模型。如果你希望深入学习EOS DApp的开发,可以参考这个EOS DApp开发教程

1、EOS中的资源类型

在EOS区块链上,有三种类型的资源供EOS账号利用:

  • 状态存储:RAM,即内存
  • 带宽及日志存储:Bandwidth,即网络带宽
  • 计算:CPU

2、EOS资源的利用方式

在EOS区块链中,内存/RAM用于保存区块链的状态,例如交易委托账本和账户余额等。这些状态通常由应用程序逻辑来访问。

网络带宽计量你在过去3天内的平均带宽消耗。每当你发送一个动作或交易都会暂时占用一些带宽资源。

CPU计量你在过去3天里的对计算资源的平均利用情况,单位为毫秒。每当你发送一个动作或交易,也会暂时消耗一些CPU资源。

3、EOS资源的分配模型

在EOS区块链中,网络带宽和CPU资源是采用抵押方式获取的。分配给你多少带宽和CPU,取决于你抵押的EOS代币在过去3天里EOS区块链系统抵押合约持有的代币总量中占多大的比例。发送交易所消耗的网络带宽资源和CPU资源,会随时间流逝自动再释放给你。

EOS中的RAM资源则需要以市场价格购买,该价格按Bancor算法自动调节。与CPU和网络带宽资源不同,已经占用的内存资源不会自动释放,唯一的释放办法是从你的账户状态存储中删除数据,之后你就可以按市场价格出售这些空闲的内存资源。

4、资源价格计算器

要计算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%,详情参考这里

网络带宽和CPU资源的价格依赖于出块节点,彼此的价格都不一样。下面以eosnewyorkio这个出块节点为例说明。

还是先用cleos获取基础数据:

$ cleos -u https://api.eosnewyork.io/ get account eosnewyorkio

net bandwidth:

staked:        900.0000 EOS           (total stake delegated from account to self)
delegated:       0.0010 EOS           (total staked delegated to account from others)
used:               200 bytes
available:        578.4 MiB
limit:            578.4 MiB

cpu bandwidth:

staked:        900.0000 EOS           (total stake delegated from account to self)
delegated:       0.0000 EOS           (total staked delegated to account from others)
used:             10.91 ms
available:        1.864 min
limit:            1.864 min

计算公式如下:

Net Price = (Net Staked / Net Available) / 3
          = 900.0000 / (578.4*1024) / 3 = 0.0005 EOS/KiB/Day
          
CPU Price = (CPU Staked / CPU Available) / 3
          = 900.0000/(1.864*60*1000)/3 = 0.0025 EOS/ms/Day          

你可以在这里查看这些资源的实时价格

5、估算EOS DApp的内存资源需求

首先我们估算内存资源的需求及成本。参考eos节点源码eos/libraries/chain/eosio_contract.cpp:

The amount of code = code_size X setcode_ram_bytes_multiplier

code_size: size of wast file

setcode_ram_bytes_multiplier =10

另外:

overhead_per_row_pper_index = 32 + sizeof(key) + row data for all objects which stored in DB

这样得到总计内存需求:

Ram for Dapp = Amount of code + overhead_per_row_pper_index

6、估算EOS DApp的CPU和带宽资源需求

假设我们要开发一个EOS上的DApp,预计每天有1000个用户访问,每个用户每天进行5个交易。

通常一个交易需要消耗200字节的带宽和1ms的CPU。因此我们可以得到如下的结果:

total_cpu_dapp = 1ms*5*1000 = 5 000 ms/day

total_net_dapp = 0.2*5*1000 = 1000 KiB/day

结合前面的资源价格计算,我们得到如下的DApp资源成本数据:

Total EOS (CPU+NET) = 1000KiB * 0.0005 EOS/KiB/Day + 5 000 ms/Day *0.0025EOS/ms/Day 
                    ~ 13 EOS/day

也就是说,为了运营这个DApp,让它可以支持每天5000人次的访问,我们每天需要保证合约账户上有13个EOS的资源抵押可用,这就是我们开发这个EOS DApp所需要的内存、CPU和带宽资源的估算结果。如果你希望用熟悉的PHP来开发EOS DApp,可以下载这个EOS PHP开发包


原文链接:EOS DAPP资源需求计算方法 - 汇智网

目录
相关文章
|
29天前
|
JSON Java Serverless
nacos常见问题之cpu和内存占用高如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
150 0
|
2天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
23天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
1月前
|
弹性计算 固态存储 Linux
2024年阿里云服务器租用详细价格表(CPU/内存/带宽/系统盘)
2024阿里云服务器租用优惠价格表,轻量服务器2核2G3M带宽轻量服务器一年61元,2核4G4M带宽轻量服务器一年165元12个月,ECS云服务器e系列2核2G配置、3M固定带宽、40G ESSD Entry云盘,99元一年、2核4G服务器30元3个月、2核4G配置365元一年、2核8G配置522元一年,云服务器u1、云服务器c7、g7和r7优惠价格表,CPU内存带宽系统盘配置详细报价:
740 3
|
1月前
|
弹性计算 固态存储 调度
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
1月前
|
弹性计算 固态存储 调度
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
1月前
|
弹性计算 固态存储 调度
阿里云配置服务器详细指南_2024新版CPU内存带宽系统盘选择
阿里云配置服务器详细指南_2024新版CPU内存带宽系统盘选择,阿里云服务器配置怎么选择?CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
3月前
|
Linux
|
2月前
|
弹性计算
2024阿里云幻兽帕鲁/Palworld服务器价格表(CPU/内存/带宽/磁盘收费标准)
2024年阿里云幻兽帕鲁专用服务器的价格根据不同的配置有所不同。 • 4核16G配置的价格为32元/月,如果选择购买3个月,则价格为96元。 • 8核32G配置的价格为90元/月,如果选择购买3个月,则价格为271元。 另外,还有配置为4核16G10M带宽的服务器,其价格为26元/月起。而8核32G10M带宽的价格也是90元/月。
95 1
|
3月前
|
监控 关系型数据库 MySQL
innodb_buffer_pool_instances 如何根据cpu和内存进行配置
`innodb_buffer_pool_instances` 是用于配置 InnoDB 缓冲池实例数的参数。每个实例都管理缓冲池的一部分,这有助于提高并发性能。通常,你可以根据系统的 CPU 和内存来调整这个参数,以获得更好的性能。 以下是一些建议和步骤,帮助你根据 CPU 和内存进行 `innodb_buffer_pool_instances` 的配置: 1. **了解系统资源:** 首先,了解系统的硬件资源,特别是内存和CPU。检查系统上可用的物理内存和 CPU 核心数量。 2. **考虑每个实例的大小:** 在配置 `innodb_buffer_pool_instances` 时,