溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

EOS怎么實(shí)現(xiàn)資源價(jià)格計(jì)算器

發(fā)布時(shí)間:2021-12-23 17:11:54 來(lái)源:億速云 閱讀:135 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹“EOS怎么實(shí)現(xiàn)資源價(jià)格計(jì)算器”,在日常操作中,相信很多人在EOS怎么實(shí)現(xiàn)資源價(jià)格計(jì)算器問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”EOS怎么實(shí)現(xiàn)資源價(jià)格計(jì)算器”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

1、EOS中的資源類型

在EOS區(qū)塊鏈上,有三種類型的資源供EOS賬號(hào)利用:

  • 狀態(tài)存儲(chǔ):RAM,即內(nèi)存

  • 帶寬及日志存儲(chǔ):Bandwidth,即網(wǎng)絡(luò)帶寬

  • 計(jì)算:CPU

2、EOS資源的利用方式

在EOS區(qū)塊鏈中,內(nèi)存/RAM用于保存區(qū)塊鏈的狀態(tài),例如交易委托賬本和賬戶余額等。這些狀態(tài)通常由應(yīng)用程序邏輯來(lái)訪問。

網(wǎng)絡(luò)帶寬計(jì)量你在過去3天內(nèi)的平均帶寬消耗。每當(dāng)你發(fā)送一個(gè)動(dòng)作或交易都會(huì)暫時(shí)占用一些帶寬資源。

CPU計(jì)量你在過去3天里的對(duì)計(jì)算資源的平均利用情況,單位為毫秒。每當(dāng)你發(fā)送一個(gè)動(dòng)作或交易,也會(huì)暫時(shí)消耗一些CPU資源。

3、EOS資源的分配模型

在EOS區(qū)塊鏈中,網(wǎng)絡(luò)帶寬和CPU資源是采用抵押方式獲取的。分配給你多少帶寬和CPU,取決于你抵押的EOS代幣在過去3天里EOS區(qū)塊鏈系統(tǒng)抵押合約持有的代幣總量中占多大的比例。發(fā)送交易所消耗的網(wǎng)絡(luò)帶寬資源和CPU資源,會(huì)隨時(shí)間流逝自動(dòng)再釋放給你。

EOS中的RAM資源則需要以市場(chǎng)價(jià)格購(gòu)買,該價(jià)格按Bancor算法自動(dòng)調(diào)節(jié)。與CPU和網(wǎng)絡(luò)帶寬資源不同,已經(jīng)占用的內(nèi)存資源不會(huì)自動(dòng)釋放,唯一的釋放辦法是從你的賬戶狀態(tài)存儲(chǔ)中刪除數(shù)據(jù),之后你就可以按市場(chǎng)價(jià)格出售這些空閑的內(nèi)存資源。

4、資源價(jià)格計(jì)算器

要計(jì)算EOS內(nèi)存資源的價(jià)格,需要使用bancor算法。如果你希望學(xué)習(xí)如何在自己的EOS錢包產(chǎn)品中實(shí)現(xiàn)資源的價(jià)格計(jì)算,可以參考這個(gè)EOS錢包開發(fā)教程。

首先用EOS的客戶端工具cleos命令獲取內(nèi)存市場(chǎng)數(shù)據(jù):

$ 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"
  }
}

基于上面的內(nèi)存市場(chǎng)數(shù)據(jù),可以按如下公式計(jì)算內(nèi)存價(jià)格:

內(nèi)存價(jià)格 = 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協(xié)議白皮書中有個(gè)錯(cuò)誤,CW不是故意設(shè)置為50%,詳情參考這里。

網(wǎng)絡(luò)帶寬和CPU資源的價(jià)格依賴于出塊節(jié)點(diǎn),彼此的價(jià)格都不一樣。下面以eosnewyorkio這個(gè)出塊節(jié)點(diǎn)為例說明。

還是先用cleos獲取基礎(chǔ)數(shù)據(jù):

$ 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

計(jì)算公式如下:

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

你可以在這里查看這些資源的實(shí)時(shí)價(jià)格。

5、估算EOS DApp的內(nèi)存資源需求

首先我們估算內(nèi)存資源的需求及成本。參考eos節(jié)點(diǎn)源碼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

這樣得到總計(jì)內(nèi)存需求:

Ram for Dapp = Amount of code + overhead_per_row_pper_index

6、估算EOS DApp的CPU和帶寬資源需求

假設(shè)我們要開發(fā)一個(gè)EOS上的DApp,預(yù)計(jì)每天有1000個(gè)用戶訪問,每個(gè)用戶每天進(jìn)行5個(gè)交易。

通常一個(gè)交易需要消耗200字節(jié)的帶寬和1ms的CPU。因此我們可以得到如下的結(jié)果:

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

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

結(jié)合前面的資源價(jià)格計(jì)算,我們得到如下的DApp資源成本數(shù)據(jù):

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

也就是說,為了運(yùn)營(yíng)這個(gè)DApp,讓它可以支持每天5000人次的訪問,我們每天需要保證合約賬戶上有13個(gè)EOS的資源抵押可用,這就是我們開發(fā)這個(gè)EOS DApp所需要的內(nèi)存、CPU和帶寬資源的估算結(jié)果。如果你希望用熟悉的PHP來(lái)開發(fā)EOS DApp,可以下載這個(gè)EOS PHP開發(fā)包。

到此,關(guān)于“EOS怎么實(shí)現(xiàn)資源價(jià)格計(jì)算器”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

eos
AI