Internet Computer の基礎 — パート2:最初の Dapp をデプロイするために無料のサイクルを得る方法(日本語訳)

tokuryoo
DfinityJP
Published in
9 min readAug 14, 2022

Medium の DFINITY 公式の記事 Internet Computer Basics — Part 2: How to Get Free Cycles to Deploy Your First Dapp (2022/6/25) の日本語訳です。

DFINITY Cycles Faucet を利用して、IC ホスティングリソースの支払いに必要な無料サイクルにアクセスするためのガイドです。

Internet Computer の基礎」シリーズの第2回は、キャニスターのデプロイと実行の資金源となる支払いメカニズムである ICP サイクルを紹介します。通常、開発者は ICP トークンを使ってサイクルを購入する必要があります。しかし、DFINITY Cycles Faucet から1人1回に限り、〜20ドル相当のサイクルを提供してもらえます。

ICP サイクルとは何ですか?

Internet Computer ブロックチェーン(IC)は、キャニスターの実行環境を提供します。Internet Computer は、ノードプロバイダーによって運営される数百のノードで構成されています。ノードプロバイダーは、インフラ(CPU、RAM、ストレージ)とリソース(電力、ネットワーク帯域幅)を使用してプラットフォームを稼働させます。Internet Computer を持続可能なものにするために、開発者は自分のキャニスターが消費するリソースに対価を支払う必要があります。

Internet Computer は、ICP サイクルを使用してリソースの支出を決定します。サイクルは通貨ではありません。ICP トークンを使ってサイクルを購入し、「サイクルウォレット」と呼ばれるコンテナに転送できます。

キャニスターにサイクルが必要な場合、開発者はウォレットからキャニスターにサイクルを転送できます。IC にデプロイされたアクティブなキャニスターは、継続的にサイクルを燃焼(burn)し、動作し続けるために「補給」する必要があります。

なぜサイクルは ICP トークンとは違うのでしょうか? ICP トークンの価格が上昇した場合に、ホスティングの価格が変動し、Dapp の構築が経済的に不可能になるリスクを低減するためです。

注:サイクルは、数十億、数兆という非常に大きな数字で計測されます。サイクルの転送と補充について話すときは、通常、何兆ものサイクルを使って操作することになるでしょう。

サイクルウォレットとは?

サイクルウォレットは、特定のユーザー用のサイクルを保持します。サイクルウォレットはキャニスターであり、他のキャニスターと同様、Internet Computer 上で動作します。各ユーザーは複数の「アカウント」にサイクルを分けたい場合、複数のサイクルウォレットを持つことができます。

サイクルウォレットの作成方法は2つあります。

  1. DFINITY Cycles Faucet を使用して新しいウォレットを作成し、無料のサイクルで資金を調達します。
  2. ターミナルコマンドで空のウォレットを作成し、NNS frontend dapp を通じて資金を調達します。

このガイドでは、最初のシナリオに焦点を当てます。

DFINITY Cycles Faucet でサイクルウォレットを作成する。

ウォレットを作成する最も簡単な方法は、20ドル相当のサイクルを無料で提供する DFINITY Cycles Faucet を利用することです。この faucet は、Twitter アカウントを使って開発者を特定し、物理的な人ごとにサイクルの提供を制限しています。

https://faucet.dfinity.org にアクセスし、Twitter アカウントで認証します。

あなたには、最初のキャニスターをデプロイするのに十分な 20 兆サイクルを得る資格があります。

次のステップで、サイクルの請求方法が表示されます。

ここで何が起こっているのか見てみましょう。このコマンドは、fg7gi-vyaaa-aaaal-qadca-caiという「周知の」アドレスを使って、グローバルな「cycles wallet」キャニスターを呼び出しています。

$ dfx canister --network=ic call fg7gi-vyaaa-aaaal-qadca-cai redeem '("AAD49-A8CD6-AC4CF")'
(principal "mnwzy-4yaaa-aaaal-qawha-cai")

ここでの値 AAD49-A8CD6-AC4CFは、Cycles Faucet によって生成された引き換えコードです。戻り値のmnwzy-4yaaa-aaaal-qawha-caiは、デプロイされたばかりのウォレットキャニスターの principal(アドレス)です。このキャニスターを使用して、ICP サイクルを保存し、使用できます。このキャニスターはあなただけのもので、あなたのマシンで現在選択されている principal(identity)により制御されます。下記を呼び出すことで、このキャニスターのコントローラを確認できます。

% dfx canister --network=ic status mnwzy-4yaaa-aaaal-qawha-cai
Canister status call result for mnwzy-4yaaa-aaaal-qawha-cai.
Status: Running
Controllers: nfxu4-cn7qt-x7r3c-5dhnk-dcrct-gmgoz-67gcg-5glvc-2krhv-gcmsr-qqe
Memory allocation: 0
Compute allocation: 0
Freezing threshold: 2_592_000
Memory Size: Nat(2812290)
Balance: 899_986_569_362 Cycles
Module hash: 0x53ec1b030f1891bf8fd3877773b15e66ca040da539412cc763ff4ebcaf4507c5

「Controllers」セクションの値は、現在選択されている principal と同じである必要があります。現在の principal を確認するには、以下を呼び出します。

% dfx identity get-principal
nfxu4-cn7qt-x7r3c-5dhnk-dcrct-gmgoz-67gcg-5glvc-2krhv-gcmsr-qqe

最後のステップは、新しいウォレットを現在の identity のデフォルトとして設定することです。

% dfx identity --network=ic set-wallet mnwzy-4yaaa-aaaal-qawha-cai
Setting wallet for identity 'old_identity' on network 'ic' to id 'mnwzy-4yaaa-aaaal-qawha-cai'
Wallet set successfully.

すべてがうまくいったかを確認するために、下記を呼び出すことで、現在のウォレットを確認できます。

% dfx identity --network=ic get-wallet
mnwzy-4yaaa-aaaal-qawha-cai

現在のウォレット設定は、ファイルシステムの ~/.config/dfx/identity/<identity_name>/wallets.jsonフォルダに保存されています。例えば、私のパソコンでは、このファイルは下記のようになります。

{
"identities": {
"old_identity": {
"ic": "mnwzy-4yaaa-aaaal-qawha-cai"
}
}
}

注意:ICP サイクルは貴重なものですので、コンピュータのデータが失われた場合に備えて、identity ファイルをバックアップしておくことをお勧めします。identity ファイルはパス~/.config/dfx/identity/<identity_name>/identity.pemにあります。

下記を呼び出すことで、ウォレットの残高を確認できるようになりました。

% dfx wallet --network=ic balance
899983799256 cycles.

そして今、私たちはサイクルウォレットの作成と、DFINITY からの無料サイクルでの資金の調達を終えました!

まとめ

この記事では、ICP サイクルが IC ホスティングリソースの支払いに使用されることを説明しました。サイクルウォレットは、キャニスターとして実装されたサイクルを格納するコンテナです。

開発者が DFINITY Cycles Faucet から無料のサイクルを要求する方法について学びました。次回は、NNS frontend dapp を使って ICP トークンで追加のサイクルを購入する方法を見ていきます。

____

internetcomputer.org で構築を開始し、forum.dfinity.org で開発者コミュニティに参加しましょう。

--

--