本来去年就应该写这个教程记录一下的,然而以为自己以后不会用到,所以偷懒没写……被打脸之后重新记录一波,如何在win10以及linux上面搭建一个以太坊的私链
1、win10搭建教程
首先保证你的电脑系统是win10,然后第一步,去官网下载Geth,我这里选的版本是1.9.12
下载地址:https://geth.ethereum.org/downloads/
下载好了之后,双击安装,然后打开安装目录,你会发现Geth.exe安静的在里面躺着:
但是先不要着急双击启动,geth客户端不是这样玩的,既然是要搭建私链,那么就先要有创世区块,我们在同级目录创建一个genesis.json文件:
{
"config": {
"chainId": 7878,
"homesteadBlock": 0,
"eip150Block": 0,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"ethash": {}
},
"nonce": "0x0",
"timestamp": "0x5ddf8f3e",
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
"gasLimit": "0x47b760",
"difficulty": "0x99999",
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": { },
"number": "0x0",
"gasUsed": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
}
其中几个地方需要注意一下:
- chainId:私链id,你可以随意取,保证链接一致即可
- difficulty:挖矿难度
- 不同版本创世区块文件可能不一致,建议选择1.9+的版本
这时候我们再创建一个data目录,用于存放数据文件,最终目录结构如下:
此时我们打开命令行,切换到当前目录后,输入如下代码初始化创世区块,输出如下内容代表初始化完成:
./geth -datadir .\data\ init genesis.json
如果你失误了想要删除,执行该命令即可:
./geth removedb --datadir .\data\
接下来我们再输入如下内容启动客户端:
./geth --rpc --rpcaddr 127.0.0.1 --port 10071 --rpcport 10070 --rpcapi "personal,db,eth,net,web3,miner" --datadir .\data\ --networkid 7878 console --allow-insecure-unlock
这里解释一下各个参数的意义:
- rpcaddr :提供远程连接的地址
- rpcport:远程连接端口
- rpcapi :允许远程连接使用的API
- datadir:数据目录
- networkid:私链id
- –allow-insecure-unlock:允许不安全的交易
启动客户端之后,我们就可以输入一些命令来玩了:
- 查看账户列表:eth.accounts
- 创建账户:personal.newAccount(“123”) PS:括号里的参数代表密码
- 查看账户余额:eth.getBalance(eth.accounts[0])
- 开始挖矿:miner.start()
- 停止挖矿:miner.stop()
- 查看区块高度:eth.blockNumber
至于怎么交易,大家可以自己去百度,我这里就不贴了,额外说一个问题,有些人miner.start()之后会发现,客户端返回了一个null,然后区块并没有增加,如果你的客户端和我版本是一致的,那么应该是以下情况:
- 第一次开始挖矿会有一个进度,需要等待百分比到100才会开始挖矿
- 机器配置太低,挖矿速度很慢(我之前在1核2G的云服务器上面是5分钟一个)
2、Linux搭建教程
这里我的系统是Centos7.4,其它的也大同小异,Linux的搭建和win10上面差不多:
wget https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.9.25-e7872729.tar.gz
tar -zxvf geth-linux-amd64-1.9.25-e7872729.tar.gz
解压之后,cd到解压目录里,然后你会看到geth同样静静躺在里面,后续流程和上面创建genesis.json文件开始的一模一样
3、后记
后续有时间还会记录一下怎么用Java操作Geth客户端以及智能合约的部署使用……