当前位置: 首页 > news >正文

以太坊开发实战详解:geth客户端安装教程

geth的全称是go-ethereum,是一个以太坊客户端,用go语言编写,应该是目前最常用的客户端。当然以太坊客户端还有用C++,Ruby,Python,Java等其他多种语言编写的,不同类型的客户端是为了满足不同的需求场景。主要来介绍geth(发音同guess )的使用。geth作为以太坊的官方客户端,它是一个命令行工具,提供很多命令和选项,可以运行以太坊节点、创建和管理账户、发送交易、挖矿、部署智能合约等。

geth的三种安装方法:
1.直接下载可执行文件
2.在线安装
3.从源码编译安装

方法一 直接下载可执行文件
最简单的方法是直接下载可执行文件,以太坊开发团队提供了各个系统的编译好的geth可执行文件,可以去官方下载地址或国内镜像下载适合你系统版本的压缩包,解压缩后直接运行就可以。在命令行中输入 geth help 可查看geth的用法。

注意1:geth是一个命令行工具,需要在命令行中运行geth,windows用户不要直接双击geth.exe。
注意2:如果不加任何参数直接运行 geth ,会自动连接到以太坊公网,此时会开始同步区块,在Linux系统中,区块数据默认存储在~/.ethereum中。

方法二 在线安装
Ubuntu用户可以选择在线安装的方式,在终端中依次执行以下命令即可:

sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

安装完成后执行 geth help 查看geth的用法。

方法三 从源码编译安装
编译安装推荐使用Linux系统,本文以64位的Ubuntu16.04系统为例。

geth是用go语言写的,编译geth源码需要go语言和C语言编译器,因此需要先安装go语言,go语言版本推荐用go1.7及以上。

使用make编译
首先下载geth源码 go-ethereum,这里以 go-ethereum-1.5.6.tar.gz 为例:

接下来解压缩源码:

tar -xzf go-ethereum-1.5.6.tar.gz

用make工具进行编译:
cd go-ethereum-1.5.6
make geth

make会执行build目录下的编译脚本,编译脚本会调用go语言编译器进行编译。等待十几秒,编译就完成了,此时会在 go-ethereum-1.5.6/build/bin 中生成geth可执行文件。

输入 geth help 命令,会显示geth所有的命令和选项:

cd build/bin
./geth help

使用go语言编译工具编译
如果熟悉go语言,可以直接使用go语言的编译工具编译。

首先下载go-ethereum项目源码:

go get -d github.com/ethereum/go-ethereum

上面的命令会下载go-ethereum源码到GOPATH/src/github.com/ethereum/go-ethereum,同时会下载相关的依赖包,在国内网络环境下,如果不翻墙,下载通常会失败,此时可以参考下面的手动下载方法。

下载完成后,通过以下命令编译:

go install -v github.com/ethereum/go-ethereum/cmd/geth

等待十几秒,编译完成后,会在GOPATH/bin目录下生成geth可执行文件。

注:如果go get命令下载很慢或失败,可以采用手动下载:首先下载 go-ethereum-1.5.6.tar.gz ,然后解压到GOPATH/src/github.com/ethereum/go-ethereum,还要到http://www.golangtc.com/download/package下载golang.org.x.net.tar.gz,并将其解压到GOPATH/src中。

之后再通过上面的go install命令编译安装即可。

进入Geth 命令行模式
在上一篇文章中,我们说到,我们可以用下面命令,建立一个新的私有链

geth –datadir “./” –nodiscover console 2>>geth.log

进入命令行模式,其中参数
–datadir 代表文件夹地址,
–nodiscover 代表该链条不希望被其他节点发现,
console >> geth.log 代表将控制台输出到文件geth.log中去
当然从命令行模式退出,也很简单,只要打入exit, 即可退出

查询账户
Geth命令行中的 eth.accounts
我们在命令行输入 eth.accounts 可以看到当前该区块链中共有几个账号,以及每个账号的公钥地址。
查看当前以太坊账户

eth.accounts

在以太坊系统中,状态是由被称为“账户”(每个账户由一个20字节的地址)的对象和在两个账户之间转移价值和信息的状态转换构成的。以太坊的账户包含四个部分:

随机数,用于确定每笔交易只能被处理一次的计数器
账户目前的以太币余额
账户的合约代码,如果有的话
账户的存储(默认为空)
简单地说,每一个以太坊账户都有一对公钥和私钥组成。

公钥我们可以理解为就是账户地址,任何其他账户都可以访问该地址
私钥可以理解为一段加密过的密码,这一对公钥和私钥共同组成一个唯一标示的以太坊账户。

相关文章:

  • 以太坊智能合约solidity去中心化投票系统
  • 区块链加密算法深入剖析
  • 深入理解区块链UTXO篇
  • 区块链超级账本Hyperledger Fabric深入剖析详解
  • goland快捷键大全
  • 高并发利器
  • docker容器详解
  • go语言贪吃蛇实现深入剖析详解
  • docker搭建比特币私链
  • 超详细的区块链学习干货链接
  • Ubuntu18图形界面中ifconfig命令无ens33不能联网的解决策略
  • fastDFS在centos中安装详解
  • 区块链超级账本Hyperledger Fabric安装使用详解
  • 区块链Hyperledger Fabric超级账本ChainCode链码ChaincodeStubInterface深入剖析详解
  • 区块链hyperledger fabric背书策略深入剖析详解