win10与linux以太坊客户端Geth私链搭建教程

本来去年就应该写这个教程记录一下的,然而以为自己以后不会用到,所以偷懒没写……被打脸之后重新记录一波,如何在win10以及linux上面搭建一个以太坊的私链

1、win10搭建教程

首先保证你的电脑系统是win10,然后第一步,去官网下载Geth,我这里选的版本是1.9.12
下载地址:https://geth.ethereum.org/downloads/

win10与linux以太坊客户端Geth私链搭建教程


下载好了之后,双击安装,然后打开安装目录,你会发现Geth.exe安静的在里面躺着:
win10与linux以太坊客户端Geth私链搭建教程


但是先不要着急双击启动,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目录,用于存放数据文件,最终目录结构如下:
win10与linux以太坊客户端Geth私链搭建教程
此时我们打开命令行,切换到当前目录后,输入如下代码初始化创世区块,输出如下内容代表初始化完成:

./geth -datadir .\data\ init genesis.json

win10与linux以太坊客户端Geth私链搭建教程

如果你失误了想要删除,执行该命令即可:

./geth removedb --datadir .\data\

win10与linux以太坊客户端Geth私链搭建教程

接下来我们再输入如下内容启动客户端:

./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:允许不安全的交易

启动客户端之后,我们就可以输入一些命令来玩了:
win10与linux以太坊客户端Geth私链搭建教程

  • 查看账户列表:eth.accounts
  • 创建账户:personal.newAccount(“123”) PS:括号里的参数代表密码
  • 查看账户余额:eth.getBalance(eth.accounts[0])
  • 开始挖矿:miner.start()
  • 停止挖矿:miner.stop()
  • 查看区块高度:eth.blockNumber

至于怎么交易,大家可以自己去百度,我这里就不贴了,额外说一个问题,有些人miner.start()之后会发现,客户端返回了一个null,然后区块并没有增加,如果你的客户端和我版本是一致的,那么应该是以下情况:

  1. 第一次开始挖矿会有一个进度,需要等待百分比到100才会开始挖矿
  2. 机器配置太低,挖矿速度很慢(我之前在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客户端以及智能合约的部署使用……

上一篇:sql – 如何在不选择ORDER BY字段的情况下选择DISTINCT行


下一篇:蓝桥杯 第五讲 树状数组和线段树 2D/3D差分