以太仿DApp開發環境搭建

在網上找了些以太仿的資料,是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中有轉帳記錄。

相關文章
相關標籤/搜索