首页
社区
课程
招聘
RaspberryPi上编译Geth钱包、加入私链并开始同步区块
发表于: 2018-11-1 19:02 10654

RaspberryPi上编译Geth钱包、加入私链并开始同步区块

2018-11-1 19:02
10654

上次我们聊了在 ubuntu 上安装 Geth 钱包、搭建私链和创世区块。主要内容为:

  • 介绍文章的流程,有个初始的了解;
  • ubuntu的虚拟机可以采用Virtual Box,或者Vmware;
  • 安装go-ethereum客户端geth,轻节点模式与主网进行同步;
  • 配置创世区块,根据创世区块初始化私链;
  • 运行私链;

今天我们将学习 在Raspberry Pi上安装 Geth 钱包、加入私链并开始同步区块。其关键步骤为:

  • 介绍文章的流程,有个初始的了解;
  • 树莓派的初始化配置;
  • 升级golang、编译安装go-ethereum客户端geth,轻节点模式与主网同步;
  • 根据创世区块初始化私链;
  • 运行私链;
  • 将节点配对起来,成为真正的“链”。

首先将树莓派连接好,然后将其初始化,即安装这个节点。先进行钱包编译,在需要更新的地方进行更新,执行以下命令:

sudo apt-get update

再执下面这个命令,这个过程会花费比较长的时间:

sudo apt-get dist-upgrade

然后进行配置:

$ sudo raspi-config

首先,第一次进行配置的时候,内存不够,因为 CPU 的一些内存会分配一些给 GPU,所以要把 CPU 上的128G内存拿回来。

 

直接让系统启动到命令行模式,不要启动到GPU图形界面,避免浪费很多时间。

$ sudo raspi-config

0

 

具体参数设置为:

  • 3 → Boot
  • B1 → Desktop / CLI
  • B1 → Console
  • 7 → Advanced
  • A3 → Memory Split
  • 16 (MB)
  • Reboot

安装插件:

$ sudo apt-get install git golang libgmp3-dev

将钱包拷贝下来,并进行编译,编译过程中将会用到 golang,它对版本要求比较高,1.7的版本其实已经比较旧了,至少1.8以上的版本才可以。本实验将采用1.8.12来做实验,安装包可以从:https://github.com/ethereum/go-ethereum/releases 下载。命令行为:

wget https://github.com/ethereum/go-ethereum/archive/v1.8.12.tar.gz

然后进行解压缩,得到它的源码。

tar -zxvf v1.8.12.tar.gz

得到源码之后进行编译:

make

视频中,此操作失败,是因为 golang 至少需要1.9的版本才能执行,而此安装包为1.7.4版本,故还需升级版本。升级的方法已经在前面的文章讲的很清楚了。按照文章中的方法,把程序升级一遍。

 

可以看到编译时树莓派的内存占用率不高,但是CPU的占用率是满的。
2

 

升级完 golang 并编译完成后,把可执行文件拷贝到 usr/local/bin/中。

$ sudo cp build/bin/geth /usr/local/bin/

然后进行“根据创世区块初始化私链”这步。

 

第一步:初始化私链就是使用一个json文件,将其拷贝到树莓派中。

 

1

 

创建一个新账户。但文件夹的名字需要与ubuntu中的文件类似。

$ geth --datadir .ETHStateGrid account new

设置账户钱包的密码,并记录下账户钱包的地址。

 

第二步:用json文件初始化 ETHStateGrid 文件夹。

$ geth --datadir .ETHStateGrid init ETHStateGrid.json

3

 

然后进行节点的运行。

$ geth --identity pi --rpc --rpcport 8080 --rpccorsdomain "*" --datadir .ETHStateGrid --port 30303 --nodiscover --rpcapi "db,eth,net,web3" --networkid 555 console

查看账户的地址:

> eth.accounts

> primary = eth.accounts[0]

> balance = web3.fromWei(eth.getBalance(primary), “ether”);

但是该地址的余额为0,因为我们预先没有给这个账户分配以太坊。

 

第三步:将两个节点连接起来,这是比较容易失败的地方。因为我们不希望节点被发现,所以用nodiscover选项开启节点的运行,所以我们用其他的方式将这两个节点配置好连接起来。我们将刚刚初始化的文件夹配置一个 static-node.json文件,将双方节点的url文件拷贝进去。

 

查看树莓派的节点信息可通过:

> admin.nodeInfo.enode

可以看到这个节点是由双方的信息构造。

 

配好后,双方都能看到对方的信息。

 

到目前为止,我们创建了私链,配置好了一个连接的节点,下一节课将讲如何在两个节点之间进行转账,通过挖矿来讲转账实施成功。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 4
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
2
能加你微信吗?
2018-11-1 22:30
0
雪    币: 3907
活跃值: (5817)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
3
wanalj 能加你微信吗?
r0ysue
2018-11-2 02:28
0
游客
登录 | 注册 方可回帖
返回
//