Closed14

「SolidityとEthereumによる実践スマートコントラクト開発」の沼1

ikmzkroikmzkro

3.1.1 Parityのインストール(p34)

WSL2 Ubuntu20.04 LTSにParityをインストールしたが正常な応答が来ない。

username@LAPTOP-XXXXXXX:~$ bash <(curl https://get.parity.io -L)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: get.parity.io
ikmzkroikmzkro

ちなみに、MetaMask, Node.js, Truffle, Ganacheは正常にインストールおよび設定が完了した。

ikmzkroikmzkro

本書では、Goerliネットワークを扱うことを想定しており、このネットワークはGethやParityなどのイーサリアムクライアントに対応できるよう設計されている。

どちらのイーサリアムクライアントを扱うかだが、こちらの記事によるとOpenethereum/ParityでGoerliを起動しようとするとmigration関連のエラーが吐かれるとのこと。

GethでGoerliネットワークに接続する選択がうまくいくようなので、その方針で進めていく。

ikmzkroikmzkro

Gethのインストール

sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum
ikmzkroikmzkro

プライベートネットワーク管理ディレクトリの作成

mkdir geth
cd geth
ikmzkroikmzkro

genesis.jsonファイルの作成

genesis.jsonとは、ブロックチェーンXの初期ブロックX[0]を作成するための情報を格納したもの。

touch genesis.json
ikmzkroikmzkro

genesis.jsonファイルの編集

vi genesis.json

iコマンドでINSERTモードに変換して以下の内容をCtrl-Vでペースト

{
  "config": {
    "chainId": xx,
    "homesteadBlock": 0,
    "eip150Block": 0,
    "eip155Block": 0,
    "eip158Block": 0,
    "byzantiumBlock": 0,
    "constantinopleBlock": 0,
    "petersburgBlock": 0
  },
  "alloc": {},
  "coinbase": "0x0000000000000000000000000000000000000000",
  "difficulty": "0x20000",
  "extraData": "",
  "gasLimit": "0x2fefd8",
  "nonce": "0x0000000000000042",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp": "0x00"
}

EscキーでINSERTモードを終了し、:wqキーで保存して退出。

※上記の流れはLinuxコマンドでも可能だが、code .でVSCodeを開いて編集してもよい。

ikmzkroikmzkro

Gethの初期化と起動

geth --datadir ./ init ./genesis.json
geth --networkid 10 --datadir . 2>> ./node.log console

!アカウント作成前にCtrl-Zで退出してはいけない。もし退出した場合の復帰方法を私は知らないので、力業で申し訳ないがgethフォルダを削除して最初からやり直すべきだ!

ikmzkroikmzkro

Gethアカウントの作成

Gethコンソールで以下のコマンドを叩き、パスワードを2回入力する。

> personal.newAccount()
Passphrase: XXXXX
Repeat passphrase: XXXXX

すると、アカウントアドレスが発行されます。
”xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”

このスクラップは2022/05/28にクローズされました