以太仿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中有转帐记录。

相关文章
相关标签/搜索