之前我們有介紹過智能合約以及用Solidity去編寫一些程式碼,接下來跟著商管學生從零開始學習Dapp吧!
Dapp由D(Decentralized去中心化)和APP組成,先來解釋我們的APP,也就是我們手機中都有的應用程式,拿我購物最常用的蝦X購物APP來說,前端是我們這些消費者會看到的介面,我們能登入我們的帳號,然後找到我們喜歡的商品,最後下單購買;跟前端相對的叫後端,我們輸入的資料會記錄到後端,包含我們消費者的帳密以及我們的購買資料等,前端與後端透過API(應用程式接口)去傳送和接收資料。
了解APP後,我們就可以來了解Dapp了,D代表「去中心化」,說到去中心化就是我們一直在講的區塊鏈的重要特性,如果App等於前端加上後端,那Dapp就是將後端改為區塊鏈,如果是我們之前說的以太坊區塊鏈,Dapp是前端加上智能合約。另外,App的前端與後端透過API溝通,Dapp網頁前端則是透過ABI(應用程式二進制介面)和區塊鏈上的智能合約溝通(交易),你只要簡單將ABI理解為前端與智能合約的接口,因為使用ABI溝通不便,開發Dapp時通常會使用web3.js或Ethjs提供的API來和智能合約溝通。
要使用Dapp需要使用支援Dapp的瀏覽器,我們將透過在Chrome上安裝 MetaMask擴充功能套件,來讓我們的Chrome瀏覽器支援DApp。
去中心化與中心化的差別在我們剛開始介紹區塊鏈時有提過,這邊我們以遊戲的例子幫大家回顧一下,傳統的遊戲App,所有資料都儲存在遊戲伺服器中(中心化),遊戲開發商可以任意修改遊戲規則;相反的,去中心化的遊戲,例如: CryptoKitties(以太貓),所有資料都儲存在分佈式的網絡中(去中心化),所有規則公開透明且無法篡改,在CryptoKitties遊戲中,每隻虛擬貓咪都是獨一無二不可變更的個體,玩家可以創造、餵養、購買及出售區塊鏈中的虛擬貓咪(CryptoKitties),今天即使CryptoKitties的營運商關門大吉,分佈式的網絡也能讓遊戲繼續存活在區塊鏈上。
接下來,我們要來做出我們第一個Dapp,我們需要安裝一些工具,包括Node.js、npm、Truffle、Ganache和Metamask,那我們明天見~