🚀

【ICP】ICPチップス ~dfxコマンドとかサイクルとかidentityとかとか~

2024/07/07に公開

はじめに

ICPを触っていく上での必要となる知識を学びながらまとめていきます。認識違うところがあればドシドシご指摘お願いします!
Ethereumと比較しながら理解するとわかりやすかったのでそのように書き進めます。

ICPの用語をEthereumとの違いをふまえながら

1. キャニスター(Canister)

  • 説明: ICPにおけるスマートコントラクト。コードとstatusを含むモジュールのようなもの。
  • 使用用途: ビジネスロジックとかデータストレージとかを管理。
  • Ethereumとの違い: Ethereumでいうスマートコントラクトのようなもの。

2. サイクル(Cycles)

  • 説明: ICP上での計算リソースを支払うためのトークンです。サイクルは、キャニスターを実行するために必要なガス代のようなもの。
  • 使用用途: キャニスターの作成、実行、データ保存に必要。
  • Ethereumとの違い: Ethereumのガスに相当。ただしICPではトランザクションを受信する側のキャニスターがサイクルを消費する。

3. アイデンティティ(Identity)

  • 説明: ICP上でユーザーや開発者を識別するための単位。認証とトランザクションの署名に使用される。
  • 使用用途: トランザクションの署名、キャニスターのデプロイ、アクセス管理など。
  • Ethereumとの違い: Ethereumのアカウントに相当。

dfxコマンドのいろいろ

dfxコマンドは、ICP上でキャニスターの作成、ビルド、デプロイ、および管理を行うために使用されます。以下に主要なdfxコマンドをカテゴリごとにまとめます。

CLIツールのインストール

公式ドキュメントはこちら

  • mac/linux環境

    sh -ci "$(curl -fsSL https://internetcomputer.org/install.sh)"
    

    正しくインストールされたか確認

    dfx --version
    

1. プロジェクトのセットアップ

  • 新しいプロジェクトの作成

    dfx new <project_name>
    

    例:

    dfx new icp_basic_dex
    
  • プロジェクトの初期化

    dfx start
    

    ローカルのキャニスター実行環境を開始します。

2. キャニスターの管理

  • キャニスターの作成

    dfx canister create <canister_name>
    

    例:

    dfx canister create my_canister
    
  • キャニスターのビルド

    dfx build
    

    または特定のキャニスターをビルドする場合:

    dfx build <canister_name>
    

    例:

    dfx build my_canister
    
  • キャニスターのデプロイ

    dfx deploy
    

    または特定のキャニスターをデプロイする場合:

    dfx deploy <canister_name>
    

    例:

    dfx deploy my_canister
    
  • キャニスターの状態を確認

    dfx canister status <canister_name>
    

    例:

    dfx canister status my_canister
    

3. キャニスターのインタラクション

  • キャニスターのメソッド呼び出し

    dfx canister call <canister_name> <method_name> <arguments>
    

    例:

    dfx canister call my_canister greet "('Hello, ICP!')"
    

4. アイデンティティ管理

  • 新しいアイデンティティの作成

    dfx identity new <identity_name>
    

    例:

    dfx identity new my_identity
    
  • アイデンティティの切り替え

    dfx identity use <identity_name>
    

    例:

    dfx identity use my_identity
    
  • 現在のアイデンティティの確認

    dfx identity whoami
    
  • アイデンティティの一覧を表示

    dfx identity list
    

5. ウォレット管理

  • ウォレットアドレスの確認

    dfx identity get-wallet
    
  • ウォレットの残高確認

    dfx wallet balance
    
  • サイクルの送信

    dfx wallet send <recipient_principal_or_canister_id> <amount_of_cycles>
    

    例:

    dfx wallet send rwlgt-iiaaa-aaaaa-aaaaa-cai 1000000000000
    

6. ローカル環境の管理

  • ローカルネットワークの開始

    dfx start
    
  • ローカルネットワークの停止

    dfx stop
    
  • クリーンアップ

    ローカルのキャッシュとデータをクリアします。

    dfx start --clean
    

まとめ

学習しながらアップデートしていきたいと思います。

Discussion