圖解以太坊智能合約中的概念

一、總體架構(gòu)


以太坊層架構(gòu)示意圖

二、區(qū)塊鏈_區(qū)塊_賬戶_交易_出塊時間_塊高的關(guān)系

區(qū)塊鏈_區(qū)塊_賬戶_交易_出塊時間_塊高的關(guān)系示意圖

比特幣出塊時間是平均10分鐘,而以太坊約是15秒。

賬戶與賬戶之間的多個轉(zhuǎn)賬交易(Transaction),被打包為了一個區(qū)塊,多個區(qū)塊通過一定的算法鏈接起來,就成了區(qū)塊鏈,這是圖中要表達(dá)的意思。

三、以太坊分布式網(wǎng)絡(luò)


以太坊分布式網(wǎng)絡(luò)

以太坊的任意一個節(jié)點都能是該網(wǎng)絡(luò)的入口和出口。

四、交互


和以太坊的交互

開發(fā)者通過代碼和來和以太坊網(wǎng)絡(luò)進(jìn)行交互,普通用戶則通過各種DAPP來和以太坊網(wǎng)絡(luò)進(jìn)行交互。

五、以太坊賬戶


以太坊賬戶

以太坊賬戶包含了地址、公鑰、私鑰。Rinkeby為賬戶的測試環(huán)境,主網(wǎng)為線上環(huán)境。

六、賬戶和錢包的關(guān)系


區(qū)塊鏈賬戶和銀行賬戶的對比圖

通過對比我們能看出區(qū)塊鏈去中心化的輪廓。

七、合約賬戶和普通賬戶的區(qū)別


合約用戶和普通用戶

先是開發(fā)者通過合約用戶來定義智能合約的業(yè)務(wù)邏輯,然后普通用戶才能利用智能合約完成各個賬戶之間的交易,最后合約與合約之間的交互使得整個系統(tǒng)能有序進(jìn)行。


八、智能合約開發(fā)工作流


智能合約開發(fā)工作流

Remix:以太坊官方推薦的智能合約開發(fā)IDE,適合新手,可以在瀏覽器中快速部署測試智能合約。

Visual Studio Code :(簡稱VS Code/VSC) 是一款免費(fèi)開源的現(xiàn)代化輕量級代碼編輯器,支持幾乎所有主流的開發(fā)語言的語法高亮、智能代碼補(bǔ)全、自定義熱鍵、括號匹配、代碼片段、代碼對比 Diff、GIT 等特性,支持插件擴(kuò)展,并針對網(wǎng)頁開發(fā)和云端應(yīng)用開發(fā)做了優(yōu)化。

Node.js :是一個基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。使用了一個事件驅(qū)動、非阻塞式 I/O 的模型,使其輕量又高效。它的包管理器 npm,是全球最大的開源庫生態(tài)系統(tǒng)。

九、基于 Node.js 的智能合約工作流


Node.js 的智能合約工作流

上一篇文章就是這個圖中描述的業(yè)務(wù)邏輯的實現(xiàn)。

十、web3.js的橋梁作用


webjs.的橋梁作用

web3.js是以太坊提供的一個Javascript庫,它封裝了以太坊的JSON、 RPC、API,提供了一系列與區(qū)塊鏈交互的Javascript對象和函數(shù),包括查看網(wǎng)絡(luò)狀態(tài),查看本地賬戶、查看交易和區(qū)塊、發(fā)送交易、編譯/部署智能合約、調(diào)用智能合約等,其中最重要的就是與智能合約交互的API。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容