這篇文章主要介紹“EOS怎么實現(xiàn)資源價格計算器”,在日常操作中,相信很多人在EOS怎么實現(xiàn)資源價格計算器問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”EOS怎么實現(xiàn)資源價格計算器”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
吳起網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
在EOS區(qū)塊鏈上,有三種類型的資源供EOS賬號利用:
狀態(tài)存儲:RAM,即內(nèi)存
帶寬及日志存儲:Bandwidth,即網(wǎng)絡(luò)帶寬
計算:CPU
在EOS區(qū)塊鏈中,內(nèi)存/RAM用于保存區(qū)塊鏈的狀態(tài),例如交易委托賬本和賬戶余額等。這些狀態(tài)通常由應(yīng)用程序邏輯來訪問。
網(wǎng)絡(luò)帶寬計量你在過去3天內(nèi)的平均帶寬消耗。每當你發(fā)送一個動作或交易都會暫時占用一些帶寬資源。
CPU計量你在過去3天里的對計算資源的平均利用情況,單位為毫秒。每當你發(fā)送一個動作或交易,也會暫時消耗一些CPU資源。
在EOS區(qū)塊鏈中,網(wǎng)絡(luò)帶寬和CPU資源是采用抵押方式獲取的。分配給你多少帶寬和CPU,取決于你抵押的EOS代幣在過去3天里EOS區(qū)塊鏈系統(tǒng)抵押合約持有的代幣總量中占多大的比例。發(fā)送交易所消耗的網(wǎng)絡(luò)帶寬資源和CPU資源,會隨時間流逝自動再釋放給你。
EOS中的RAM資源則需要以市場價格購買,該價格按Bancor算法自動調(diào)節(jié)。與CPU和網(wǎng)絡(luò)帶寬資源不同,已經(jīng)占用的內(nèi)存資源不會自動釋放,唯一的釋放辦法是從你的賬戶狀態(tài)存儲中刪除數(shù)據(jù),之后你就可以按市場價格出售這些空閑的內(nèi)存資源。
要計算EOS內(nèi)存資源的價格,需要使用bancor算法。如果你希望學習如何在自己的EOS錢包產(chǎn)品中實現(xiàn)資源的價格計算,可以參考這個EOS錢包開發(fā)教程。
首先用EOS的客戶端工具cleos命令獲取內(nèi)存市場數(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)存市場數(shù)據(jù),可以按如下公式計算內(nèi)存價格:
內(nèi)存價格 = 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é)議白皮書中有個錯誤,CW不是故意設(shè)置為50%,詳情參考這里。
網(wǎng)絡(luò)帶寬和CPU資源的價格依賴于出塊節(jié)點,彼此的價格都不一樣。下面以eosnewyorkio這個出塊節(jié)點為例說明。
還是先用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
計算公式如下:
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
你可以在這里查看這些資源的實時價格。
首先我們估算內(nèi)存資源的需求及成本。參考eos節(jié)點源碼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
這樣得到總計內(nèi)存需求:
Ram for Dapp = Amount of code + overhead_per_row_pper_index
假設(shè)我們要開發(fā)一個EOS上的DApp,預計每天有1000個用戶訪問,每個用戶每天進行5個交易。
通常一個交易需要消耗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é)合前面的資源價格計算,我們得到如下的DApp資源成本數(shù)據(jù):
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的資源抵押可用,這就是我們開發(fā)這個EOS DApp所需要的內(nèi)存、CPU和帶寬資源的估算結(jié)果。如果你希望用熟悉的PHP來開發(fā)EOS DApp,可以下載這個EOS PHP開發(fā)包。
到此,關(guān)于“EOS怎么實現(xiàn)資源價格計算器”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
標題名稱:EOS怎么實現(xiàn)資源價格計算器
分享路徑:http://weahome.cn/article/pdcdph.html