linux简单部署运行以太坊私有链
前置条件
部署以太坊需要git进行拉取代码及运行依赖的go环境
我的环境是centOs7.9
在线安装git
# 安装 yum -y install git # 卸载 yum remove git # 查看版本 git --version
部署go
go可以去官网下载,我这边已经下好了一个现成的 go1.19.1.linux-amd64.tar.gz
解压命令 tar -zxvf go1.19.1.linux-amd64.tar.gz
将go移到/usr/local/go
mv go /usr/local/go

编辑环境变量 vim /etc/profile 在最后面增加下面两行配置 export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin 让配置生效 source /etc/profile
然后看下go的版本
#查看版本命令
go version

下载以太坊源码
#下载源码命令 git clone https://github.com/ethereum/go-ethereum.git
可以自己创建个目录来接收自己下载的源码,我这边是放在/opt/project
下载成功标志()

#进入源码
cd go-ethereum/ #查看代码版本命令 git tag v1.7.3 v1.8.0 v1.8.1 v1.8.10 v1.8.11 v1.8.12 v1.8.13 v1.8.14 v1.8.15 v1.8.16 v1.8.17 v1.8.18 v1.8.19 v1.8.2 v1.8.20 v1.8.21 v1.8.22 v1.8.23 v1.8.24 v1.8.25 v1.8.26 v1.8.27 v1.8.3 v1.8.4 v1.8.5 v1.8.6 v1.8.7 v1.8.8 v1.8.9 v1.9.0 v1.9.1 v1.9.10 v1.9.11 v1.9.12 v1.9.13 v1.9.14 v1.9.15 v1.9.16 v1.9.17 v1.9.18 v1.9.19 v1.9.2 v1.9.20 v1.9.21 v1.9.22 v1.9.23 v1.9.24 v1.9.25 v1.9.3 v1.9.4 v1.9.5 v1.9.6 v1.9.7 v1.9.8 v1.9.9 [root@localhost go-ethereum]#
最新的源码已经到v1.9.9了
但是我这边需要切换一个git版本,新的版本需要的go的版本也更高,也加了许多的插件(我之前在下载插件时卡住一直下载不了)
#切换至v1.8.17
git checkout v1.8.17
从源码构建geth
#在源码目录进行操作 /opt/project/go-ethereum #编译geth make geth
在执行编译时报了个错

经过查询资料得知是因为go1.91版本太高导致, 这个构建错误是因为您使用的 Go 版本较新,而 v1.8.17 是较旧的 Geth 版本(发布于 2019 年),它使用的是传统的 GOPATH 构建方式而非 Go Modules
# 临时禁用 Go Modules export GO111MODULE=off # 重新运行构建命令 make geth
重新执行后成功

#编译完后 github.com/ethereum/go-ethereum/cmd/geth Done building. Run "/opt/project/go-ethereum/build/bin/geth" to launch geth.
创建创世区块
需要先准备创世区块的genesis.json
{ "config": { "chainId": 15 }, "difficulty": "2000", "gasLimit": "2100000", "alloc": {} }
chainId:15这个代表私有链id是唯一的
创建创世区块的区块链命令
./build/bin/geth --datadir /opt/chain/ init /opt/chain/genesis.json
#执行目录在源码里 /opt/project/go-ethereum 而/opt/chain是我放置创世区块json的目录
--datadir后面跟的/opt/chain则是代表放置区块链数据的目录

启动以太坊
networkid 与创世区json的chainId要一致 #启动以太坊命令(简单版本) ./build/bin/geth --datadir /opt/chain/ --networkid 15 #rpc代表启动api服务 ./build/bin/geth --datadir /opt/chain/ --rpc --networkid 15 #console代表启动后进去控制台 ./build/bin/geth --datadir /opt/chain/ --rpc --networkid 15 console

至此以太坊启动区块链私有链已经成功

浙公网安备 33010602011771号