天天看點

《區塊鍊DAPP開發入門、代碼實作、場景應用》筆記1——天外飛仙DAPP

圖1.15展示了一個DAPP的全景圖,該系統架構圖包含了從使用者通過可視化界面發起操作到以太坊狀态機發生改變的全流程。首先使用者通過Web界面或者手機APP,将操作資料發送到一個傳統的業務伺服器,該業務伺服器是傳統網際網路中心化的伺服器,但是與傳統系統不同的是,該系統沒有像傳統網際網路設計那樣将資料放入中心化的資料庫存儲,而是通過一個Web 3.0接口,将資料傳送到了以太坊區公鍊。

《區塊鍊DAPP開發入門、代碼實作、場景應用》筆記1——天外飛仙DAPP

                              圖1.15 DAPP架構圖

該接口是一個JSON RPC協定,該協定有很多代碼實作。目前最流行的是運作在Web容器中的Web3.js子產品。Solidity程式設計語言經過編譯之後,除了交易需要的合約初始化代碼之外,還有ABI接口等描述檔案,Web3.js通過這些描述檔案,可以建構與以太坊智能合約虛拟機進行通訊的子產品,通過JS(全稱JavaScript,下文都簡稱JS)代碼将使用者的操作資料傳入以太坊公鍊上的合約位址,智能合約虛拟機會根據函數簽名和加載的函數參數,在虛拟機内執行編譯成EVM Code的智能合約。在第6章的DAPP案例講解中,會對Web3.js的設計有詳細的講解。

如果涉及到區塊鍊資料的讀取,則虛拟機會讀取區塊鍊上的區塊資料,如果虛拟機的指令代碼會修改以太坊公鍊的狀态,那麼通過調用相關的狀态機指令,并消耗一定的GAS之後,就可以将修改操作送出到以太坊區塊鍊公鍊網絡中,這些操作往往是以交易的方式展現。

當虛拟機執行結束,其對區塊鍊狀态的修改會被礦工打包,當狀态修改被全網共識,那麼虛拟機對公鍊網絡的狀态修改也相應成功,通過查詢相關的執行結果,将執行狀态傳回給使用者互動系統,這樣終端使用者就可以通過互動系統,檢視DAPP操作的執行結果。

2020區塊鍊各種應用都上馬了,跟我一起學《區塊鍊DAPP開發入門、代碼實作、場景應用》吧。

《區塊鍊DAPP開發入門、代碼實作、場景應用》筆記1——天外飛仙DAPP