# IC基礎勉強1

By [fairyland.eth](https://paragraph.com/@fairyland) · 2022-08-30

---

ICの基礎勉強のノートになります。もしご参考になれたら嬉しいです。

ちなみに、MacOSにおける操作になります。

まずは、第一歩としてICの開発キット、dfxをインストールします。

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

インストール完了後、dfxのバージョンの確認をします。

`dfx -V`

現時点のdfxバージョンは0.11.1になります。

最新でない場合は、コメントでdfxのアップグレードもできます。

`dfx upgrade`

以下のコメントでdfxのPATHを確認できます。

`which dfx`

コマンド検索パスの優先度を高く設定することができます。

`export PATH=/usr/local/bin:$PATH`

最初に作りたいのはmysiteというプロジェクトです。

`dfx new mysite`

ここでメッセージの中に、npmが最新ではなかったことを確認したので、コメントでアップグレードしました。アップグレードしなくても大丈夫そうだと思います。

`npm install -g npm@8.18.0`

新しく作ったmysiteの中身を見てみます。

`cd mysite`

`ls -R src`

結構詳しく中身を説明されていますね。以下は上記コメントを実行した結果です。

src/mysite\_backend: [main.mo](http://main.mo/) src/mysite\_frontend: assets src src/mysite\_frontend/assets: favicon.ico logo2.svg main.css sample-asset.txt src/mysite\_frontend/src: index.html index.js

これから、ローカルで実行環境を走ってみます。

backgroundで実行できます。

`dfx start --background`

実行の状況を確認したいときには、backgroundなしでstartします。

`dfx start`

これが出たら、ローカルの実行環境ができました。

![](https://storage.googleapis.com/papyrus_images/5d8ff45a26b8bce5ff748b097ced54eed4f1b02a341e904d4aa89439994acc45.jpg)

新しいターミナルを開きます。先作ったウェブページをデプロイします。

`dfx deploy`

初めてデプロイする時に、色々システムに必要なキャニスター(canister)が生成されます。例えば、wallet canister、backend canister、frontend canister などですね。

![](https://storage.googleapis.com/papyrus_images/aab119c98d2bb9c41f9f1ca4d85f88af9eceb751167fa0cc3eec31b918437e7a.jpg)

緑色のがURLになります。

![](https://storage.googleapis.com/papyrus_images/ef14d3be8d211e27396de9b597faf15f2304f498ecc3fe029cf7a9dda1d915e4.jpg)

ChromeかSafariでURLを開けば、自動生成したサンプルサイトが見れます。Worldを入力すれば、Hello, World！が帰ってきます。

![](https://storage.googleapis.com/papyrus_images/50fe0446955a03e6136ce0d980c2b3e91d8393ac94fce18dd9c19926b1b1e296.jpg)

また、バックエンドのURLを開けば、バックエンドも見れます。

![](https://storage.googleapis.com/papyrus_images/20decc8187be493cd11d66ccd765de23f03a9481f70ff05ac3502d917f91f4dd.jpg)

続いて、自分のPrincipal IDを確認してみます。

`dfx identity get-principal`

出力結果で自分のPrincipal IDがわかります。後でwalletをチャージする時に使います。

![](https://storage.googleapis.com/papyrus_images/297f6029714d6613dee8ee90928cf06bc19720999fb6156831aebc086283a856.jpg)

このコメントを使えば、private keyも確認できます。

`ls -l ~/.config/dfx/identity/default`

上はprivate keyであり、下がpublic keyですね。

![](https://storage.googleapis.com/papyrus_images/0f03ad14756d61aa4bb7b482c9cb45f7a1c08bfe3798a338960d9471d7d48037.jpg)

ICのネットワーク上にサイトをデプロイするにはcycles（ETHのGasみたいなもの）というものが必要です。

今回はここまでにします。またまた勉強することがたくさんあります。

最新の情報を確認するために、開発の[オフィシャルサイト](https://internetcomputer.org/docs/current/developer-docs/ic-overview)があります。困る時にいつも参考しています。

---

*Originally published on [fairyland.eth](https://paragraph.com/@fairyland/ic-1)*
