一.安装eth客户端go-ethereum
有两种安装方式,直接下载geth或者下载geth源码进行编译。
方式一:直接下载geth
brew tap ethereum/ethereum brew install ethereum # 安装solc(solidity语言编译器) 和solc-cli sudo npm install -g solc solc-cli --save-dev # 测试是否安装成功 geth --help
方式二:下载源码并编译(我选得这种)
git clone https://github.com/ethereum/go-ethereum brew install go cd go-ethereum # 若出现time out问题,使用goproxy代理解决 make geth # 编译成功之后运行脚本启动geth ./build/bin/geth
二.安装solc(solidity语言编译器) 和solc-cli
sudo npm install -g solc solc-cli --save-dev
三.搭建私有链作为测试链
- 创建一个配置私有链的数据目录,我们命名为ethprivate,存放路径:/Users/Rworld/GoProjects/eth/ethprivate
- 创建创世区块的初始化文件genesis.json,放到ethprivate目录中,其内容如下:
{ "config": { "chainId": 15, "homesteadBlock": 0, "eip155Block": 0, "eip158Block": 0 }, "difficulty": "200000000", "gasLimit": "2100000", "alloc": { "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" }, "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" } } }
- 创建私有链,进入ethprivate目录,执行如下命令
geth --datadir "./" init genesis.json
- 启动私有链,执行如下命令
geth --datadir "./" --networkid 989898 --rpc console --port 30304 --rpcport 8546
这样就完成了一个节点的启动,如果还需要启动第二个节点,步骤跟上述一样,另外创建一个新文件夹,重复之前的动作,注意要指定不同的端口,否则会端口冲突。
若创建多个节点,则节点之间可以通过admin.addPeer连接,在 本机启动多个节点或者在不同的计算机上运行多个节点都可以,这样可以模拟出一个私有链网络。
以下是启动节点后在交互式指令:
# 查看是否有账号 personal.listAccounts # 创建账号 personal.newAccount("123456") # 启动挖矿 miner.start() # 停止挖矿 miner.stop() # 查看节点 eth.blockNumber # 查余额 eth.getBalance(user)
5. Ethereum wallet 连接私有链
# 注意这一步的 ip 和端口要跟第四步的一致 /Applications/Mist.app/Contents/MacOS/Mist --rpc http://localhost:8486
四.使用TestRPC与Truffle组合配置私有链
TestRPC是在本地使用内存模拟的一个以太坊环境,可以用于搭建测试环境,基于 Node.js开发,因此使用TestRPC首先要安装Node.js环境并且版本要大于6.9.1。
Truffle是针对以太坊智能合约应用的一套开发框架。