「区块链系列」以太坊Go-Ethereum(Geth)能做什么

字数 654阅读 361

Go-Ethereum是什么

Go-Ethereum简称Geth,用golang语言实现。

其官方GitHub的说法,Geth是以太坊协议的官方实现(Official golang implementation of the Ethereum protocol),是以太坊基金会对外提供的重要官方软件之一。

所谓以太坊协议的实现,个人理解就是对以太坊协议范围内的各项能力进行封装,并以简单的形式(命令行、API等)提供给用户使用,我们可以从两个使用角度来理解:

  • Geth可以当客户端来使用
    打开Geth,用户可以创建自己的以太坊私有链、管理账户、挖矿、交易、部署执行智能合约等,用户还可以下载以太坊主链、解析主链上任意交易数据等。

  • Geth可以当服务器来使用
    Geth提供很多服务和丰富的API,用户可以开发程序通过调用Geth服务,实现自己想要的功能,比如获取一段时间内以太币的所有交易账户。

虽然以太坊是由solidity语言来实现,但其官方或民间提供的大量工具却基本由其他语言来实现,事实上除了Geth外,以太坊还有其他语言的协议实现版本:

Go-Ethereum安装

Geth官网,有简明的各种OS平台的安装指引。可以选择直接下载二进制包安装,也可以通过命令安装,还可以从GitHub上pull下源码编译安装,下面是以1.8.0版本为例的源码编译安装命令。

git clone https://github.com/ethereum/go-ethereum.git
cd  go-ethereum
git checkout v1.8.0
make geth
make all

通过geth version命令可以查看是否安装ok以及geth版本号

一个解析以太坊公有链数据的小工具

笔者以Geth为服务器,开发了一个可以解析Ethereum公有链数据的小工具,地址是https://github.com/star2478/go-ethereum-blockchain-parser

主要功能包括:

  • 获取一段时间内所有交易账户
  • 获取一段时间内所有交易账户及其余额
  • 获取一段时间内所有交易明细
  • 获取一段时间内每个交易账户的交易明细
  • 获取一段时间内每个交易账户的交易总数(含进出总数和进出交易量)