Edited at

Raspberry PiでEthereumクライアント(geth)をインストールする。

More than 1 year has passed since last update.


やったこと:

Raspberry piにEthereumクライアント(geth)をインストールする。

インストールしたgethから既存のウォレットアドレスをインポートして残高を確認してみる。


使うもの:

 Raspberry Pi model B (512MB)

 (OS:Raspbian GNU/Linux 8)


方針:

  Raspberry piのCPUはARMを使用しているが、gethの公式でもバイナリが提供されているので、それを使用する。


Step1:ダウンロード:

 Raspberry pi(model B) はARMv6のCPUなので、gethのバイナリもそれに合わせてダウンロードする。

 (Raspberry pi3はARMバージョンが違うので注意)

$ wget https://gethstore.blob.core.windows.net/builds/geth-linux-arm6-1.7.2-1db4ecdc.tar.gz


Step2:インストール:

 /usr/localにgethをインストールする。

$ sudo tar -C /usr/local -xzf geth-linux-arm6-1.7.2-1db4ecdc.tar.gz

PATHを通す

~/.bashrcに次を追記


~/.bashrc

 export PATH=$PATH:/usr/local/geth


bashrcを再度読み込み、PATHを更新する

$ source ~/.bashrc

今後のバージョン変更に備えて、シンボリックリンクを作る。

(何度もPATHを設定し直したくないので、バージョンが変わったとしてもシンボリックリンクを作りなおせば

 PATHが通るようにしておく)

$ sudo ln -s /usr/local/geth-linux-arm6-1.7.2-1db4ecdc /usr/local/geth


Step3:gethの実行

gethを実行した時に、チェーンデータを格納するディレクトリを作っておく。

同期モードはLightクライアントモードで動かす。

$ mkdir light_mainnet

$ geth --datadir "~/light_mainnet" --syncmode "light" console --rpc --rpcaddr "localhost" --rpcport "8545" --rpcapi eth,web3,personal

別にコンソールを開いて確認したい場合は、geth attachを使用する。

$ geth attach ipc:/home/umidachi/light_mainnet/geth.ipc


Step4:確認

ウォレットアドレスをgethにインポートして残高を確認してみる。

すでにウォレットを持っていて、ラズパイからも残高を見れるようにするためには

MyEtherWalletから秘密鍵を取得して、インポートするのが手っとり早い。

(この秘密鍵は暗号化されていないので知られると危険。取り扱いは注意すること。)

下記のURLにアクセスして、自分の秘密鍵を確認しておく(下図赤枠)。

MYEtherWallet: https://www.myetherwallet.com/#view-wallet-info

Screenshot from 2017-09-17 20-17-45.png

geth上でimportRawKeyを使ってラズパイ用に使いたいパスワードを設定する。


geth

> web3.personal.importRawKey("<秘密鍵>","<設定したいパスワード>")

(出力例)
"0x○○○○○○○○○〜" (←インポートしたウォレットのアドレスが出力される。)

インポートしたアドレスがgethに反映されているか確認する。


geth

> personal.listAccounts

(出力例)
["0x○○○○○○○○○〜"]

インポートしたウォレットアドレスの残高が確認できたらOK。


geth


> eth.getBalance(eth.accounts[0])
(出力例)
312892010075299350

上記のとおり残高が出力できた。(ETHに換算すると10^18を割った値になる。実際0.31ETH程度)


参考にしたもの:

http://raspnode.com/diyEthereumGeth.html

https://github.com/ethereum/wiki/wiki/Raspberry-Pi-instructions

https://ethereum.github.io/go-ethereum/install/

https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-ARM

http://redcorner.io/blog/building-ethereum-light-client-on-chip/

https://geth.ethereum.org/downloads/

https://ja.wikipedia.org/wiki/Raspberry_Pi