eos dapp开发支持php语言开发吗,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开发包。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EOSIO的设计包括: 免费汇率限制交易 低延迟阻止确认(0.5秒) 低开销的拜占庭容错终结 可选的高开销,低延迟BFT终端 由Web Assembly支持的智能合约平台 专为稀疏头灯客户端验证而设计 计划的周期性事务 时间延迟安全 基于角色的权限分级 支持生物识别硬件安全密钥(例如Apple安全飞地) 并行执行上下文自由验证逻辑 区块链间通信 EOSIO允许开发人员编写与需求确定性执行的共识算法兼容的业务逻辑。您的用户群可以使用安全的公钥基础结构与此业务逻辑进行交互,为您的业务带来区块链级别的安全性,责任性和可审计性。业务逻辑根据组织的治理结构轻松更新。 EOSIO旨在在没有任何令牌的环境中运行,系统管理员为用户分配可能无限制的资源配额。或者,智能合约可以通过其他方式分配资源配额,例如令牌销售,市场费用或投票。这使得EOSIO非常适合企业和社区驱动的区块链。 根据您的使用情况,可以将EOSIO配置为使用两种不同的Web装配引擎之一Binaryen和WAVM。单个EOSIO区块链可支持高达1,000 TPS,未来版本的EOSIO将提供简化区块链间通信所需的工具,使您的业务能够水平扩展。 EOSIO是在开放源代码MIT许可下发布的,按“原样”提供,没有任何明示或暗示的担保。EOSIO软件提供的任何安全性部分取决于它的使用,配置和部署方式。EOSIO建立在许多第三方库上,如Binaryen(Apache许可证)和WAVM(BSD 3-clause),它们也是“按现状”提供的,没有任何形式的保证。在不限制前述内容的一般性的情况下,Block.one不作任何陈述或保证EOSIO或任何第三方库将按预期执行或不会出现错误,错误或错误代码。这两种方式都可能以很大或很小的方式失败,这可能会完全或部分地限制功能或危害计算机系统。如果您使用或实施EOSIO,则自行承担风险。在任何情况下都不会阻止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值