注意!Cairo の言語仕様が変更されたため、このチュートリアルは古くなっています。1.10 の構文については、この記事を参照してください:https://starknetastro.xlog.app/Starknet_Shanghai_Workshop_DAY1#
学習資料のおすすめ:
-
ドキュメント系
- Starknet Astro Boot Camp:今回の Boot Camp のドキュメントです。
- cairo-book:コミュニティのメンバーがrust-bookを参考にして作成した本で、現時点では比較的包括的な資料です。
- Cairo の公式ドキュメント:公式のドキュメントですが、まだ執筆中です。
- アフリカのモチベーションを持つ Argent X からの文書のまとめ
-
コード例系
- starklings の対話型チュートリアル:ローカル環境で実行できる対話型チュートリアルです。Starknet Basecamp の課題の一つです。
- starknet-cairo-101:Cairo コントラクトに関するチュートリアルです。Basecamp の課題の一つです。
- awesome-cairo:多くのオープンソースの Cairo プロジェクトをまとめたもので、優れた実装例が多数含まれています。
- Openzepplin のコントラクトリポジトリ
- Cairo のコアライブラリのソースコード
最小インストールオプション:
システム:curl、git
IDE:VSCode またはお好きなエディタ(ただし、Windows の標準の notepad は使用しないでください)
MacOS:homebrew
オプション:
Cairo コントラクトをテストネットやメインネットにデプロイしてみたい場合は、以下のサポートもインストールする必要があります。
アカウント抽象化ウォレット:Braavos または Argent X
Cairo 0.x の CLI ツール。
Rust のインストール#
rust をインストールするには、rustup (ドキュメント) を使用することをお勧めします。rustup を使用すると、rust のバージョンを切り替えたり、アップグレードしたりすることができます。
~ $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
その後、コマンドラインターミナルを再起動して、インストールが成功したかどうかを確認するか、ターミナル内で次のコマンドを実行します:
~ $ source "$HOME/.cargo/env"
バージョンを確認する
~ $ rustup --version
rustup 1.25.2 (17db695f1 2023-02-01)
curl をインストールしていない場合は、以下の場所から rust のさまざまなシステムのインストーラーパッケージをダウンロードできます。
https://forge.rust-lang.org/infra/other-installation-methods.html#rustup
Cairo のインストール#
ターミナルで以下のコマンドを入力して、最新の Cairo リポジトリを Github からクローンします。
git clone https://github.com/starkware-libs/cairo/ ./cairo
注意:アルファ版の一部のバージョンは starknet でサポートされていない場合があるため、特定のタグを指定する必要があります。現時点では、starknet がサポートしている安定版は v1.0.0-rc0 です。
cd ./cairo
git checkout tags/v1.0.0-rc0
その後、Cairo 全体をビルドできます。
cargo build --all --release
成功したかどうかをテストする
cargo run --bin starknet-compile --help
または
./target/release/starknet-compile --version
.cairo ファイルの実行#
まず、テスト用の Cairo ファイルを作成しましょう。現在のディレクトリに新しいファイルを作成します。
ファイル名:hellostarknetastro.cairo
内容:
use debug::PrintTrait;
fn main() {
'Hello, StarknetAstro!'.print();
}
次のコマンドを実行します:
cargo run --bin cairo-run -- hellostarknetastro.cairo
または、ビルド済みのリリースを使用して実行します。
target/release/cairo-run hellostarknetastro.cairo
すると、ターミナルに次のような内容が表示されます。
[DEBUG] Hello, StarknetAstro! (raw: 105807143882116536446217580363080108601441594273569)
.cairo ファイルのコンパイル#
Cairo にはいくつかのサンプルが付属しています。次のコマンドでコンパイルできます:
まず、出力を保存するためのディレクトリを cairo のルートディレクトリに作成します。
mkdir output
次に、cargo を使用してコンパイルします。
cargo run --bin cairo-compile examples/fib.cairo output/fib.json
または
target/release/cairo-compile examples/fib.cairo output/fib.json
ここで、実際に出力されるのは中間コードであり、Cairo では Sierra と呼ばれています。
Cairo-VM で直接実行できるファイルを出力するには、さらに Sierra を Cairo アセンブリ(casm)ファイルにコンパイルする必要があります。
cargo run --bin sierra-compile -- output/fib.json output/fib.casm
または
target/release/sierra-compile -- output/fib.json output/fib.casm
もちろん、通常は Cairo コントラクトを casm にコンパイルする必要はありません。特定の要件がない限り、単純な Cairo コードを casm にコンパイルする必要はありません。
Python のインストール#
古い Cairo-CLI には Python 3.9 が必要です。既にインストールされているものとの競合を避けるために、rust と同様に、Python のバージョン管理ツールである pyenv を使用して Python をインストールすることをお勧めします。
MacOS:
brew update
brew install pyenv
または
curl https://pyenv.run | bash
その後
pyenv install 3.9
pyenv global 3.9
Linux:
curl https://pyenv.run | bash
その後
pyenv install 3.9
pyenv global 3.9
インストールが成功したかどうかを確認する
python3.9 --version
または、単純に Python 3.9 のバージョンをインストールすることもできます。
https://www.python.org/downloads/release/python-3915/
オプション:Cairo 0.x CLI のインストール#
この CLI は、starknet コントラクトをデプロイするために使用されます。まず、GMP 環境サポートをインストールする必要があります。
Linux:
sudo apt install -y libgmp3-dev
MACOS:
brew install gmp
その後、仮想環境を作成することをお勧めします。まず、test フォルダを作成します。
mkdir -p starknetastro/camp1/
cd starknetastro/camp1/
次に、Python 仮想環境を作成します。
python3.9 -m venv venv
仮想環境をアクティブにします。
source venv/bin/activate
これで、ターミナルの前に(venv)が表示されるはずです。仮想環境で PIP をアップグレードします。
(venv)camp1 $ pip install --upgrade pip
CLI をインストールします。
Linux:
(venv) camp1 $ pip install cairo-lang
MACOS(M1 チップ)
(venv) camp1 $ CFLAGS=-I`brew --prefix gmp`/include LDFLAGS=-L`brew --prefix gmp`/lib pip install cairo-lang
インストールが完了したかどうかを確認する
(venv) camp1 $ starknet --version
出力:
starknet 0.11.1