HiÐΞClassic

初心者による初心者のためのInternet Computerチュートリアル備忘録その2「Query using an actor」

でりおてんちょー
3 years ago
新しいプロジェクトを作成するデフォルト設定を変更するデフォルトのプログラムを変更するローカル識別子を使用してプログラムをビルドするプロジェクトをデプロイするcanisterに問い合わせるローカルネットワークを停止します

プログラミング(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を動かして遊ぶ」


今回は、2つ目のチュートリアル「Query using an actor」についてです。

これからInternet Computerチュートリアルを始める方に、少しでも役立てていただけると幸いです。

また、この記事ではMacでの作業となりますこと、あらかじめご了承ください。

新しいプロジェクトを作成する

1. ターミナルシェルをまだ開いていない場合は、ローカルコンピューターで開きます。
まずはターミナルを開きます。

2. 別の作業フォルダーを使用している場合は、インターネットコンピュータープロジェクトに使用しているフォルダーに移動します。
クイックスタートで「ic-projects」というフォルダを作り、私はそこにまとめるようにしたので、『cd ic-projects』で移動します。

ちなみに『pwd』コマンドで、現在の場所が確認できますよ。(pwd:print working directoryの略)

3. 『dfx new actor_hello』のコマンドを実行して、新しいプロジェクトを作成します。
この呪文で∞マークっぽいのが表示されれば、プロジェクトの作成成功です。

4. 『cd actor_hello』のコマンドを実行して、プロジェクトディレクトリに移動しておきます。

デフォルト設定を変更する

1つ目のチュートリアルでは、「デフォルト設定を確認する」だけでしたが、今回は変更を加えていきます。

1. dfx.json構成ファイルをテキストエディターで開きます。

  • Xcode
  • Visual Studio (code)
  • テキストエディット
    のどれかで開きます。

2. actor_helloプロジェクトのデフォルト設定を確認してください。
「デフォルトはこんな感じなんだなぁ〜」と眺めましょう。

3. ソースファイルと出力ファイルへの名前とパスはすべてactor_helloプロジェクト名を使用していることに注意してください。
ここはチュートリアルの説明を読んで理解しましょう。

今回は変更しないので、この項目は頭の片隅においておく程度で大丈夫です。

4. actor_hello_assetsファイルからすべての構成設定を削除します。

actor_hello_assetsセクション(上写真の選択部分)を削除します。

[ , ]や[ } ]の帳尻が合わないとエラーになるので、よく確認してから消しましょう。

5. 変更を保存し、ファイルを閉じて続行します。
「command + S」で保存して終了しましょう。

デフォルトのプログラムを変更する

ここでは、テンプレートコードを変更して、シンプルな「Hello、World!」プログラムを作成します。

1. 『cd src/actor_hello』のコマンドを実行して、プロジェクトのソースコードディレクトリに移動します。
上手くいかない方は、『pwd』コマンドで現在の場所したり、『cd ic-projects』で場所を移動してみてください。

2. テンプレートmain.moファイルをテキストエディタで開き、既存のコンテンツを削除します。
Finderから、「ic-projects → actor_hello → src → actor_hello → main.mo」で開きます。

「command + A」で全選択してdeleteで削除します。

3. 次のサンプルコードをコピーしてmain.moファイルに貼り付けます。

これを先程のmain.ioファイルにコピペします。

4. 変更を保存してmain.moファイルを閉じます。
「command + S」で保存して終了しましょう。

ローカル識別子を使用してプログラムをビルドする

この「ローカル識別子」は、プログラムのテスト中やインターネットコンピュータのレプリカプロセスをローカルで開始したり、リモートサブネット上のレプリカに接続したりせずに、プログラムをコンパイルするときにいつでも使用できるものだそうです。

1. プロジェクトディレクトリのルートに戻ります。
~/ic-projects/actor_hello
みたいに、現在の場所を「actor_hello」にしろという意味です。

2. 『dfx build --check』のコマンドを実行して、ローカルで定義された識別子を使用してプログラムをビルドします。

ビルドが終わった後に、「tree」を使うと〜〜みたいな話をされています。

私みたいなターミナル初心者の方は、この「tree」コマンドが使えない状態です。
brew install tree』コマンドで、使える状態にしてから『tree .dfx/local/canisters』を打つと上手くいきますよ。

参考:Macのzsh(ターミナル)でtreeを利用する

プロジェクトをデプロイする

プロジェクトをローカルにデプロイするには、ローカルネットワークまたはリモートネットワークに接続した後、ローカルで定義された識別子を置き換える必要があります。

1. ターミナルを開き、必要に応じてプロジェクトディレクトリに移動します。
必要に応じて、『pwd』コマンドで現在の場所したり、『cd ic-projects』で場所を移動して、現在の場所を「actor_hello」にしてください。

2. 『dfx start --background』のコマンドを実行して、ローカルコンピューターでインターネットコンピューターネットワークを起動します。
--backgroundオプションを使うことで、ローカルコンピューターで別のターミナルシェルを開かずに済みます。

3. 『dfx canister create actor_hello』のコマンドを実行して、ローカルインターネットコンピューターネットワーク上にプロジェクトの新しいキャニスター識別子を生成します。

4. 『dfx canister install actor_hello』のコマンドを実行して、actor_helloプロジェクトをローカルネットワークにデプロイします。
installとありますが、デプロイの意味だそうです。

canisterに問い合わせる

デプロイまで完了したら、コマンドライン上で関数を呼び出して、プログラムをテストできるようになります。

1. 『dfx canister call actor_hello hello』のコマンドを実行して、「dfx canister call」を使用して「hello」関数を呼び出します。
『dfx canister call』までは呼び出す呪文で、その後に

  1. キャニスターまたはアプリケーションサービスの名
  2. 呼び出したい特定のメソッドまたは関数
  3. 関数に渡す引数
    を打ち込んでいきます。(今回は3の引数はありません)

2. コマンドが、ローカルネットワークプロセスを実行している端末に、チェックポイントメッセージとともに、hello関数に指定されたテキストを返すことを確認します。

ここのhello関数を呼んでいるので、「Debug.print ("Hello, World from DFINITY \n");」が返ってきます。

ローカルネットワークを停止します

テストができたら、最後にローカルネットワークを止めておきましょう。

ターミナルが現在稼働中であれば「Control-C」を押して、「%」が表示される状態にします。

最後に『dfx stop』コマンドを入力すれば、2つ目のチュートリアルは終了です。お疲れ様でした。

思っていた以上に多くの反響をいただき、大変ありがたい次第です。よければHiÐΞやTwitterのフォローお願い致します!

需要がありそうであれば、他のチュートリアルも備忘録を残していきますので、何かしらアクションいただけると大変励みになりますし嬉しいです!

次はこちら(↓)をどうぞ
初心者による初心者のためのInternet Computerチュートリアル備忘録その3「Pass text arguments」


コメント
いいね
投げ銭
最新順
人気順
でりおてんちょー
3 years ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン