初心者による初心者のためのInternet Computerチュートリアル備忘録その4「Increment a natural number」
プログラミング(C#)歴半年の私でりおてんちょーが、Internet Computerチュートリアルを進めていく上で
-
分かりづらかったところ
-
めっちゃ調べたところ
などを、備忘録としてこちらにまとめていきます。
【目次】
Internet Computerチュートリアル備忘録その1「Explore the default project」
Internet Computerチュートリアル備忘録その2「Query using an actor」
Internet Computerチュートリアル備忘録その3「Pass text arguments」
Internet Computerチュートリアル備忘録その4「Increment a natural number」
Internet Computerチュートリアル備忘録その5「Use integers in calculator functions」
Internet Computerチュートリアル備忘録その6「Import library modules」
Internet Computerチュートリアル備忘録その7「Use multiple actors」
Internet Computerチュートリアル備忘録その8「Customize the front-end」
Internet Computerチュートリアル備忘録その9「Add a stylesheet」
Internet Computerチュートリアル備忘録その10「Make inter-canister calls」
Internet Computerチュートリアル備忘録その12「Add access control with identities」
Internet Computerチュートリアル備忘録その13「Accept cycles from a wallet」
Internet Computerチュートリアルが終わったらやること1「examplesを動かして遊ぶ」
今回は、4つ目のチュートリアル「Increment a natural number」についてです。
これからInternet Computerチュートリアルを始める方に、少しでも役立てていただけると幸いです。
また、この記事ではMacでの作業となりますこと、あらかじめご了承ください。
新しいプロジェクトを作成する
1. ターミナルシェルをまだ開いていない場合は、ローカルコンピューターで開きます。
まずはターミナルを開きます。
2. 別の作業フォルダーを使用している場合は、インターネットコンピュータープロジェクトに使用しているフォルダーに移動します。
クイックスタートで「ic-projects」というフォルダを作り、私はそこにまとめるようにしたので、『cd ic-projects』で移動します。
ちなみに『pwd』コマンドで、現在の場所が確認できますよ。(pwd:print working directoryの略)
3. 『dfx new my_counter』のコマンドを実行して、新しいプロジェクトを作成します。
この呪文で∞マークっぽいのが表示されれば、プロジェクトの作成成功です。
4. 『cd my_counter』のコマンドを実行して、プロジェクトディレクトリに移動しておきます。
デフォルト設定を変更する
今回もデフォルトの設定に変更を加えていきます。
1. テキストエディターでdfx.json構成ファイルを開き、デフォルトのメイン設定を「main.mo」から「increment_counter.mo」に変更します。
- Xcode
- Visual Studio (code)
- テキストエディット
のどれかで、my_counterディレクトリ内の「dfx.json」を開きます。
そして、上写真のように変更します。
main.moという名前のファイルが複数あると混乱する可能性があるため、このように変更するみたいです。
2. 変更を保存し、dfx.jsonファイルを閉じて続行します。
「command + S」で保存して終了しましょう。
3. 『mv src/my_counter/main.mo src/my_counter/increment_counter.mo』のコマンドを実行して、ソースコードディレクトリ内のメインプログラムファイルの名前を、dfx.json構成ファイルで指定された名前と一致するように変更します。
『mv』コマンドにより、「src/my_counter/main.mo」というファイルを、「src/my_counter/increment_counter.mo」に名前変更することができました。
デフォルトのプログラムを変更する
今の段階ではファイル名を変更しただけなので、ここからはコードを変更していきます。
1. 必要に応じて、プロジェクトディレクトリにいることを確認してください。
『cd』『pwd』コマンドを使って「my_counter」にいることを確認します。
2. テキストエディタで「src / my_counter / increment_counter.mo」ファイルを開き、既存のコンテンツを削除します。
これを全部削除します。
3. 次のサンプルコードをコピーして「increment_counter.mo」ファイルに貼り付けます。
これを丸ごと、2. のファイルに貼り付けてあげましょう。
コードの説明はチュートリアルの解説を見てみてください!
4. 変更を保存し、ファイルを閉じて続行します。
「command + S」で保存して終了しましょう。
ローカルネットワークを開始します
『dfx start --background』のコマンドを実行して、ローカルコンピューターでインターネットコンピューターネットワークを起動しましょう。
--backgroundオプションを使うことで、ローカルコンピューターで別のターミナルシェルを開かずに済みますよ。
アプリケーションを登録、ビルド、およびデプロイする
1. 必要に応じて、プロジェクトのルートディレクトリにいることを確認してください。
「my_counter」にいることを確認しましょう。
2. 『dfx deploy』のコマンドを実行して、アプリケーションを登録、ビルド、およびデプロイします。
デプロイされたキャニスターでメソッドを呼び出す
1. 『dfx canister call my_counter get』のコマンドを実行して、get関数を呼び出します。
この関数は、デプロイされたキャニスターのcurrentValue変数の現在の値を読み取ります。
『dfx canister call』までは呼び出す呪文で、その後に
- キャニスターまたはアプリケーションサービスの名
- 呼び出したい特定のメソッドまたは関数
- 関数に渡す引数
を打ち込んでいきます。(今回は3の引数はありません)
currentValueの初期値は0になっているので、返り値は0ですね。
2. 『dfx canister call my_counter increment』のコマンドを実行してインクリメント関数を呼び出し、デプロイされたキャニスターのcurrentValue変数の値を1つインクリメントします。
インクリメントは、変数の値を1増やす演算のことです。
ちなみにこのincrement関数は、内部でcurrentValue変数の値を1つ増やしているだけなので、結果には表示されず()と返されますが、内部的には currentValue は1となっています。
3. 『dfx canister call my_counter get』のコマンドを再実行して、デプロイされたキャニスターのcurrentValue変数の現在の値を取得します。
これにより、(1)と表示されましたね。
4. 追加のコマンドを実行して、他のメソッドを呼び出したり、さまざまな値を使用したりしてみてください。
各自、値を変えたりしながら遊んでみてください!
ブラウザで機能をテストする
こちらの1. 〜6. までは、初心者による初心者のためのInternet Computerチュートリアル備忘録その3「Pass text arguments」 記事の「ブラウザで機能をテストする」段落と同じなので、そちらをご参照ください。
うまくいけば、上写真のような画面になります。
あとは先程コマンドラインで行ったことを、ブラウザ上でテストするだけです。
値をsetして、好きな回数incrementして、getしてみてください。
右側の「OUTPUT LOG」に結果が表示されていきますので、ご活用ください。
ローカルネットワークを停止します
テストができたら、最後にローカルネットワークを止めておきましょう。
ターミナルが現在稼働中であれば「Control-C」を押して、「%」が表示される状態にします。
最後に『dfx stop』コマンドを入力すれば、4つ目のチュートリアルは終了です。お疲れ様でした。
思っていた以上に多くの反響をいただき、大変ありがたい次第です。よければHiÐΞやTwitterのフォローお願い致します!
需要がありそうであれば、他のチュートリアルも備忘録を残していきますので、何かしらアクションいただけると大変励みになりますし嬉しいです!
次はこちら(↓)をどうぞ
初心者による初心者のためのInternet Computerチュートリアル備忘録その5「Use integers in calculator functions」