区块链学堂(7):Geth 搭建私有网络-实战

在本章中我们将实战如何使用Geth,如何搭建以太坊的私有网络。

之前说过Geth是三种实现以太坊协议的工具之一,由于Geth是官方推崇的以及个人精力有限,对于另外两种工具的搭建私有网络,请参考网上资料。
下面的Geth实战,在MacBook上实现,对于Windows方面,比较类似。

Step 1: 建立目录和genesis.json

  • 在命令行模式创建一个目录,例如tmpPrivate

  • 创建文件genesis.json, 并填入如下内容。
{
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x0",
  "gasLimit": "0x80000000",
  "difficulty": "0x1",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {     }
}
建议修改:
{
  "config": {
        "chainId": 15,
        "homesteadBlock": 0,
        "eip155Block": 0,
        "eip158Block": 0
    },
    "coinbase" : "0x0000000000000000000000000000000000000000",
    "difficulty" : "0x40000",
    "extraData" : "",
    "gasLimit" : "0xffffffff",
    "nonce" : "0x0000000000000042",
    "mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
    "timestamp" : "0x00",
    "alloc": { }
}




  
  
  • 用户可以vim,也可以用其他编辑器如sublime等,个人推荐使用Atom
  • Atom 官网地址: https://atom.io/

    Atom 是一个由谷歌支持发布的文本编辑器, 一个你可以自定义做任何事情的现代编辑器,后面涉及文件和代码演示会主要在Atom上执行。

创建完成后,在Atom中,本文件夹下应该只有一个genesis.json

Step 2: 执行命令,创建创世区块

  • 切换回命令行,执行命令,制造创世区块
geth --datadir "./" init genesis.json

执行结果如下:

  • 这时候可以注意一下,此时当前目录下面会新增出两个文件夹geth和keystore
geth中保存的是区块链的相关数据
keystore中保存的是该链条中的用户信息

此时从Atom中看到的目录结构是这样的:

Step 3:创建自己的私有链条

  • 执行一条最简单的geth命令,来创建自己的私有链条
geth --datadir "./" --nodiscover console 2>>geth.log
  • geth的参数项目很多,有兴趣的可以打geth –help 来获得详细信息,我们也会在之后的章节中对关键参数项进行说明。

  • 此时的命令行应该是这样的:

Step 4:在自己的私有链条上创建用户

  • 输入命令eth.accounts, 我们会发现返回值为[]

这是因为此时虽然以太坊的私有链已经被创造出来,但还没有任何账户。

  • 输入命令personal.newAccount("xxx"), 该命令将创造一个新的用户,该用户的密码是xxx. 当然用户也可以将xxx改为123,或者123456,或者任意密码
  • 再次输入命令 eth.accounts, 我们会发现一个新的用户被创建了出来,这就代表我们已经创建了一个账户,重复personal.newAccount() &eth.accounts 我们可以创建若干个账户出来

整个命令截图如下:

Step 5: 输出区块链的Log

  • 在Step 3中,我们执行的代码
    geth --datadir "./" --nodiscover console 2>>geth.log
    

    其中的代码 console 2>> geth.log 代表将控制台的一部分输出,输出到文件geth.log上去。

  • 打开另一个终端,找到geth.log的所在目录,执行命令 tail -f geth.log 从而持续的输出以太坊的日志

整个过程如下图所示:

Step 6: 最重要的一步来了,开始挖矿!

  • 在命令行中执行命令 miner.start(), 开始在我们的区块链上进行挖矿

  • 此时Geth.log的输出应该是这样的

一直等到100%。这个以太坊私有链就会正式启动,并持续不断的生成出以太坊来。

注意点:

1. 挖矿挖到的ether币会默认保在第一个账户中,即eth.acccounts[0]中。
2. 挖矿是执行智能合约的基础。如果停止挖矿的话,不仅以太币会停止生成,所有智能合约的调用也会不起作用。
3. 如果真的要停止挖矿,可以执行命令miner.stop()来停止挖矿
4. 按上面的命令,应该是可以实现以太坊挖矿的。如果不行的话,有可能就是之前有存在的链,此时应该删除之前的数据。在Mac下即删除~/.ethash文件夹和里面的文件即可

Step 7: 最终当挖矿启动的时候的日志是这样的

Step 8: 挖矿启动后,查看主账户的以太币数量

acc0 = eth.accounts[0]
eth.getBalance(acc0)

结果只要不为0,那就说明挖矿成功!

下一章,将讲解geth中的若干概念,以及一些基本命令

原文链接:http://www.ethchinese.com/?p=659







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值