brockchain dev

【ブロックチェーン プログラミング】Solidity 入門 環境構築編

  • 2023年5月3日
  • IT
IT brockchain dev
proguraming

今回の目的は

明確です

Solidityの開発を進めるための

開発環境の構築です

早速始めたく思います。


この記事を必要とする方はPCがメインです

モバイルでは見にくい部分があることを

ご了承ください


しかし、始める前に

環境がなければ、開発もままなりません

プログラミングの習得どころではないです。

今回、環境を構築からです。


私の環境です

OS macOS Ventura 13.01
CPU Apple シリコン M2
メモリ 16G

Appleシリコンなので少しクセありです

現状windowsの方が使いやすいかもですね

Linuxの構築経験があれば良いですが

構築経験がない場合は、

Linuxの知識もすくなからず

必要です。


また、今回は直接インストールしますが

上級者はdocker上で構築する方が

ローカルの環境を汚さなくていいです。


今回は、株式会社オライリー・ジャパンが発売している

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

開発環境の構築を

最新のバージョンでmacOSで解説します。

(2023年5月)

  実務経験が無い

でもプログラミングで食べていきたい!!

結論:大丈夫です

question_person
わからんち
実務経験が無いから
プログラミング勉強して頑張っても 
むりだよね
kamyuri
かみゅり
大丈夫だよ 

だって僕がそうだったし 
実際にIT企業で働いているよ 

question_person
わからんち
書類選考でおとされて
面接までも行けないよ〜〜💦 
kamyuri
かみゅり
じゃプログラミングスクールを 
活用してみたらどうだろう? 

僕もインターンから企業に入って 
実務経験積んだよ 

〜〜〜 実務経験なしでIT業界に入る 〜〜〜
〜〜〜 一番の近道を教えます 〜〜〜

「プログラミングスクール」を利用しましょう
(専門学校でもいいですが時間・お金が必要です、通常の就職活動になり逆にハードルが上がります。)

プログラミングスクールに通い、企業とのインターンシップでのアルバイトを利用し
環境下に身を投じてください。
プログラミングスクールでは企業と協力して
インターン制度を利用する場合があります
それを利用するのです。

なぜなら必ずと言ってIT関連の企業が入って仕事をしています。
雇い主の企業、または、請負・契約等で
入っている企業のいずれかに気に入ってもらうことです。

そこで、入社すれば
あなたは、実務経験者になることができます
いままで相手すらしてくれなかった企業の面接にも通るでしょう
人伝いに入社することが一番の近道です。

そのため、プログラミングスクール等を利用するのが良いです

初めは不安ですよね?
相談から聞いてもらえる
プログラミングスクールを紹介します。


DMM WEBCAMP

1 未経験から転職、就職を本気で考えている方向け。
2  オンラインで学習完結が可能。
3  現役エンジニアによる充実したサポート体制。

DMM WEBCAMP公式サイトへ

ネットビジョンアカデミー

ITスクール【ネットビジョンアカデミー】
1 ネットワークエンジニアに特化したスクール、これは珍しい、ネットワークエンジニアは重宝されます、WEB3でも変わりないです。
2  1ヶ月間のネットワークエンジニア養成研修を経て、就職活動までサポートします。
3  未経験から正社員のITインフラエンジニアとして就業できるよう1からサポート。

ネットビジョンアカデミー公式サイトへ

ウズカレIT

20代向けITエンジニア特化型就職サポート【ウズカレIT】
1 寄り添った丁寧なサポートと驚異の内定率・定着率
2  就職サポートのみならずIT学習のサポートも受けられる (※どちらも完全無料)
3  ブラック企業を徹底排除! (重要!!)

ウズカレIT公式サイトへ

ウズウズカレッジ Javaコース

ウズウズカレッジ Javaコース
1 Javaシルバーの取得を目指すITスクール
2  月額44,000円(税込)~破格のサブスクモデル
3  さらに!コース受講 → 転職成功で【実質全額無料】!
ウズウズカレッジで就職/転職成功したら、受講料をキャッシュバック! (うれしい)

ウズウズカレッジ公式サイトへ

tech boost

TECH BOOST
1 目的に合わせてカリキュラムが選べる
スタンダートコース」、「ブーストコース」を目的に合わせて学習スタイルを選択可能
2  現役エンジニアによる挫折させないサポート
1人につき1人の担当メンターが付く (心強い)

3  転職・就職サポートつき

tech boost公式サイトへ

TechAcademy [テックアカデミー]

1 受講生に1人ずつ現役のプロのパーソナルメンターがつく
2  チャットで質問すればすぐにプロから回答が返ってくる
3  初心者が9割以上。挫折せずに学べる

テックアカデミー公式サイトへ



ブロックチェーン技術でのサーバーとクライアントについて


network

本題にはいるといいつつ・・

まあちょっと待ってください

初心者は

ブロックチェーンでのサーバーとクライアントの

イメージがつかないと思います。

この辺を理解していないと

今後よくわからなくなりますので・・・

ちょっと説明しましょう。


クライアントとは

browser

サーバーへ繋げるソフトウェアのこと

一般にわかりやすいのは

HTTPクライアントなどです

これはサーバーへ、RESTプロトコルを利用して繋げます

皆さんが使うブラウザもその一つ

今回はローカルにサーバーを構築し

テスト環境として繋げます


サーバーとは

server

サーバーも幅広いですが

サーバーとは、

サーバー機器が設置されたサーバー群であり

実際のコンテンツや

プログラムが存在する場所のことをさします。

インターネットではIPアドレスが割り当てられており

ドメインが存在します。

そのドメインが管理するコンテンツや

プログラムが稼働している機器、場所のことです。


ブロックチェーンでは

サーバー群のような実態は存在しません

それはP2Pが基礎となっており

サーバーではなく、分散されたノードが連なって

ブロックチェーンのネットワークを構築します


開発で必要になるのが

クライアントと

実際にブロックチェーン上で動作させる

プログラムを作成するツールです

ただし、いきなり本番環境のブロックチェーンには繋げず

ローカルの環境でブロックチェーンを動作させ

ローカル上で接続し

開発、テストを繰り返し

完成したものを本番環境(ネット上のブロックチェーン)へ

つなげることになります。


Appleシリコンのmacのshellの注意事項


apple

現行のAppleは

Appleシリコン搭載のmac

M1、M2と言われるCPUに変わり

OSで利用するshellも変更がかかっています

以前はbashであったのですが

zshに変更されています。


これがなかなか厄介

bashで動いていたものが動かないなど

ところどころ問題がでます

私は、zshに変更しています。

ちょっと脱線しますが

zshからbashへ変更する方法を紹介しておきます。

ターミナルを立ち上げて下記コマンドを実施

$ echo $SHELL
/bin/zsh

通常はzshと表示されます。

$ chsh -s /bin/bash
Changing shell for XXXX
Password for XXX: 

Passwordを聞いてくるので

パスワードを入力して

SHELLを切り替えます

これで一度は切り替えますが

デフォルトのSHELLはzshのままなので

いろいろと私は困りました。

なので、.bash_profileを作成して

ユーザのデフォルトのSHELLを変更します。

$ cd ~
$ touch .bash_profile
$ vi .bash_profile

.bash_profileでPATHを通します

色々と私の環境は通っているので、一例です

PATH=/bin:/usr/bin:/usr/local/bin:/opt/homebrew/bin:${HOME}/geth:${PATH}
export PATH 

ただ、これだけではうまくいかなかったので

ターミナルの設定…から開くシェルを

コマンド(完全パス)を選択して

/bin/bash に変更しました。

mac shell window


Homebrew


homebrew homepage

homebrewはいろんなページで詳しく紹介されているので

細かくは説明しません

簡単なインストール手順、アンインストール手順を紹介しておきます。

macOS上で
パッケージのライブラリなどの依存関係など
管理してくれるツールです
いろんなソフトを入れる場合
その依存するライブラリを探し
別途インストールのは大変です。
また、バージョンによっても違いがあります
そういったパッケージを管理してくれるツールです。

homebrewのインストール


Homebrew HP

https://brew.sh/index_ja から

Homebrewのページに遷移し

画面に表示されているコマンドをコピーして

ターミナル上で実行します

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

ターミナルに表示される内容にしたがって

進めてください。

ログインパスワード等聞かれるので、入力して進めます。

Homebrewのアンインストール

https://github.com/homebrew/install#uninstall-homebrew に詳しくは載っています

アンインストールする場合は

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"

画面の指示に従って対応をお願いします。

簡単ですが紹介でした。


Parity (クライアントソフト)


Parity homepage

Parityとは

RUSTという言語で作成されたイーサリアムクライアントソフトです。

バイナリファイルでインストールも問題ないのですが

何かあった場合に容易に管理可能な

homebrew上でインストールします。


Parityのインストール


Parityクライアントは

brewのインストールコマンドにて

インストールします。

tapは、公式以外のリポジトリのパッケージを

homebrewに取り込むための準備と思ってください

通常はgithubから取得です。

$ brew tap ethcore/ethcore

インストールです

brewのインストールコマンドを利用します。

$ brew install parity

parityの起動方法

$ parity --chain=goerli

起動させると下記のようなログが出力される

control+Cで終了させましょう

2023-05-04 15:04:08  State DB configuration: fast
2023-05-04 15:04:08  Operating mode: active
2023-05-04 15:04:08  Configured for Görli Testnet using Clique engine
2023-05-04 15:04:14  Public node URL: enode://128e5eea7edfb9bc2f5b91a43e5ba356b26c0674dfa23c064cb955797aa8d53025e27ab24f5adde4d4f73ce795e7ec290861cef11838a347a445c8deb2c5354a@10.41.208.148:30303
2023-05-04 15:04:38     0/25 peers   920 bytes chain 91 KiB db 0 bytes queue 616 bytes sync  RPC:  0 conn,    0 req/s,    0 µs
2023-05-04 15:05:08     0/25 peers   920 bytes chain 91 KiB db 0 bytes queue 616 bytes sync  RPC:  0 conn,    0 req/s,    0 µs
2023-05-04 15:05:38     0/25 peers   920 bytes chain 91 KiB db 0 bytes queue 616 bytes sync  RPC:  0 conn,    0 req/s,    0 µs

Parityのアンインストール


parityのアンインストールは

今回、brewを使っているので簡単です

brew uninstall <パッケージ名> です

$ brew uninstall parity

MetaMask


関連記事

わからんち MetaMask聞いたことあるよキツネさんの顔したお財布アプリでしょ? kamyuri そうだよwalletはいくつも種類はあるけどほぼみんなが利用するであろうMetaMaskの紹介だよ […]

fox

MetaMaskは有名ですね

あえて詳しくは説明いらないかと

WEB3で必須になるウォレットです

開発でも使いますのでインストールしましょう。

インストールは過去記事で・・・


Node.js


node

Node.jsはJavaScriptランタイム

いままではjavascriptというと

クライアントで動作させるランライムでしたが

Node.jsの登場でクライアントだけでなく

サーバーも対象となり

いまではいろんなアーキテクトで必要になる言語となっています。


Node.jsのインストール


Node.jsのインストールですが、

brew install で実施するものの

いきなりNode.jsを指定しません

nodebrewを利用します。

Node.jsの複数のバージョンを1環境で管理するためのツールです

ではnodebrewのインストールです

$ brew install nodebrew

で・・・終わりと言いたいのですが

これでは終わりません

よく画面をみてください

You need to manually run setup_dirs to create directories required by nodebrew:
  /opt/homebrew/opt/nodebrew/bin/nodebrew setup_dirs

Add path:
  export PATH=$HOME/.nodebrew/current/bin:$PATH

まだ作業してくださいと画面に出ているではないですか?

画面の表示通りに

下記コマンドで自分のhomeディレクトリに、

.nodebrewのセットアップを行います。

そのコマンドの通りですが、root権限がいると思います。

$ sudo /opt/homebrew/opt/nodebrew/bin/nodebrew setup_dirs

何もおらないように見えますが・・・

下記コマンドで確認するとセットアップされていることがわかります。

$ ls -la

.nodebrewのディレクトリが作成されているはずです

まだ、このままではnodebrewのコマンドが使えません

PATHの設定をします

私はbashに変更しているため.bash_profileに設定します

PATH=/bin:/usr/bin:/usr/local/bin:/opt/homebrew/bin:${HOME}/geth:${HOME}/.nodebrew/current/bin:${PATH}
export PATH

ご自分の環境に合わせ設定ください

その後確認です

$ nodebrew -v
nodebrew 1.2.0
・・・・
・・・・

この状態だと、肝心のnode.jsはインストールされていません

まずは、利用可能なバージョンを確認

$ nodebrew ls-remote

最新版を入れることにします

後で、修正はできますからね・・・

nodebrew install-binary <version> でインストールします

$ nodebrew install-binary v20.1.0 

これでインストールされますが

インストールされた内容を確認します

$ nodebrew ls
v20.1.0

current: none

確かにインストールはされましたが

current:none の表示されています

これはまだ利用するバージョン指定されていないためです

$ nodebrew use v20.1.0
use v20.1.0

これでnode.jsのインストールが完了です

$ nodebrew ls
v20.1.0

current: v20.1.0

Node.jsのアンインストール


node.jsのアンインストールも紹介しますが

nodebrew uninstall <version>

nodebrew clear <version>

nodebrewもアンインストールする場合は

brew uninstall nodebrew

今回の例では下記コマンドですね

必要に応じ.nodebrewのディレクトリがある場合には

そちらも削除、PATHの設定からも削除しましょう

$ nodebrew uninstall v20.1.0

$ nodebrew clear v20.1.0

$ brew uninstall nodebrew

Truffle Suite


truffle suite

Truffle Suiteをセットアップします

truffleとGanacheを合わせてsuite と呼び

truffleは
コントラクト言語を開発するための開発フレームワークです。

Ganacheは
ローカル環境でローカルブロックチェーン環境を構築してくれます。
開発用にプライベートブロックチェーンを準備できます。

https://formulae.brew.sh/formula/truffle では

brew install に対応しているみたいです


truffleのインストール


$ brew install truffle

簡単ですね

念の為バージョンを確認しましょう

$ truffle version
Truffle v5.8.4 (core: 5.8.4)
Ganache v7.8.0
Solidity v0.5.16 (solc-js)
Node v20.1.0
Web3.js v1.8.2

truffleのアンインストール


もう気がついておられると思いますが

homebrewを使っているので

brew uninstall を利用します

念の為 truffleのインストールフォルダも確認して

削除が良いと思います。

$ brew uninstall truffle
$ which truffle
#必要に応じて、フォルダごと削除で

Ganacheのインストール


https://formulae.brew.sh/cask/ganache では

こちらもbrew installに対応しているっぽい

でも–caskの指定が

現状のバージョンって–cask指定しなくても

よくなったはずですが・・・

ちょっと怖いので・・・

指定通りコマンド発行します。

$ brew install --cask ganache

GUIも含みますので

少し時間がかかります

気長に完了まで待ちましょう

インストールが完了すると

GUIなので

Launchpadで確認するとICONが表示されています

ganache icon

これでインストール完了です


Ganacheのアンインストール


brewでインストールしたので

brew uninstall –cask ganache

で可能と思います

GUIですので、macのGUIからも

削除可能ですが

念の為brewから削除する方が良いと思います。

$ brew uninstall --cask ganache

まとめ


初心者は特に開発環境の設定で

手こずることが多いです

また、設定が間違った場合にも

削除でも手こずることもあります

少しでも役に立てるよう

インストール、アンインストールについて

ブロックチェーンのコントラクト言語の

開発に必要な環境面のセットアップについて

まとめました。

すこしでも役に立てば幸いです

さて、実際にプログラミングでの

内容はまた次回で・・・

仮想通貨への関心は底辺、今がチャンス

2024年秋からのバブルに備えよう

おすすめの国内取引所


Coincheck

Coincheckの特徴

  1. 比較的扱っている通貨が豊富
  2. セキュリティについては、国内でもトップクラス
  3. さまざまな日本円の入金方法
    • 入金は銀行振込、コンビニ入金、クイック(Pay-easy)入金が選択可能
    • クイック入金では金融機関の営業時間にかかわらず、24時間365日決済

  4. NFTの取引ができる


未来への投資へ Coincheckはこちらから

コインチェック

Coincheck公式サイトへ

SBI VCトレード

SBI VCトレードの特徴

  1. SBIグループが運営する安心安全の暗号資産取引所
  2. イーサリアム(ETH)のステーキングが可能に
  3. 取引手数料がすべて無料
    • 口座開設手数料
    • ロスカット手数料

    • 口座維持手数料

    • 入出金手数料

    • 取引手数料

    • 入出庫手数料


SBIのネットワークを最大に利用できる

SBI VCトレード

SBI VCトレード公式サイトへ

BitTrade

ビットトレードの特徴

  1. APT、TONなど取り扱い通貨が豊富
  2. セキュリティ評価、世界最高水準
  3. BTC/JPY取引所の取引手数料が無料
  4. Maker0.000%~0.200% Taker0.000%~0.200% ※コインにより違います

ビットトレードでブロックチェーンの世界へ

フォビジャパン

ビットトレード公式サイトへ

brockchain dev
最新情報をチェックしよう!