StarknetAstro

StarknetAstro

(BootCamp1)Cairoのセットアップ

画像

注意!Cairo の言語仕様が変更されたため、このチュートリアルは古くなっています。1.10 の構文については、この記事を参照してください:https://starknetastro.xlog.app/Starknet_Shanghai_Workshop_DAY1#

学習資料のおすすめ:

最小インストールオプション:

システム: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
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。