Chapter 07無料公開

Hello NEAR 2 - deploy -

masa
masa
2022.08.20に更新

deploy概要

前の章で作成したHello NEARの実行コマンドのコードリーディングをして、NEARアプリのdeployに必要なタスクを理解します。

コードリーディング

yarn startで実行される処理を、順に確認していきます。

yarn start

bash
yarn start

を実行すると

bash
npm run deploy
npm run build:contract
near dev-deploy

が順に実行されます。

bash
npm run build:contract

の中身は

bash
cd contract && rustup target add wasm32-unknown-unknown && cargo build --all --target wasm32-unknown-unknown --release && cp ./target/wasm32-unknown-unknown/release/greeter.wasm ../out/main.wasm

です。

細分化してあるといえば聞こえはいいですが、かなり複雑なbuildフローです。

bash
cd contract

でcontractフォルダに移動します。

contractフォルダにはrustで実装されたスマートコントラクトのコードがあります。

ここで

bash
rustup target add wasm32-unknown-unknown

を実行しているので、WebAssemblyにコンパイルすることがわかります。

WebAssemblyコンパイルの詳細を知りたい人は以下のドキュメントを読むと良いでしょう。

https://rust-lang.github.io/rustup/cross-compilation.html

https://rustwasm.github.io/docs/wasm-pack/prerequisites/non-rustup-setups.html

WebAssemblyへのコンパイル準備が完了後

bash
cargo build --all --target wasm32-unknown-unknown --release

で、relase用のbuildを実行します。

次に

bash
cp ./target/wasm32-unknown-unknown/release/greeter.wasm ../out/main.wasm

としているので、buildして作成されたgreeter.wasmをoutフォルダにmain.wasmというファイル名でコピーしています。

最後に

bash
near dev-deploy

を実行します。

nearコマンドはnear cliのコマンドです

https://docs.near.org/tools/near-cli

near dev-deployは、開発用アカウントを作成し、そこにスマートコントラクトをデプロイします。
アクセスキーは必要ありません。

アクセスキーはNEARのアカウントの機能で、

特定のアカウントに対するアクセスを制御できる

機能です。

実行に成功すると、コンソールに以下のような表示がされます。

bash
Starting deployment. Account id: dev-1659616873610-34625805591910, node: https://rpc.testnet.near.org, helper: https://helper.testnet.near.org, file: ./out/main.wasm
Transaction Id 9JjaoEkHLBCfUqmrMpWV9Gs9VCU18nUvy13oDheYSLDS
To see the transaction in the transaction explorer, please open this url in your browser
https://explorer.testnet.near.org/transactions/9JjaoEkHLBCfUqmrMpWV9Gs9VCU18nUvy13oDheYSLDS
Done deploying to dev-1659616873610-34625805591910
The app is starting! It will automatically open in your browser when ready

アプリが無事に起動しています。

まとめ

Hello NEARのyarn start処理をコードリーディングすることで、NEARアプリの起動までに必要なことがわかりました。

まとめると、

  • まず最初にスマートコントラクトをbuildする
  • スマートコントラクトはWebAssemblyへコンパイルする必要がある
  • WebAssemblyにしたスマートコントラクトをNEARにdeployする
  • スマートコントラクトを実行するアプリを立ち上げる

ということになります。

次からはreactで作成されたフロントエンドアプリのコードを解説していきます。