EOS智能合約與DApp開發入門

EOS的是Block.One主導研發的一個區塊鏈底層公鏈系統,它專門爲支撐商業去中心化 應用(Decentralized Application)而設計,其代碼開源。前端

比特幣被稱爲區塊鏈1.0,由於它開闢了數字加密貨幣的天下,走出了從0到1的決定性一步。算法

以太坊被稱爲區塊鏈2.0,由於它提供了可運行智能合約的圖靈完備的虛擬機,帶來了無限的可能性。服務器

而EOS則被稱爲區塊鏈3.0,爲何? 兩個字:性能app

EOS的定位正是其首頁的口號:框架

英文:The most powerful infrastructure for decentralized applications。工具

中文:最強大的去中心化應用基礎設施。性能

EOS指望作增強版的以太坊,一個高吞吐量的智能合約平臺。學習

以太坊雖然功能齊備,但受制於其設計選擇,15秒的出塊速度致使交易吞吐量 遠遠不能達到大規模實用的程度,大約只有30~40TPS(交易/秒)。而EOS則選擇了不一樣的技術路線,目標是達到可觀的百萬TPS——考慮到Visa實際的處理速度才1700TPS,這一目標的確至關誘人。區塊鏈

EOS的共識機制

比特幣和以太坊之因此吞吐量這麼低,是受制於其設想的應用場景以及針對該場景所選擇的共識機制——這二者都假設系統運行的環境徹底不可信,所以都採用了工做量證實(Proof of Work)這種共識機制。加密

共識,顧名思義,就是你們對某件事達成統一的認識——對於 區塊鏈而言,某件事指的就是對交易的確認——任何一個節點要提交交易,都須要你們承認。

比特幣和以太坊目前所採用的PoW機制是傳奇人物中本聰的設計。在這種機制下,礦工們爲了得到記帳權和數字幣獎勵,須要不停挖礦來尋找合規的哈希值,經過對哈希值的共識來對交易數據進行確認和打包。PoW沒有準入門檻,任何節點都 有平等的權利參與記帳——固然,勝出的機率與算力有關:

pow vs. dpos

EOS則假設環境並不是徹底不可信的,所以它採用的委託權益證實(Delegated Proof of Stake)機制,相似於咱們熟悉的表明大會制度——不須要每一個節點都參與共識的達成,只需那些選出來的節點去達成共識就能夠了。因爲能夠相信這些節點,EOS的DPoS機制也再也不須要解哈希難題來獲取記帳權,它讓持有EOS幣的人能夠經過持續的投票系統來選擇21個做爲表明的超級節點——出塊節點(Block Producer),由超級節點輪流進行交易數據確認和記帳,並給予其必定的獎勵。

顯然,讓21個節點達成共識,確定比1萬個節點達成共識要高效多了。

EOS的資源利用機制

咱們知道,比特幣和以太坊中的交易手續費機制,其目的就是防止大量垃圾交易使得系統擁堵。

而EOS則經過基於膨脹的獎勵機制(每一年增發1%,總增發不超過5%)徹底取消了 交易手續費,這在下降了系統使用的成本同時也帶來一個不可避免的問題:

如何避免系統資源的濫用?

EOS設計了一種新的資源使用機制:根據帳戶中EOS通證的數量來分配系統資源。

CPU與帶寬:抵押/贖回

在EOS的模型中,CPU與帶寬採用抵押的方式:按抵押的EOS通證比例分配CPU與帶寬。例如,若是你持有全網1%的EOS通證,那就能夠抵押這些通證來得到全網1%的CPU和帶寬。這樣就能夠隔離開全部的DAPP,防止資源競爭和惡意的DDOS供給,不管其餘的DAPP如何擁堵, 你本身的帶寬都不受影響。

當再也不須要CPU與帶寬時,抵押的EOS通證能夠贖回,在贖回的時候,存在三天的贖回期。

內存:買入/賣出

與CPU和帶寬不一樣,要將數據存儲在區塊鏈中,你須要基於當前的RAM市場價格,用EOS通證買入RAM,才能得到必定數量的存儲字節。當你再也不須要內存時,也能夠將內存以當前的RAM市場價格 賣出獲得EOS通證:

EOS ram price

RAM的價格是基於班科(Bancor)算法,也就是說是由市場供需調節的:若是RAM供不該求,則買入RAM時就須要更多的EOS通證,而這時賣出RAM也能得到更多的EOS通證。

內存是消耗資源,不可贖回,只能買賣。以EOS上發幣爲例,目前發幣須要20M的內存,一個EOS可買20KB,按目前的存儲價格發一個幣須要消耗1000個EOS。這是EOS內存消耗的剛需來源。

課程概述

本課程面向對EOS去中心化應用開發感興趣的朋友,課程內容涵蓋EOS DApp開發的核心概念、智能合約的開發與部署以及前端頁面與EOS區塊鏈如何交互,並最終完成一個基於React和EOS的完整Dapp的開發。

第一章:進入EOS世界

瞭解EOS的定位與特色、共識機制、付費計算模型等核心概念。

第二章:Hi EOS

瞭解EOS節點的軟件總體框架以及節點服務器、錢包服務器和命令行工具的做用, 學習配置、啓動EOS節點服務器和錢包服務器的方法,初步瞭解命令行工具的使用方法。

第三章:錢包、密鑰與帳戶

理解EOS中與我的身份相關的三個核心概念:錢包、密鑰與帳戶,學習使用命令行工具 建立錢包、密鑰與帳戶的方法。

第四章:智能合約的開發與交互

瞭解智能合約的概念與做用,學習EOS智能合約的編寫和編譯,學習使用命令行工具 部署合約並與合約交互。

瞭解EOS智能合約中狀態的持久化機制,學習使用多索引表保存合約狀態。

第五章:發行本身的代幣

學習在EOS上發行代幣的原理和實現機制,並經過實際操做,掌握如何 使用命令行工具進行代幣的發行、轉帳和餘額查看等操做。

第六章:使用代碼與智能合約交互

理解應用與EOS區塊鏈交互的原理,學習利用JSON RPC接口和eosjs封裝庫來 訪問EOS區塊鏈。

第七章:實戰便籤DApp開發

綜合運用EOS知識,使用React完成一個EOS便籤去中心化應用,學習從需求分析到 代碼實現的完整過程。

想學的抓緊,課程地址:EOS教程

相關文章
相關標籤/搜索