以太仿DApp開發環境搭建

在網上找了些以太仿的資料,是node.js寫的,之前也瞭解過node.js,正好也可以用上。本篇主要學習以太仿DApp開發環境搭建。

一、安裝 DApp 開發環境

1.1安裝 Node.js

首先下載node.js:https://nodejs.org/en/,下載後直接安裝即可。安裝完畢,打開一個控制檯窗口,可以使用 node 了。這裏我下載的是10.15.3版本,安裝完成之後使用node -v驗證是否安裝成功。

1.2 安裝geth、ganache

下載 https://gethstore.blob.core.windows.net/builds/geth-windows-amd64-1.8.3-329ac18e.exe 安裝geth。

使用命令行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進行安裝。

1.3安裝 solidity 編譯器

使用npm install –g solc安裝,然後使用solcjs --version進行驗證是否安裝成功。

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.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.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中有轉賬記錄。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章