国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

EOS內存即RAM如何買賣

ShevaKuilin / 1769人閱讀

摘要:多索引數據庫是中的一種數據結構,它根據范圍的定義方式提供存儲數據的靈活性。例如,每個帳戶已存儲在合約中定義的多索引數據庫中的數,該合約由定義范圍的每個帳戶的一小塊組成。

對于EOS RAM的來說什么最重要呢?我們經常在每天的數字貨幣和區塊鏈相關新聞中看到EOS旁邊的RAM這個詞,但是無論如何我們應該關注它的價格,為什么要關注它的價格,即使是那些只想深入了解智能合約開發的人也需要這樣嗎?Eos中基本上有三種類型的資源:帶寬(Network),計算和計算積壓(CPU)和狀態存儲(RAM)。RAM本質上是為智能合約中調用的每個交易提供資源的gas,不像磁盤和CPU是通過token值按比例獲得的資源,RAM是需要從eosio購買的。RAM的價格由Bancor算法預先確定。Bancor算法將動態地促進當前RAM的供應和供應的價格基礎并使其達到市場均衡。因此,所有買賣ram的交易都是與eosio.ram的單方面交易。次級市場也激勵那些沒有使用它的RAM儲備將其出售給需要它們的人。因為Eosio支持免費的用戶理念,所以運行網絡的負擔落在開發人員身上。我們需要為智能合約預留足夠的RAM才能在Eos網絡上正常運行。

購買RAM

在EOS平臺上的整個智能合約開發過程中,我們可能會遇到這樣一種情況:我們分配的RAM不符合部署合同的要求。在這種情況下,我們需要額外購買的帶有EOS令牌的ram才能繼續進行合同部署。整個過程可以使用Eos-io提供的CLI工具,即keosd和cleos來完成。在我們之前的文章中,我們已經完成了設置本地開發環境以測試智能合約的過程。如果你已經按照文章中的那些步驟進行操作,我們可以使用相同的工具與主網和測試網進行交互,并進行一些配置更改。

讓我們首先將我們的cleos應用程序指向測試網絡節點而不是本地運行的nodeosd。我們可以創建一個額外的別名來注冊這個配置。

alias cleos-test="docker exec -i keosd /opt/eosio/bin/cleos -u http://jungle.eos9cat.com:8888 --wallet-url http://localhost:8900"

在上面的命令中,我們創建了別名cleos-test,以便與eos9cat提供的eos測試網絡節點快速交互。請注意,我們仍然依賴我們的本地錢包應用程序來處理我們的私鑰。 只要我們在解鎖錢包中導入相應的私鑰即可。

提示:如果要持久保存命令,可以將命令放在~/.bashrc文件中(如果你在linux上)和~/.bash_profile(用于mac)。

有時,當你部署包含更復雜邏輯的應用程序合約時,可能會收到類似于上述屏幕截圖的錯誤消息,暗示智能合約帳戶沒有足夠的RAM來部署合同。在這種情況下,我們必須從eosio.ram購買更多的ram。

我們可以通過發出以下命令來快速檢查我們的ram分配:

cleos-test get account ${accountname}

memory部分下的quota屬性指示帳戶分配的內存量。

現在我們知道我們有權獲得多少ram,我們怎么可能知道我們需要多少Ram才能部署我們的智能合約?由于Eosio區塊鏈使用Web Assembly執行用戶生成的應用程序和代碼,因此我們可以通過將*.wasm*.abi文件的大小相加來粗略估計執行智能合約所需的千字節數。除了計算粗略估計之外,我們還必須確定購買ram所需的Eos代幣數量。

Eos區塊鏈平臺依靠Bancor算法通過單邊交易模型促進二級ram市場,我們可以通過查詢系統合約公開的ram市場表并執行一些簡單的計算來確定Eos ram價格。

要獲得EOS/KiB,我們需要將quote.balance(連接器余額)除以base.balanceram(token不足支付的部分),最后將該值乘以1024(即quote.balance/base.balance)*1024。在我想要部署的智能合約的示例中,需要大約100KiB,這將花費大約31.70 EOS token。 然后,我們可以通過Cleos發出以下命令來繼續實際的交易。

cleos-test system buyram -k ${payer} ${reciever} amount

k標志將指示金額參數表示要購買的KiB金額,系統合約交易將自動從付款人的賬戶中扣除適當數量的EOS token。 如果沒有kflag,金額將默認為花費的EOS token數量。 同樣,根據ram價格,將向賬戶中添加適當數量的ram。

如果我們現在再次部署合約,它應該成功。

出售RAM

對于帳戶當前占用的不需要的ram,可以通過Banchor算法確定的價格通過系統合約交換某些EOS token的資源。出售ram和在eos區塊鏈上購買ram的過程類似。

cleos-test system sellram ${account} bytes

成功的交易看起來與此類似:

持久存儲

由于其靈活性,RAM可以說是Eos區塊鏈平臺上最受歡迎的資源。RAM不僅可以用于存儲中間計算狀態,還可以用作持久存儲。多索引數據庫是Eos中的一種數據結構,它根據范圍的定義方式提供存儲數據的靈活性。多索引數據庫將以表格格式存儲持久數據。實際上,與許多其他流行的智能合約平臺不同,Eos智能合約中的交易不能返回任何值或變量,這意味著RAM捕獲的任何數據都不能通過交易返回給調用者。為了獲得對智能合約中的變量值的訪問,例如某個計算和交易的結果,數據需要通過帶有范圍的多索引數據庫表進行更新,通常以調用者的帳戶名稱或智能合約本身的帳戶名稱的形式存儲數據的關聯鏈接,然后可以通過具有相應合同名稱,范圍和表名稱的gettable API檢索數據。

例如,每個帳戶已存儲在eosio.token合約中定義的多索引數據庫中的EOS token數,該合約由定義范圍的每個帳戶的一小塊RAM組成。我們可以使用以下命令直接從db檢索某個帳戶擁有的token數量:

cleos-test get table eosio.token ${account} accounts

上述命令中的表名是accounts,范圍是個人帳戶名。將帳戶余額信息與實際擁有它們的帳戶分配是合乎邏輯的。另一方面,如果我們希望檢索有關EOS token本身的信息,我們將需要查看具有不同表的另一個范圍,即使信息是在同一智能合約中已經編碼:

cleos-test get table eosio.token EOS stats

確定范圍和表名稱可能很棘手,特別是對于其他人生成的合約,通常可以通過查看合約的abi來快速檢索表名。

范圍更難,但可以通過查看在代碼中對多索引數據庫的引用查看參數來確定。

第一個帶下劃線的部分顯示對stats表的引用是使用sym參數進行的,該參數表示token的SYMBOL;因此,表的范圍是token的SYMBOL。

第e二個帶下劃線的部分描述了在交易期間減去余額時引用帳戶表的行。這行代碼暗示表帳戶的范圍是帳戶名稱。有關在智能合約中使用多索引數據庫的更多教程和信息,請繼續關注我們的另外一篇文章。

升級合約

由于智能合約本身與存儲在本地磁盤上的多索引數據庫之間的連接僅僅是一個參考鏈接,因此該功能與使用同一帳戶多次部署合約時一起授予,以便升級eos生態系統中的智能合約。只要定義多索引數據庫的關鍵功能在新舊智能合約中相同,就可以在新的智能合約中對數據進行引用。

在某些情況下,你甚至可能會發現通過部署空合約或大小明顯較小的合同來釋放RAM以進行銷售是有用的,同時仍然將與前合同相關的數據保留在持久存儲上。

分享一個交互式的在線編程實戰,EOS智能合約與DApp開發入門

EOS教程

本課程幫助你快速入門EOS區塊鏈去中心化應用的開發,內容涵蓋EOS工具鏈、賬戶與錢包、發行代幣、智能合約開發與部署、使用代碼與智能合約交互等核心知識點,最后綜合運用各知識點完成一個便簽DApp的開發。

這里是原文

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24292.html

相關文章

  • 【張其中】兩周暴漲54倍的EOS內存,背后的Dapp是如何進行產品設計的?

    摘要:特別是內存,它將強烈的影響區塊鏈的運行速度,過小會造成區塊鏈網絡的嚴重擁堵。伴隨著區塊鏈對當今社會的逐步滲透,當達到一定的臨界點之后,這種影響將會是驚人的,我們拭目以待。 作者介紹:張其中,中科院碩士,連續創業者,樂家app創始人,花貓快問聯合創始人,鏈寶科技聯合創始人,關注EOS公鏈生態發展,致力于基于EOS的DAPP應用實踐與產品研究。 最近EOS又刷眼球了。讓EOS刷眼球的是EO...

    cpupro 評論0 收藏0
  • EOS入門指南——PART3 如何創建賬戶

    摘要:最后一步付款和比特幣以及以太坊不一樣的是,在創建賬戶是有成本的,這也就是為什么我們需要一個賬戶才能創建賬戶的原因找個人來買單。 之前我們學習了如何編譯EOS程序,以及如何連接到EOS主網,接下來我們要談一談大家最關心的,如何創建自己的EOS賬戶。 摘要 這篇我們會學習如何創建錢包、秘鑰對、主網賬戶,向大家介紹一些實用工具。最重要的是,我們會學習到在EOS里,公鑰和賬戶到底有什么區別。 ...

    oliverhuang 評論0 收藏0
  • EOS入門指南PART6——別忙著開發,先來看看智能合約數據是怎么存的

    摘要:允許智能合約定義自己的私有數據庫表。有了多級索引,智能合約就具備了操作類似數據庫模塊的功能。因此雖然只有一列,但是的靈活性絲毫不亞于傳統的數據表。 上一章我們學習了開發智能合約之前需要知道的必要概念: 什么是webAssembly以及它在智能合約上下游中的位置; 什么是ABI以及怎樣使用eosiocpp工具產生ABI和wasm、wast hello智能合約的簡單入門:部署和調用 ...

    ranwu 評論0 收藏0

發表評論

0條評論

ShevaKuilin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<