区块链首次在比特币中出现,近年来区块链技术蓬勃发展,深入各行各业,各种基于区块链特性的想法和创新层出不穷。以太坊的创始人Vitalik看到了比特币区块链技术上的缺陷,开发出了以太坊。根据以太坊白皮书的定义:以太坊是一个全新开放的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的去中心化应用。本文不详细介绍以太坊及其发展历程,大家可以去网上搜索以太坊白皮书或者去以太坊官网浏览相关内容。笔者近期正在研究区块链系统的创新工作,相比fabric,以太坊更容易上手,经历了一些奇奇怪怪的问题,网上虽然有许多以太坊的攻略和博客教程,但是都不太完善,且没有分析到一些问题,笔者还是想系统记录一下这个过程,后面如果顺利,还会持续更新一些网上缺少的深度开发攻略,以供广大以太坊研究者和爱好者讨论交流。话不多说,让我们开始进行以太坊开发前的准备工作吧!
为了避免因为刚入门不熟悉而弄乱我们的win10系统,以及避免一些奇奇怪怪的问题,本系列的工作都在VM ware虚拟机中的ubuntu64的20版本进行,虚拟机的安装配置网上都有且很详细,注意系统版本别安错了,多分配一些内存给虚拟机。
我们直接从在全新的ubuntu系统中开始,首先要切换到root账户,教程在http://www.5sharing.com/m/view.php?aid=1541。
如果执意要用普通用户,后面遇到一些小问题就请自行解决。
第一步:安装Docker
apt install docker.io
apt install docker-compose
安装完成后系统会自动启动Docker。
可能出现的问题(无法获得锁):
解决方案1:
删除lock:
sudo rm /var/cahe/apt/archives/lock
sudo rm /var/lib/dpkg/lock
出现下面提示表示解锁成功(没反应就再试一次):
解决方案2:
输入sudo rm /var/lib/dpkg/lock-frontend
强制解锁
解决方案3:
重启虚拟机(重启包治百病)。
查看Docker安装成功的版本:docker version
其他Docker指令网上都有。
注:apt应该是安装到usr或者var目录下。如果提示获取失败则反复尝试,或者考虑改换镜像或者挂个梯子(这第一步应该不会出现这个问题,但后面会遇到很多次获取失败,按个梯子一劳永逸,改镜像网上也有)。
第二步:安装Go
方法1:
在终端使用命令sudo apt install golang
若安装成功,则可以使用命令go version查看版本信息
因为golang的官方国内访问受限,所以经常不行,如果要坚持这种方法可以自行搜索解决方案。但好处在于系统全自动帮你配好了GOROOT,GOPATH,PATH之类的,装完就能在命令行go version看到版本。本方法笔者之前尝试且成功过,但当时未做记录。
方法2:
从Go语言中文网下载需要的安装包。然后解压,将go的包解压到了/目录下的go中。
tar -xf go1.14.2.linux-amd64.tar.gz -C /go
方法3:
以 root 或者其他 sudo 用户身份运行下面的命令,下载并且解压 Go 二进制文件到/usr/local目录(本文采用方案,至于你到底想怎么组织go,解压到哪自己选择)。
wget -c https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz -O – | sudo tar -xz -C /usr/local
注意:这里下载的是go1.14.2,如需最新版本请自行修改版本号。
安装结束后要配置环境变量,3种方法由于安装路径问题,环境变量配置略有不同,这里只介绍第3种。
可以在命令行里修改环境变量(命令行修改环境变量方法网上搜),但由于我使用root用户登录,可以直接点击etc文件夹下面的profile以及root文件夹下的.bashrc文件里修改。
在末尾加上:
export GOROOT=/usr/local/go
export GOPATH=/root/go
export PATH=$PATH:$GOROOT/bin
这里的gopath里的go是我们自己在该目录下新建的文件夹,用来存放用户程序,可以在终端新建也可以直接在文件夹里右键新建(ubuntu的好处)。
修改好后重启或者用source指令使环境变量生效。
source ~/.bashrc
切换到etc下:
cd ../etc
source ./profile
使用go version
和go env
命令查看效果:
如上则go的安装完全成功!
出现的问题:
在终端里修改配置文件的方法网上都有,如果想和我一样直接点击文件修改,要用root身份登录,并显示隐藏文件。
第三步:Golang的IDE工具安装(可以跳过)
我们选择Goland,Goland提供了代码提示、语法错误提示、调试等功能。虽然可能后面用不上,但是毕竟Go环境已经配置好,顺手按个IDE以后也方便学习Go语言。
直接在以下网址选择linux版本下载:
下载后将压缩包解压到自己设定的目录下,在终端进入该GoLand解压后目录的bin目录下,输入./goland.sh
,即可进入安装,傻瓜式安装,有问题自行搜索。
新建工程后会自动识别GOROOT和GOPATH。
第四步:安装nodejs和npm
可以更新软件列表:
sudo apt update
sudo apt upgrade
最新版nodejs里包含了npm,使用如下命令安装:
sudo apt install nodejs npm
安装完成后输入nodejs –version
显示版本即成功,这里安装的是10.19.0。npm也是一样。
Node.js的IDE可以自己选择下载,对于一些简单不用调试的也可以和我一样暂时直接在文件里和终端里写。
第五步:安装Curl
终端输入apt install curl
第六步:安装tree
终端输入sudo apt install tree
第七步:安装jq
apt-get install jq
到这里安装以太坊前的准备工作就完成了!
如果对文中步骤有问题,或者想一起交流讨论以太坊区块链的开发(毕设、科研项目之类的),可以评论区留言或者发邮件给我:[email protected]
更多有关以太坊开发的教程敬请期待,我会优先更新在我的个人博客xiaojin.ltd