近年来,区块链发展迅猛,以太坊的出现使得区块链进入了2.0时代,支持智能合约以及去中心化应用,使得区块链的应用范围更加广泛。
对于以太坊的学习,很多人是从编译其源码开始的。下面介绍以太坊源码的详细编译过程。
我使用的版本如下:Ubuntu16.04,Go1.17.7,Go-ethereum1.10.16
一、Go语言的编译
因为以太坊源码是使用go语言编写的,因此编译前需要先安装go语言环境。
1. 下载go语言包
这里我选择了最新的1.17.7版本,下载地址:Downloads - The Go Programming Language
将文件放在 /usr/local 目录下,解压到该目录下,得到go文件夹。
2. 配置环境变量
使用vi编辑 /etc/profile 文件
sudo vi /etc/profile
在文件末尾加入如下三行后保存。
执行以下命令,使配置文件生效。
source /etc/profile
至此Go语言安装完成,输入 go version命令验证
二、 以太坊的编译安装
1. 下载以太坊源代码包
下载地址:Releases · ethereum/go-ethereum · GitHub
将源码包解压,进入到解压后的源代码根目录。
2. 配置网络代理
因以太坊编译安装时需要下载一些文件,又因国内网络问题,需要给配置网络代理
go env -w GOPROXY=https://goproxy.cn
3. 配置sudo时go语言的使用
更改 /etc/sudoers 文件的访问权限,编辑该文件。
sudo chmod 777 /etc/sudoer
sudo vi /etc/sudoers
在下图所示的位置添加go相关命令的路径。 保存后将该文件的访问权限恢复为默认值,否则无法使用sudo。
pkexec chmod 0440 /etc/sudoers
4. 编译安装以太坊
以太坊编译安装脚本很完善,只需在源码包根目录下执行
sudo make geth
5. 验证编译结果