【Solidity】スマコンを実装してみた話1~環境構築編~
最近ブロックチェーンに興味を持ち始めて、Solidityでスマコンを作成してみようとしてみた話を書きます!
ちょっと用語とかも含めていきたいので、段階的に記事にしたいなと思い環境構築編です。
今回は・・・。
- GanacheでEthereumのローカルネットワーク(以下、プライベートネットワーク)の構築
- MetaMaskのインストール
Ethereum(イーサリアム)とは
イーサリアムとは、分散型アプリケーションやスマート・コントラクトを構築するためのブロックチェーン・プラットフォームの名称、及び関連するオープンソース・ソフトウェア・プロジェクトの総称であり、イーサリアム・プロジェクトによって開発が進められている。
ソース:Wiki
Solidityとは
Solidityとはスマートコントラクト(後述)を作成するための機能を備えたプログラミング言語です。 文法構文はJavaScriptに似ています。 Solidityはオブジェクト指向(データ処理のまとまりを組み合わせていくプログラミング手法)であり、人間にとって理解しやすい構文である高級言語です。
ソース:Wiki
MetaMaskとは
MetaMaskは、Ethereum系ブロックチェーンの通貨やNFTを一括で補完・管理できるソフトウェアウォレットであり、ブラウザ拡張機能版とモバイルアプリ版がある。2016年9月に公開され、ConsenSysという会社によって開発・運営されている。
ソース:Wiki
環境
- Windows(10)
- Ganache(2.7.1)
- プライベートネットワーク用
- MetaMask
事前準備
- Ganache-x.x.x-win-x64.appxのダウンロード
手順
Ganacheのインストール
- Ganache-x.x.x-win-x64.appxをダブルクリックします
- 画面の指示に従ってインストールを進めてください
- 起動したら↓こんな感じです
MetaMaskのインストール
- 「Chrome Web Store」を表示します。MetaMask
- 「Chromeに追加」をクリックしてインストールを進めてください
Ganacheの設定
ここは「QUICK START」を選択します。
そうすると↓のような画面になります。
「http://127.0.0.1:7545」でプライベートネットワークが起動します。
さらに一覧で表示されているアドレス(これはウォレットアドレスかな)に、それぞれ「100ETH」ずつ保有しているということです。
ウォレットアドレスとは
ウォレットアドレスとはブロックチェーンウォレットに紐づくランダムに生成された文字列のこと。 公開鍵とも呼ばれる一種のアドレスで、暗号資産やNFTの送受信に使われます。
ソース:第1回 ウォレットアドレスの作り方 - MASSAGE MAGAZINE
ちなみに、財布とか口座番号って表現でも間違いではないと思います。
が、基本的にウォレットアドレスの中身は公開情報です。
例えば、ウォレットアドレスAを使っていたとします。
取引所からウォレットアドレスAに10ETH送ったら、送金履歴の情報は誰でも見ることができます。
さらに、どのくらいの暗号資産を持っているかも全部わかっちゃいます。
基本的には、ウォレットアドレス単体では個人情報(名前とか)と紐づいていないので、「誰か」を特定することはできません。
ただ、使用しているサービスやスマコンの実装によっては、個人を特定することもできるかもです。
なんで100ETH付与されてるの?
スマートコントラクトは何をするにもガス代(手数料)がかかります。
なので、ローカル環境とはいえ、マネーが必要なのです。
ガス代が必要なシチュエーションの例としては・・・。
- ウォレットアドレス間での送金
- スマコンのデプロイ
- スマコンの実行
などなど
MetaMaskにウォレットアドレスの設定
MetaMaskは、↓がそれぞれ行えます。
- 新規でウォレットアドレス作成
- 既存のウォレットアドレスのインポート
今回はGanacheが作成したウォレットアドレスをインポートします。
が、インポートするために適当にウォレットアドレスを作成する必要があります。
- チェックを入れて、「新規ウォレットを作成」をクリック
- 画面の指示に従って操作を進めてパスワードの作成をします
※MetaMaskを開くためのパスワードなのでお忘れなく。
- ウォレットの保護
「ウォレットアドレスは公開情報」とお伝えしましたが、ウォレットアドレスを別のデバイスで使うとか、Chrome再インストールした時とかに、同じもの使いたいことがあると思います。
そこで必要になるのが、↓です。
- シークレットリカバリーフレーズ
- ニーモニックや、シードフレーズともいわれたりします。
- プライベートキー
- 秘密鍵とかともいわれたりします。
シークレットリカバリーフレーズ
シークレットリカバリーフレーズは12単語のフレーズで、ウォレットと資金への「マスターキー」となります。
- 画面操作を進めていくと、こんな感じで作成されます
Ganache→MetaMaskにウォレットアドレスインポート
-
鍵マークをクリックして、秘密鍵を表示させます
-
PRIVATE KEYをコピーします
-
MetaMaskを表示します
アカウントの名前をクリックして・・・。
-
「Add account or hardware wallet」をクリックします
-
「アカウントをインポート」をクリック
-
Ganacheで表示したPRIVATE KEYを貼り付けて「インポート」をクリックします
MetaMaskのネットワークを変更
Ganacheが構築したプライベートネットワークにアクセスできるようにMetaMaskの設定します。
-
赤枠をクリック
-
「ネットワークを追加」をクリック
-
「ネットワークを手動で追加」をクリック
-
以下設定して、ネットワークを切り替えます。
- ネットワーク名:任意
- 新しいRPCURL:http://127.0.0.1:7545
- チェーンID:1337
- 通貨記号:ETH
ネットワークを切り替えたら、なんと100ETHが表示されているではありませんかっ!
補足
Ethereumの環境は・・・。
- ローカル環境
- Ganacheとかで構築するやつ
- Test Net(Goerliとか)
- インターネット上に公開されていて、イメージはステージング環境でしょうか。
- Main Net
- いわゆる本番環境
ってのがあります。
それぞれのネットワークのEthがあれば、誰でもスマコンをデプロイすることができます。
ですが、ガス代がかかります。
ローカル環境のEthは好き放題使えますが、Test Net・Main Netはそうはいきませぬ。
- Test Netは誰かからもらうか、サイトからちょいちょい配布してもらって貯める。
- 別途記事にしますかね。
- Main Netは実際取引でEthを買わないといけないので、リアルマネーが必要です。
あとがき
改めて記事にすると、書きたいこととか情報量が多いですねぇ・・・。
慣れてしまえば当たり前だったりするのですが、暗号資産とかNFTの敷居が高いのは、この辺が原因でしょうか。
とはいえ、スマコン開発をする準備はできました。
Discussion