以太坊客户端geth安装与启动

本文是《循序渐进以太坊》系列的第一篇-安装篇。本文将简单讲解在Mac上安装,以及启动过程。本文只是一个操作入门,不会讲解细节,在下一篇文章中,我们将会详细分析以太坊客户端geth启动时到底做了什么。

1 安装

如果你不是想研究内部实现机制,只是简单地想把ethereum 跑起来,你可以直接使用mac自带的brew.

brew tap ethereum/ethereum
brew install ethereum

上面就OK了。
如果你想研究一下源码,那么就需要下载源码了哈。go环境的配置在这篇文章不再讲述。
下载源码

git clone https://github.com/ethereum/go-ethereum

然后,编译

cd go-ethereum
make geth 

这样也就OK了。
如果你有些冲动,想改一下源码,那么直接修改源码,然后重新执行以下 make geth 即可。
执行

geth version 

如果出现下图红框中类似的字样,就表示安装成功了(其他字符为调试内容,忽略)。


image.png

2 启动

你可以直接连接测试网络,不过还需要同步区块,这儿我启动了本地的测试网络。

2.1 使用geth创建几个账户,用于挖矿使用。

geth --datadir path/to/custom/data/folder account new

其中 path/to/custom/data/folder 为账户存储的位置。
创建过程中,会让你输入密码,你自己输入一个就好,不过要记住,因为后面要从这个账户转账的时候,需要你解锁。测试环境可以默认为空,直接回车即可。
大约是这个样子:


创建账户.png

这儿的public address of the key 就是账户地址。
密钥文件,如果是在mainnet ,需要保留好,测试网络就不用管了。

2.1 创建一个genesis block 配置

官方给的配置如下:

{
    "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "difficulty": "200000000",
    "gasLimit": "2100000",
    "alloc": {
        "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
        "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
    }
}

简单介绍下:

  • config 中的chainId 需要改成你自己的,这是一个私有网络的标识
  • alloc 标识 预分配,如果不搭建自己的真实区块链,可以啥也不写。
  • gasLimit 标识区块所能容纳交易的最大gas数量,这个先用默认的,正常网络中,是矿工可以投票修改的。如果在自建网络想改,使用指令 --targetgaslimit '9000000000000' 即可。
  • difficulty 是挖矿难度,可以自己调整,在我的网络里面,我设置为0了。

可以看下我的配置:


image.png

2.2 创建创世区块。

geth --datadir path/to/custom/data/folder init path/to/store/genesisfile/genesis.json

path/to/custom/data/folder 表示节点跑起来之后,数据的存储位置,需要改成你自己的。
path/to/store/genesisfile/ 表示genesis.json 存储的位置,需要改成你自己的。

2.3 启动

geth --datadir path/to/custom/data/folder --ipcpath path/to/custom/data/folder/geth.ipc --networkid 15

其中 datadir 就是上文我们说的数据的存储位置,需要改成你自己的。
15 表示当前私有网络的id, 改成你自己的。

启动之后,如果如下图红框中所示,就表示成功了哈。


gogogo.png

启动过程都经历了什么,我们后续文章再讲。

3 attach 交互

geth启动OK了,那我们怎么跟他交互呢,有好几种形式,我只分析了attach 的ipc形式,没有仔细分析其他交互形式的细节,不过底层处理逻辑是一套。我们在启动的时候,已经指定了节点启动之后ipc存放的位置。

geth attach ipc:/Users/zhangpeng/ethData/geth.ipc

如果出现下图红框中的内容,就表示跟节点连接成功了。


attachIpc.png

我们执行一条指令看下,比如让节点开始挖矿的操作

miner.start(1)

我们看下客户端的截图:


挖矿开始.png

这儿start中的1 表示启动一个worker线程去挖矿,如果不配置,会默认节点的cpu核数。
那我们看下节点的响应:


挖到矿了.png

你可能会有疑问,没有配置账户,挖到矿之后,奖励给谁。在挖矿的实现中,如果节点启动时没有配置ethbase, 那么会取节点上默认的第一个账户作为奖励受益人。

4 总结

本文讲解了账户的创建,geth的安装、启动,以及怎样使用attach ipc形式跟节点交互,希望对你有帮助~

5 参考文献

How to increase gas limit in block using geth?
private work
Installation Instructions for Mac

其他

本文是《循序渐进以太坊》的第一篇-《以太坊客户端geth安装与启动》。
如果有疑问,可以直接留言,也可以关注公众号 “链人成长chainerup” 提问留言,或者加入知识星球“链人成长”~

你可能感兴趣的:(以太坊客户端geth安装与启动)