以太坊Truffle框架構建Dapp

想知道更多關於區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】
鏈客,有問必答!!

1.安裝環境
經過node安裝truffle,推薦在ubuntu 14.04下進行開發,window下可能會遇到各類問題。
$ npm install -g truffle  
個人node版本是
npm版本是
下載以後輸入
$ truffle -v  個人版本是:javascript

2.開始構建項目
首先準備一個目錄存放項目
$ mkdir  "你的目錄名"
$cd "你的目錄名"       ---進入目錄
接下來咱們須要使用truffle框架來初始化一個項目
$truffle unbox webpack ---構建一個基於webpack的項目
這裏要注意的是truffle爲了增長開發的靈活性,再也不初始化項目成web應用,若是你使用的是我這個版本,使用原來的truffle init指令生成的項目會缺乏web相關文件,對於新手而言,爲了更直觀的看到開發效果建議選擇webpack。
執行完上面的步驟,咱們的項目就已經構建完成了css

這裏系統提示了相關指令,後面的步驟中咱們也會用到。
3.項目解析前端

個人項目放在剛剛建立的zhao目錄下,你的目錄的名字是你先前取的。
app/   ---這也就是咱們的項目的入口文件了,裏面包括了用於合約交互的javascript,和用於顯示前端的css等靜態文件,合約交互後面會具體細說。
contracts/  ---看名字也知道是用來放合約代碼的,默認會有三個合約,其中有一個叫metacoin的合約。
migrations/  --- 合約部署配置信息
node_modules/ ---項目須要的相關模塊
test/ ---測試文件,暫時用不到這個
4.項目部署
接下來咱們開始正式部署咱們的應用
$truffle migrate  ---這個指令會編譯並部署合約java

能夠看到報錯了,這是由於咱們尚未一個能夠被部署的平臺,其餘老一點的教程裏可能會要你用testrpc,可是這裏咱們只須要用truffle內置的測試平臺就好了。
$truffle developnode

輸入指令後能夠看到在終端運行了一個能夠被部署的服務網絡,默認端口號是9545,和testrpc同樣會自動生成地址以供測試,接下來另開一個終端,cd進入項目目錄,再次執行
$truffle migratewebpack

發現仍是鏈接不上,這是爲何呢?
緣由是項目默認配置鏈接網絡端口是7545,咱們打開truffle.js修改配置便可web

port端口改爲9545,你應該還記得咱們的測試服務就在9545,保存再次在終端輸入
$truffle migratenpm

此次咱們終於成功部署了合約。
5.項目開發
咱們能夠先試一試運行初始準備好了的項目,輸入指令
$npm run devubuntu

打開連接 http://localhost:8080,能夠看到瀏覽器

你可能會發現我和你的頁面有些不同,在You have META這裏個人沒有顯示餘額,你的頁面上這個地方應該會看到有數字,爲何個人沒有呢?f12打開控制檯

會發現有這麼一段話,這是說已經使用瀏覽器內置的web3接口,而你的頁面應該是沒有使用瀏覽器web3接口,而是自動從本地生成的,這是由於我下載了metamask,一個錢包插件,用來部署合約很便捷。

那麼web3是幹什麼用的呢?
web3.js是以太坊提供的一個Javascript庫,它封裝了以太坊的JSON RPC API,提供了一系列與區塊鏈交互的Javascript對象和函數,包括查看網絡狀態,查看本地帳戶、查看交易和區塊、發送交易、編譯/部署智能合約、調用智能合約等,其中最重要的就是與智能合約交互的API。
打開app/avascripts/app.js,直接移到最下面

這一段就是web3接口的引入部分,上面作了一個判斷,若是檢測到瀏覽器內置的web3接口就使用,不然在9545端口自行初始化一個,還記得9585端口上的服務嗎?裏面生成的地址能夠供給web3調用,看到這裏咱們終於明白了這個web版的dapp是怎麼和合約聯繫的了,因此要定製一個本身的web-dapp就能夠經過這個對象做橋樑,搭建屬於本身的dapp。

相關文章
相關標籤/搜索