其实以太坊部署环境因人而异,基本的就那几个,我这里为大家把几乎都用到的都部署上,方便大家开发。你们也可以根据自己开发需要,自行部署增减。(联网操作)
1、安装curl命令
小提示:
首先需要了解的是,curl命令是一个网络工具,其主要作用是通过http、ftp等方式下载文件,也能够上传文件,作为一个功能强大的网络工具,curl命令同时支持HTTPS等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。
#这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。
apt-get update
#update后,可能需要upgrade一下,这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。
apt-get upgrade
##总而言之,update是更新软件列表,upgrade是更新软件。##
#安装git,因为大多数开源软件在发布在git上
apt-get install git
#安装curl命令
apt-get install curl
#查看curl是否安装成功及安装版本
curl --version
curl安装完成。
2、安装make命令
小提示:
维护、更新和重新生成程序组。make 命令辅助您维护程序集。输入 make 命令的是一个文件相关性规范列表。
#安装make命令
apt-get install make
3、安装npm命令
小提示:
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。
没有的话,就进行安装
#安装npm
sudo apt-get install npm
#查看安装版本
npm -v
#npm设成淘宝镜像(国内镜像,下载速度快)
npm config set registry "http://registry.npm.taobao.org/"
#npm改换成默认镜像
npm config set registry "https://registry.npmjs.org/"
#查看当前npm配置
sudo npm config list
4、安装go环境(此处安装的是go1.10.1)
#通过网址下载Linux版本的go
wget https://studygolang.com/dl/golang/go1.10.1.linux-amd64.tar.gz
#解压缩go
tar -zxvf go1.10.1.linux-amd64.tar.gz
#将解压好go文件夹移动到local下
mv go /usr/local/
# 添加环境变量
echo "export GOROOT=/usr/local/go" >> /etc/profile
echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
source /etc/profile
#查看go是否安装成功及版本
go version
5、安装geth(go-ethereum)
小提识:
go-ethereum就是通常所说的 geth ,它是一个用Go语言实现运行在以太坊完整节点上的命令行接口,安装并运行了geth,你可以成为以太坊正式链的节点并且可以:挖矿得到真实的以太币;在账户地址之间转移资金;创建智能合约和发起交易;查看所有历史区块;还有很多很多功能......
有三种方式可以安装geth可以参考:https://blog.csdn.net/u012254277/article/details/61429199
(1)从git上以源码安装(这种方式前提必须安装go环境{不推荐此方法})
参考:https://blog.csdn.net/yinanmo5569/article/details/80337545
#从git上下载go-ethereum
git clone https://github.com/ethereum/go-ethereum.git
#进入geth文件夹
cd go-ethereum
#编译geth,编译完成之后 会在 go-ethereum/build/bin 中生成geth可执行文件
make geth
#输入 geth help 命令,会显示geth所有的命令和选项,前要进入bin目录下
cd build/bin
./geth help
#检验安装是否成功
./geth version
(2) 直接下载可执行文件
最简单的方法是直接下载可执行文件,以太坊开发团队提供了各个系统的编译好的geth可执行文件,可以去官方下载地址或国内镜像下载适合你系统版本的压缩包,解压缩后直接运行就可以。在命令行中输入 geth help 可查看geth的用法。
注意1:geth是一个命令行工具,需要在命令行中运行geth,windows用户不要直接双击geth.exe。
注意2:如果不加任何参数直接运行 geth ,会自动连接到以太坊公网,此时会开始同步区块,在Linux系统中,区块数据默认存储在~/.ethereum中。
(3)在线安装geth(本人推荐第三种安装方式)
Ubuntu用户可以选择在线安装的方式,在终端中依次执行以下命令即可:
#添加下载任务PPA(个人软件包集合)
sudo add-apt-repository -y ppa:ethereum/ethereum
#更新到最新版本
sudo apt-get update
#安装geth
sudo apt-get install ethereum
#查看是否安装成功及版本
geth version
安装成功。
我们将会用到的工具
安装Truffle
Truffle是Dapp开发框架,他可以帮我们处理掉大量无关紧要的小事情,让我们可以迅速开始写代码-编译-部署-测试-打包DApp这个流程。Truffle是一个世界级的开发环境,测试框架,以太坊的资源管理通道,致力于让以太坊上的开发变得简单。
- 内置的智能合约编译,链接,部署和二进制文件的管理。
- 针对快速迭代开发的自动化合约测试。
- 可脚本化,可扩展的部署与迁移框架。
- 用于部署到任意数量的公网或私网的网络环境管理。
- 使用EthPM&NPM提供的包管理,使用ERC190标准。
- 与合约直接通信的交互控制台。
- 可配的构建流程,支持紧密集成。
- 在Truffle环境里支持执行外部的脚本。
在安装Truffle之前先 首先安装Truffle依赖的NodeJS
#安装nodejs
apt-get install -y nodejs
#查看版本
node -v
##安装最新的nodejs(stable版本)
sudo n stable
sudo node -v
安装Truffle
#下载安装truffle
sudo npm install -g truffle
#查看truffle及版本
truffle version
#安装完成后执行下面的命令,确保Truffle被正确安装
truffle
安装ganache
Ganache这个名字比较陌生,但是它的前身testRPC却是大名鼎鼎,网上的很多老文章里都是用testRPC。Truffle一般是以Ganache为核。Ganache可以快速启动个人以太坊区块链,并可以使用它来运行测试,执行命令、检查状态,同时控制链条的运行方式。
- 快速查看所有账户的当前状态,包括他们的地址、私钥、交易和余额
- 查看Ganache内部区块链的日志输出,包括响应和其他重要的调试信息
- 检查所有块和交易,以获取相关问题的信息
参考链接:https://blog.csdn.net/turkeycock/article/details/79165602
#下载ganache
wget https://github.com/trufflesuite/ganache/releases/download/v1.0.1/ganache-1.0.1-x86_64.AppImage
#修改权限
chmod +x ganache-1.0.1-x86_64.AppImage
#启动ganache
sudo ./ganache-1.0.1-x86_64.AppImage
安装solc
solidity是以太坊智能合约的开发语言,官方文档地址:https://solidity.readthedocs.io/en/latest/。
想要测试智能合约,开发DAPP的需要安装solc。
#安装solc
sudo apt-get install solc
#查看版本
solc --version
网址参考:https://www.runoob.com/nodejs/nodejs-npm.html
https://blog.csdn.net/Test_tju/article/details/86531414
https://blog.csdn.net/turkeycock/article/details/79165602(ganache、Truffle安装 )
https://www.jianshu.com/p/e697313d9e9a
基本的开发环境已经部署好了,下面就可以进行开发。