在網上找了些以太仿的資料,是node.js寫的,以前也瞭解過node.js,正好也能夠用上。本篇主要學習以太仿DApp開發環境搭建。node
1、安裝 DApp 開發環境webpack
1.1安裝 Node.jsgit
首先下載node.js:https://nodejs.org/en/,下載後直接安裝便可。安裝完畢,打開一個控制檯窗口,可使用 node 了。這裏我下載的是10.15.3版本,安裝完成以後使用node -v驗證是否安裝成功。github
1.2 安裝geth、ganacheweb
下載 https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.8.3-329ac18e.exe 安裝geth。shell
使用命令行npm install –g ganache-cli來安裝ganache,以後使用ganache-cli命令驗證是否安裝成功。若是是win10能夠下載安裝包,https://github.com/trufflesuite/ganache/releases/download/v1.1.0-beta.1/Ganache.appx ,文件是appx格式的,在安裝的過程當中若是打不開能夠以管理員使用powershell 執行Add-AppxPackage D:\Downloads\Ganache-2.0.0.appx進行安裝。npm
1.3安裝 solidity 編譯器json
使用npm install –g solc安裝,而後使用solcjs --version進行驗證是否安裝成功。windows
1.4安裝web3跨域
Web3 的安裝過程使用了 git,所以須要先安裝 windows 版的 git 命令行。https://github.com/git-for-windows/git/releases/download/v2.16.2.windows.1/Git-2.16.2-64-bit.exe 。使用npm install –g web3,而後使用node –p 'require("web3")'進行驗證是否安裝成功。
1.5安裝 truffle 框架
使用npm install –g truffle,而後使用truffle.cmd version進行驗證是否安裝成功。
1.6 安裝 webpack
使用npm install –g webpack,而後使用webpack –v進行驗證是否安裝成功。
2、運行私鏈節點
2.1 創世塊配置
建立一個節點目錄 node1,並在其中建立私鏈的創世塊配置文件:
{ "config": { "chainId": 7878, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "difficulty": "200", "gasLimit": "2100000", "alloc": { "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" }, "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" } } }
2.2初始化私鏈節點
執行 geth 的 init 命令初始化私鏈節點:geth --datadir .\data init private.json。這會在當前目錄下建立 data 目錄,用來保存區塊數據及帳戶信息:
2.3啓動私鏈節點
從指定的私鏈數據目錄啓動並設定一個丌同的網絡編號來啓動節點:geth --rpc --datadir .\data --networkid 7878 console。
rpcaddr 參數用來聲明節點 RPC API 的監聽地址,設爲 0.0.0.0 就能夠從其餘機器訪問API 了;rpccorsdomain 參數是爲了解決 web3 從瀏覽器中跨域調用的安全限制問題。
這裏能夠把初始化和啓動寫在cmd文件中,下次就能夠執行運行。
2.4帳戶管理
在 geth 控制檯,使用 personal 對象的 newAccount()方法建立一個新帳戶,參數爲你本身選擇的密碼,輸出就是新建立的帳戶地址(公鑰)。geth 會保存到數據目錄下的 keystore 文件中。使用 personal 對象的 getBalance()方法獲取挃定帳戶的餘額,參數爲帳戶地址。這裏查詢了private.json中初始化時設置帳號的餘額爲初始化時的數值。
使用miner.start(1)命令進行挖礦,等待一段時間以後使用miner.stop()中止挖礦,再查詢eth.getBalance(eth.accounts[0])帳戶,能夠看到餘額已經有好多了。
3、構建示例項目
3.1 新建 DApp 項目
這裏在DApp目錄下新建了demo目錄,在該目錄下執行truffle.cmd unbox webpack,以後會自動生成下面的文件。
3.2安裝項目依賴的 NPM 包
在E:\DApp\demo\app目錄下執行npm install命令安裝npm包,若是報未能加載 Visual C++ 組件「VCBuild.exe」錯誤,須要執行npm install --global --production windows-build-tools (全局安裝windows構建工具)。
3.3編譯合約
執行命令truffle.cmd compile編譯項目合約。這裏使用的是ganache模擬器來模擬geth,因此須要修改truffle-config.js中的配置,ganache端口爲7545,networkid=5777.因此設置development的port爲7545,network_id爲5777.
3.4部署合約
使用truffle.cmd migrate命令來部署合約。
部署成功以後,能夠在ganache中看到本來balance=100eth的如今變成的99.98eth,tx acount爲5,在transactions中有轉帳記錄。