为什么80%的码农都做不了架构师?>>>
1、Geth是什么?
Geth 又名Go Ethereum. 是以太坊协议的三种实现之一,由Go语言开发,完全开源的项目。Geth 可以被安装在很多操作系统上,包括Windows、Linux、Mac的OSX、Android或者IOS系统。
Geth官网:https://geth.ethereum.org/
Geth的Github地址:https://github.com/ethereum/go-ethereum
Geth是以太坊协议的具体落地实现,通过Geth,你可以实现以太坊的各种功能,如账户的新建编辑删除,开启挖矿,ether币的转移,智能合约的部署和执行等等。
2、Geth安装
主要讲解Windows 环境下的Geth安装,下载Windows-Geth安装包直接安装即可:
https://geth.ethereum.org/downloads/
下载后双击安装,安装完成后Geth会自己配置环境变量,
在命令行中执行 geth version 查看到版本即安装成功,如下:
C:\Users\Administrator>geth version
Geth
Version: 1.8.3-stable
Git Commit: 329ac18ef617d0238f71637bffe78f028b0f13f7
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.10
Operating System: windows
GOPATH=
GOROOT=C:\go
3、使用Geth启动以太坊私有链
新建工作目录文件夹,例如:Gth,在此文件下新建创世块文件:genesis.json,内容如下:
{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x40000",
"extraData" : "",
"gasLimit" : "0xffffffff",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc": { }
}
切换回命令行,执行命令,制造创世区块
geth --datadir "./" init genesis.json
创建以太坊私有链
geth --datadir "./" --nodiscover console 2>>geth.log
4、使用Geth对账户进行操作
//查看账户
eth.accounts
//新建账户,ruoli为密码
personal.newAccount("ruoli")
//查看以太币数量
acc0 = eth.accounts[0]
eth.getBalance(acc0)
//开始挖矿
miner.start()
//停止挖矿
miner.stop()
5、安装Remix
强烈建议新手使用Remix来进行开发,Remix是一个基于浏览器的Solidity编译部署环境,就可以不用安装Solidity,在线Remix连接如下:http://remix.ethereum.org
在线环境由于网络的原因可能打开比较慢,也可以在本地安装Remix,本地源码安装步骤较为复杂,使用源码安装Remix准备工作如下
- 在Github上下载最新的Geth源码
https://github.com/ethereum/remix-ide
- 最新版本Node.js
http://nodejs.cn/download/
- 安装最新版本Git
https://gitforwindows.org/
- 安装最新版本wget
https://eternallybored.org/misc/wget/
查看wget版本:wget -V
- 安装python 2.7 版本
https://www.python.org/downloads/
- 安装 windows-build-tools
npm install --global --production windows-build-tools
准备完成后,在Remix源码根目录运行如下命令进行安装:
npm install
npm run build
npm run serve
启动成功后访问:http://localhost:8080 即可看到本地Remix开发环境。
6、Mist安装
Mist 是以太坊官方提供的浏览器,通过Mist我们可以很方便的连接上我们的私有网络,从而更好的开发、调试、测试我们的智能合约。
下载地址:https://github.com/ethereum/mist/releases/
首先启动Geth:
geth --datadir "./" --nodiscover console 2>>geth.log
然后启动Mist:
'C:\Users\think\Downloads\Ethereum-Wallet-win64-0-10-0\Ethereum Wallet.exe' --rpc "\\.\pipe\geth.ipc"
7、Ganache安装与使用
Ganache是一个测试客户端,是基于本地内存执行的,拥有良好的界面,他能对Transation立即执行,迅速的创建和调用自己编写的智能合约,提升测试效率。
Ganache 也是一个Javascript编写的Nodejs项目,Linux 系统 安装方式如下:
npm install -g truffle
windows 环境下可以直接进行下载安装,下载地址如下:
https://github.com/trufflesuite/ganache/releases
下载安装后打开,界面如下:
8、Truffle安装
Truffle是现在比较流行的一个Solidity智能合约开发框架,是使用Javascript编写的Nodejs项目。
安装Truffle需要提前安装最新版本的Nodejs。
使用如下命令即可安装 Truffle:
npm install -g truffle
安装完成后,可通过如下命令查看 Truffle 版本
D:\RuoliCode\Truffle\RuoliCoin>truffle version
Truffle v4.1.6 (core: 4.1.6)
Solidity v0.4.21 (solc-js)
新建Truffle工作目录,在目录中打开命令行输入命令 依次进行操作
truffle init //初始化 空 Truffle 工程,此处我们使用下面这种方式初始化
truffle unbox webpack//下载metacoin 的示例代码,如果使用这种方法则不用建立空工程
truffle工程构建完成后,修改truffle.js 文件,指定本地 RCP Server 地址(Ganache安装与使用中有),如下:
module.exports = {
networks: {
development: {
host: 'localhost',
port: '7545',
network_id: '*' // Match any network id
}
}
};
继续进行solidity代码操作,如下:
truffle compile //编译
truffle migrate //部署
truffle test //测试
部署与测试可以看到 Ganache中第一个账户的以太币减少,所有的交易操作都可以在Ganache中进行查看。
如果在执行编译命令时出现 “'module 未定义” 错误,如下图:
修复方式如下:
truffle.cmd compile
或者
- 找到truffle.cmd文件
- 备份此文件并且在当前目录下重命名truffle.cmd 为其他名称,例如:truf.cmd
- 返回Truffle 代码根目录,使用 truf compile 命令进行编译。
最后使用如下命令启动 刚刚下载webpack 示例代码
npm run dev