こんにちは。日本のNFTをみんなで盛り上げて応援したい!AIにも興味深々のWeb3じいじのko_sanです。
東大のブロックチェーン講座を受けているけど、だんだん難しくなってきて、プログラミング未経験の初心者にとってはついていけなさそう
私もそうですが、少しでも理解をするために、2024年第10回のDAOの簡易実装の講義の内容を整理して、その中で開発環境の整備と理解するところまで整理してまとめてみました。
1回の講義内容では盛りだくさんで、プログラミング初心者にとってはついていけませんでしたが、講義の構成をブレークダウンして、1つ1つできるところまでキャッチアップしてみようと思います。
今回は開発環境を理解するのところまでを、実際エディターの
VSCODEのインストール、FoundryのインストールとMetaContractの概要の理解のところまで進めました。
◾️第10回のDAOの簡易実装の講義の全体構成
こちらが全体構成です。この記事では、〇開発環境を理解するのところを、プログラミング初心者の私が悪戦苦闘して開発環境のインストールとそれらの意味を理解するところまで進めた内容をまとめました。
◾️開発環境を理解する
Solidityの開発環境として3つが紹介されています。それぞれ、どんな環境なのかを理解しておくと次に進みやすいです。
1)エディター:
2)スマートコントラクト開発環境のFoundryとは
3)スマートコントラクト開発フレームワークのMetaContractとは
1)エディター
文章をつくるときのテキストエディターのプログラム版と思えばわかりやすいです。とりあえずVSCODEをMacにインストールしました。
2)スマートコントラクト開発環境のFoundryとは
Foundryというのは、Solidityのプログラムでプロジェクトを作成するための環境のようです。こちらのページをみてみたところ、概要としては、
「Foundry は依存関係を管理し、プロジェクトをコンパイルし、テストを実行し、デプロイし、
コマンドラインや Solidity スクリプト経由でチェーンと対話できるようにします。」
ということです。ここでいう「依存関係」とは、ソフトウェアプロジェクトが正しく動作するために必要な外部のライブラリやモジュール、パッケージのことを指します。
具体的な手順としては以下となるようです。
ここでForgeのインストール方法をAIに聞いた結果が以下です。
手順1: 必要なツールのインストール
macOS/Linuxの場合
- ターミナルを開きます。
- 以下のコマンドを実行して、
foundryup
をインストールします。
curl -L https://foundry.paradigm.xyz | bash
Windowsの場合
- PowerShellを管理者権限で開きます。
- 以下のコマンドを実行して、
foundryup
をインストールします。
iwr -Uri https://foundry.paradigm.xyz | iex
手順2: foundryup
のセットアップ
インストールが完了したら、以下のコマンドを実行してfoundryup
を初期化します。
foundryup
手順3: Forgeのインストール確認
Forgeが正しくインストールされたことを確認するために、以下のコマンドを実行します。
forge --version
言葉の意味について:スマートコントラクトをテスト、ビルド、デプロイするとは
ここで、スマートコントラクトをテスト、ビルド、デプロイする意味についてAIに聞いた答えがこちらです:
これらの手順を経て、スマートコントラクトはブロックチェーン上で正常に動作し、予定通りの機能を提供できるようになります。
3)スマートコントラクト開発フレームワークとしてのMetaContract
MetaContractについては、こちらの記事で概要のみまとめておきました。それによると:
「複数のスマートコントラクトを統一的に管理し、アップグレードやカスタマイズを容易にするための仕組み」
と表現されています。
講義資料のMetaContractのリンクをクリックすると、MetaContractについてのGithubのページになりました。
そこでの概要の中身でこう表現されています。
「Meta Contract ライブラリは、標準関数コントラクトを含む、MC-DevKit でスマート コントラクトを開発するための便利なコントラクトのコレクションです。
DevX を活用して、スマート コントラクトの開発、デプロイメント スクリプトの作成、テストをより簡単かつ迅速に行うことができます。」
◾️開発演習の中身の理解とプロジェクトの立ち上げをトライしてみる
1)開発演習の中身の理解
演習の内容は以下です:
「ある提案に対してメンバーが投票によって多数決で可否決の判定をする簡易DAOのスマートコントラクトをSolidityというプログラム言語で作成する」
DAOについては、NinjaDAOをはじめ、いくつか親しんだ経験があるものの、そのスマートコントラクトを作成するとは、プログラミング初心者にはハードル高すぎの演習です。
まずはどんなことをしようとしているのかというと、開発以下の項目を開発環境を整備した上で、チャート図を作成し、Solidityのプログラミングコードを作成していく演習と理解しました。
シンプルな提案と投票による状態遷移
○ 状態遷移提案(可決で数値インクリメントのみ)
○ 単投票(多数決)
○ 単集計
○ 状態遷移実行
2)プロジェクトの立ち上げをトライしてみる
テキストによると、Forgeをインストールした上で、以下のコマンドでプロジェクトを立ち上げることができるとのことです。<project name>のところは個々の任意の名前を入れるということです。
forge init <project name> -t metacontract/template
最初< >をつけたままにしてしまいました(汗)。< >なしで名前をつけて課題にとりくむための自分の開発環境フォルダーができたっぽくなりました。
VSCODEでそのフォルダー開きたくても、どこに格納されているのかわからず、ターミナルにずらっと表示された文字列をスクショして、ChatGPTに聞いたら、図のように格納先を教えてくれてやっとVSCODEで開くことができて一安心。
Vscodeの画面でを触っていたら、なんとなくGithubとVSCODEを連携の画面がでてきて、ようやく
プロジェクトの構成が確認できる画面にたどりつきました。
これがプロジェクトの構成が確認できた画面です。
ここまでで、やっと第10回の講義の1/3ぐらいのところまで追いついた感じです。ふー..。
◾️まとめ
この記事では、2024年第10回のDAOの簡易実装の講義の内容を整理して、プログラミング初心者がどこまでついていけるのか、AIの助けを借りて復習して、その中で開発環境の整備と理解するところまで整理してまとめてみました。
プログラミング初心者の参考になれば嬉しいです。