Ubuntu18.04安装geth
- 自己也是个小白,只能网上找教程,然后发现教程大同小异。有的只需要安装geth就可以了,有的需要安装nodejs、git等各种软件。
- 自己恰好由于某些原因也已经安装了,所以我只能把大家的综合一下~
1. 前期准备
① 安装git(通过源码编译的方式安装geth,需要此步骤)
这里安装git主要是为了后面能通过源码编译
的方式安装geth,如果想直接通过添加以太坊官方APT源,并安装以太坊客户端的方式,可以不用安装git。
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt-get update
$ sudo apt-get install git
通过以下命令查看git的版本,顺便验证git安装是否成功。
$ git --version
② 安装nodejs和npm
- 获取最新版本nodejs
$ sudo apt-get update
- 从存储库安装Node.js:
$ sudo apt-get install nodejs
- 需要额外安装npm
$ sudo apt-get install npm
- 全局安装n管理器,用于管理nodejs版本
$ sudo npm install -g n
- 安装最新的nodejs(stable版本)
有如下方式安装管理nodejs版本,可以按照需要选择自己合适的方式的,本人选择的是稳定版安装。
$ sudo n lts #长期支持
$ sudo n stable #稳定版
$ sudo n latest #最新版
$ sudo n 8.4.0 #直接指定版本下载
安装nodejs稳定版:
$ sudo n stable
查看nodejs版本,可能需要重新打开终端才能看到版本变化。
$ node -v
参考链接:
ubuntu18.04下安装node
Ubuntu18安装最新版nodejs
③ 安装go(通过源码编译的方式安装geth,需要此步骤)
- 这里主要是为了通过
源码编译
的方式安装geth服务的,具体的安装步骤可以参考本人以前的博客: - ubuntu18.04安装Go语言
④ 安装solc
solidity是以太坊智能合约的开发语言,测试智能合约、开发Dapp都需要安装。
$ sudo add-apt-repository ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install solc
查看solc版本,顺便验证solc是否安装成功。
$ solc --version
⑤ 安装truffle和testrpc (本人没有安装)
参考链接:
以太坊入门教程1:Ubuntu 16.04下部署以太坊环境
Ubuntu 16.04搭建以太坊开发环境
2. 安装geth
geth的全称是Go-ethereum ,是较为常用的一个以太坊用go语言开发的客户端。
① 以APT的方式安装(强烈建议使用这种方式快速安装)
添加以太坊官方APT源,并安装以太坊客户端。
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository -y ppa:ethereum/ethereum
$ sudo apt-get update
$ sudo apt-get install ethereum
当新版本geth发表后,可直接通过APT完成geth版本升级。
$ sudo apt-get update
$ sudo apt-get upgrade
② 源码编译安装
从github上获取go-ethereum源码,然后编译geth。
$ git clone https://github.com/ethereum/go-ethereum.git
$ cd go-ethereum/
$ sudo make geth
有的博主说如果没有安装go,最后一步会报错。
[email protected]:~/go-ethereum$ sudo make geth
build/env.sh go run build/ci.go install ./cmd/geth
build/env.sh: 30: exec: go: not found
Makefile:15: recipe for target 'geth' failed
make: *** [geth] Error 127
- 查看geth版本,顺便验证geth安装是否成功。
$ geth version
③ 通过docker安装
具体参考博客:ubuntu16.04安装以太坊并运行
3. 运行
① 在以太坊公有链上运行一个全节点
# 加上console 表示启动后,启用Geth JavaScript命令行
$ geth --cache=512 --datadir "/home/hadoop/eth/public_net" console
运行结果截图:
以上命令会有很多日志输出,可以在命令末尾指定将log输出到eth.log
。
$ geth --cache=512 --datadir "/home/hadoop/eth/public_net" console --dev 2>>/home/hadoop/eth/public_net/eth.log
② 在以太坊测试网络上运行一个全节点
$ geth --testnet --cache=512 --datadir "/home/hadoop/geth/test_net" console
或者将日志输出到eth.log
文件:
$ geth --testnet --cache=512 --datadir "/home/hadoop/eth/test_net" console --dev 2>>/home/hadoop/eth/test_net/eth.log