若是你但願立刻開始學習以太坊DApp開發,能夠訪問匯智網提供的出色的在線互動教程:node
在終端中執行如下命令,肯定是32位架構仍是64位架構:linux
~$ uname –p x86_64
若是你看到輸出x86_64,那麼就是64位系統,不然是32位。webpack
確保你安裝了下載工具wget:web
~$ wget –V GNU Wget 1.17.1 built on linux-gnu
若是尚未安裝wget,使用apt-get來安裝npm
~$ sudo apt-get install wget
首先根據你的linux是32位仍是64位,分別下載不一樣的預編譯版本,咱們使用官方長期支持的8.10.0LTS版本: 64位:編程
~$ wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.gz
32位:json
~$ wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x86.tar.gz
而後解壓到當前目錄,以64位爲例:ubuntu
~$ tar zxvf node-v8.10.0-linux-x64.tar.gz
而後接下來修改.bashrc來設置相關的環境變量:windows
~$ echo "export NODE_HOME=$HOME/node-v8.10.0-linux-x64" >> .bashrc ~$ echo "export NODE_PATH=$NODE_HOME/lib/node_modules" >> .bashrc ~$ echo "export PATH=$NODE_HOME/bin:$PATH" >> .bashrc
最後從新載入.bashrc(或者從新登錄)來使node生效:瀏覽器
~$ source .bashrc
如今,你可使用node了:
~$ node –v v8.10.0
爲了快速開發和測試以太坊DApp,咱們一般使用以太坊節點仿真器來模擬區塊鏈,最流行的節點仿真器就是Ganache,以前被稱爲TeseRPC。
在終端執行如下命令:
~$ npm install –g ganache-cli
安裝完畢後,執行命令驗證安裝成功:
~$ ganache-cli Ganache CLI v6.0.3 (ganache-core: 2.0.2)
要了解ganache命令行的詳細用法,能夠查看以太坊ganache CLI命令行參數詳解
solidity是開發以太坊智能合約的編程語言,不熟悉的話能夠查看以太坊solidity開發語言簡介。
~$ npm install –g solc
安裝完畢後,執行命令驗證安裝成功
~$ solcjs –version 0.40.2+commit.3155dd80.Emscripten.clang
~$ npm install –g web3@0.20.2
安裝驗證:
~$ node –p 'require("web3")' {[Function: Web3] providers:{…}}
執行如下命令安裝truffle開發框架:
~$ npm install –g truffle
驗證安裝:
~$ truffle version Truffle v4.1.3 (core 4.1.3)
執行如下命令安裝webpack:
~$ npm install –g webpack@3.11.0
驗證安裝
~$ webpack –v 3.11.0
執行如下命令建立項目目錄並進入該目錄:
~$ mkdir demo ~$ cd demo
而後用webpack模版初始化項目骨架結構:
~/demo$ truffle unbox webpack Downloading… Unpacking… Setting up… Unbox successful. Sweet!
執行如下命令安裝nmp包:
~/demo$ npm install
truffle.js中,修改port爲8545,由於ganache-cli在8545端口監聽:
module.exports = { networks:{ development: { … port: 8545 … } } }
執行如下命令啓動節點仿真器,以便部署合約並執行交易:
~/demo$ ganache-cli
執行如下命令編譯項目合約:
~/demo$ truffle compile
執行如下命令來部署合約:
~/demo$ truffle migrate
執行如下命令來啓動DApp:
~/demo$ npm run dev
在瀏覽器裏訪問http://localhost:8080便可
若是你但願從別的機器也能夠訪問你的DApp應用,修改一下package.json:
{ scripts:{ "dev": "webpack-dev-server –-host 0.0.0.0" } }