第一步 安装go语言环境
root用户下新建一个soft目录(相关目录可以随意)
去golang官网找到链接,在soft目录下下载golang压缩包
wget --no-check-certificate https://go.dev/dl/go1.20.4.linux-amd64.tar.gz
其中如果出现Unable to establish SSL connection
.,则加上--no-check-certificate
解压golang压缩包
tar -zxvf go1.20.4.linux-amd64.tar.gz
设置配置go的相关环境变量
自己建一个go的工作目录
打开系统 /etc/profile 文件在文件末尾增加
export GOROOT=/usr/local/go #go的安装目录,即,go解压后的目录
export GOPATH=/data/goProject
export PATH=$PATH:$GOROOT/bin
增加完以后退出,执行 source /etc/profile,环境变量就配置成功了
再配置一下golang相关设置
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
第二步:下载安装geth
去往geth官网https://geth.ethereum.org复制相关版本链接,同样去linux用wget下载
下载之后进行解压,将解压后的文件复制到/usr/local下,并重新命名一下
然后将打开/etc/profile追加环境变量,再source 一下
export PATH=$PATH:/usr/local/geth-home
第三步:搭建私链
先建一个目录privatechain
再创建一个genesis.json文件,用于配置创世区块
#genesis.json
{
"config": {
"chainId": 12345,
"homesteadBlock": 0,
"eip150Block": 0,
"eip155Block": 0,
"eip158Block": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"berlinBlock": 0,
"ethash": {}
},
"difficulty": "1",
"gasLimit": "8000000",
"alloc": {
"7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
"f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
}
}
再利用创世块文件初始化,其中chainData为为区块链数据
geth init --datadir ./chainData genesis.json
初始化后,就可以启动私有链了
geth --datadir ./chainData --networkid 12345 --http --http.addr 0.0.0.0 --http.vhosts "*" --http.api "db,net,eth,web3,personal" --http.corsdomain "*" --snapshot=false --allow-insecure-unlock console 2> 1.log
networkid 配置成与配置文件config内的chainId相同值,代表加入哪个网络,私链就自己随意编号即可
console 进入管理台
2> 1.log Unix系统下的重定向,将Geth产生的日志输出都重定向到1.log中,以免刷日志影响操作