🌐
もらったサイクルでIC上にサイトを上げてみる
はじめに
さて、せっかくサイクルを貰ったので、本物の Internet Computer上に、何かWebページを立ち上げてみたいと思う。
ところでキャニスターって何ですか
ICでわかりにくいものとして、キャニスターがある。これが walletだったりプログラムの展開先であったりするので、こんがらがってしまう。
色々試してみた結論から言うと、キャニスターというのはプログラムを入れるための箱のようなもので、キャニスターを作成する際にサイクルが割り当てられる。デフォルトでは4Tのようだ。
で、キャニスターはコントローラーという管理者みたいなものがいて、管理者がキャニスターを止めたり、別のプログラムで上書きするなどの操作をすることができる。
最もシンプルなWebページの作成
ということで、フォームすらない、最もシンプルなテキストだけのWebページをIC上に立ち上げてみたい。
Example プログラムのダウンロード
以下のサイトを参考に、Exampleプログラムをダウンロードする。
$ git clone https://github.com/krpeacock/ic-static-minimal.git
$ cd ic-static-minimal
$ ls -a
. .. .git .gitignore assets canister_ids.json dfx.json
$ ls -a assets/
. .. index.html
こういうのを求めていた。基礎から理解するにはできるだけシンプルな方がいい。
index.htmlの編集
デフォルトのままでもいいのだが、せっかくなので変更しよう。なんでもいいので、適当に編集する。
canister_ids.jsonの編集
このファイルにはプログラムをインストールするキャニスターを指定する。今回は以下を指定。
wd7ks-taaaa-aaaah-aamca-cai
プログラムのビルド
キャニスターはすでにあるので、いきなりビルドする。.dfx というディレクトリができ、ic の下にプログラムが作成される。
$ dfx build --network ic
Building canisters...
プログラムのインストール
最後にインストールする。
$ dfx canister --network ic install --all --mode='reinstall'
Reinstalling code for canister www, with canister_id wd7ks-taaaa-aaaah-aamca-cai
Authorizing our identity (default) to the asset canister...
Uploading assets to asset canister...
/index.html 1/1 (294 bytes)
/index.html (gzip) 1/1 (215 bytes)
動作確認
ブラウザで以下のURLにアクセスする。
Webページが表示された。
キャニスターの停止
ためしに、キャニスターを止めてみる。
$ dfx canister --network ic stop wd7ks-taaaa-aaaah-aamca-cai
Stopping code for canister wd7ks-taaaa-aaaah-aamca-cai, with canister_id wd7ks-taaaa-aaaah-aamca-cai
すると、ブラウザでアクセスしても Internal Server Error となる。
再スタート
再度動かしてみる。
$ dfx canister --network ic start wd7ks-taaaa-aaaah-aamca-cai
Starting code for canister wd7ks-taaaa-aaaah-aamca-cai, with canister_id wd7ks-taaaa-aaaah-aamca-cai
するとまた、先程のWebページが表示される。
とりあえず以上。
Discussion