NNS Dappを使用して初めてキャニスタースマートコントラクトをデプロイする方法(日本語訳)
Medium の DFINITY 公式の記事 How to Deploy Your First Canister Smart Contract Using the NNS Dapp(2021/7/2) の日本語訳です。
NNS のフロントエンド dapp のインターフェイスを利用して、キャニスターをスピンアップするためのステップバイステップガイドです。
By Kyle Peacock, Software Engineer | DFINITY
例えば、ICP ユーティリティトークンをいくつか持っていて、Internet Computer 上であなたの最初のキャニスタースマートコントラクトをスピンアップしたいとします。このガイドでは、必要なものをすべて用意し、NNS のフロントエンド dapp を利用して、必要となる手順をすべて説明します。
前提条件
- https://nns.ic0.app ウォレットに、ログイン済み。
- ~ $5 ドル相当の ICP があなたのウォレットアドレスへ転送済み。
- https://sdk.dfinity.org から dfx sdk をインストールしたパソコン。
キャニスターを作成する
まず、あなたの https://nns.ic0.app のアカウントにログインし、残高を確認します。
次に、右上の「Canisters」タブに移動します。下記の画面が表示されるはずです。
ページ下部の青い「Create or Link Canister」ボタンをクリックすると、ダイアログが表示されます。
「Create New Canister」ボタンをクリックします。次に、あなたの新しいキャニスターに資金を提供するのに使用したい ICP アカウントを選択します。
その後、金額を入力する画面が表示されます。とりあえず、T Cycles(1兆サイクル)の入力欄に 5 を入力してみます。5兆サイクルは、1Tあたり約65¢、つまり約 $3.25ドルに相当します。
キャニスターの作成には 1T の手数料がかかるので、キャニスターを動かすと 4T のサイクルが残ることになります。
「Review Cycles Purchase」をクリックし、下記の画面で確認します。
もう一度「Confirm」をクリックすれば、準備完了です!
コンピュータとの接続
この例では、デプロイするアプリとして、超ミニマムなウェブサイトを使用することにします。
アプリは重要ではありませんが、次の命令のために、有効なdfxプロジェクトがあるディレクトリにいる必要があります。このサンプルプロジェクトをクローンすることで、真似ることができます。
git clone https://github.com/krpeacock/ic-static-minimal.git
cd ic-static-minimal
次に、下記を実行することでコンピュータからプリンシパルを取得する必要があります。
dfx identity get-principal
そのプリンシパル ID をコピーし、新しく作成したキャニスターのあるタブに戻ります。青い 「Change Controllers」ボタンをクリックし、controller management UIを開きます。
空欄の2番目の入力にプリンシパルを入力し、「Perform Controller Change」をクリックします。この手順により、あなたのコンピュータ上の dfx が新しく作成されたあなたのキャニスターへデプロイすることを認可します。
確認を受け入れた後、あなたのキャニスターIDをコピーしてください。これからそれを使用して、あなたの最初のキャニスターをデプロイします。
キャニスターをデプロイする
サンプルプロジェクトを開き、canister_ids.jsonファイル を開きます。<canister-id>を、クォートで囲んだあなたのキャニスターIDに置き換えて、ファイルを保存します。
それから、下記を実行する必要があります。
dfx deploy --network ic --no-wallet
アセットキャニスターをデプロイすることで、/assets の下の index.html ファイルをホスティングします。これにより、非常にシンプルな静的Webサイトが Internet Computer へデプロイされます。
コマンドをブレイクダウンすると、dfx は dfx.json の config を使用してプロジェクトをデプロイしています。ネットワークが IC となるようフラグを立てています。この IC は、あなたのキャニスターを作成した場所が本番用レプリカということです。次に、--no-wallet
とすることで、あなたのプリンシパルを使用して既存のキャニスターにあなたのキャニスターを直接デプロイしていることを DFX に示しています。
最後に、デプロイが成功したら、あなたのブラウザで <canister-id>.ic0.app のタブを開き、もう一度 <canister-id> をあなたのキャニスターIDに置き換えてみてください。
すべてがうまくいっているのであれば、おめでとうございます!あなたの新しいサイトは、Internet Computer 上で公開されているはずです。
index.html を変更して、dfx deploy --network ic --no-wallet
で再デプロイしてみると、Internet Computer のブロックチェーン上で直接実行され、更新が行われることを確認できます。
____
smartcontracts.org で構築を開始し、forum.dfinity.org の開発者コミュニティに参加しましょう。