プロジェクトの概要を掴もう
✨ NEAR Sharing Economy 開発プロジェクトへようこそ!
このプロジェクトではNEAR
というブロックチェーン上でアプリを作成して、バイクのシェアリングエコノミー
を構築しましょう!
プロジェクトを進めるには以下の技術が必要です。
- Terminal操作
- Rust (このリンクでは第 11 章までが主に本プロジェクトで扱う範囲です)
- Javascript
- React.js
簡単な説明とコードを載せながら進めて行きますが、特にRustについては初めて触れる概念が多い人もいるかもしれません! わからないところは都度調べていきましょう! アプリ開発に進む前に技術を体系的に学びたい方は上記参考リンクから必要な部分を先に学ぶのも良いと思います。👍
💻 Rust とは?
開発者がバグの修正よりもプログラムのロジックに集中できるように設計された言語です。 例えばコード内にバグを含む場合はコンパイラが拒んでくれるのでコンパイルができません。 そのためコードを書いていく上で、コンパイラに拒まれることもしばしばあるでしょうが、 慣れていくうちにその開発環境の素晴らしさに触れることになるでしょう!
🧐 NEAR とは何か?
NEARの特徴は以下のようなものが挙げられます。
1. ユーザ(開発者とエンドユーザ共に)の利用しやすい設計
- NEARには
アカウント
という概念があり、NEARのエコシステムに参加するためには誰しもアカウントを作成する必 要があります。- 開発者はアカウントにスマートコントラクトをデプロイします。
- エンドユーザはアカウントを通してウォレットやスマートコントラクトを利用します。
- アカウント名はユーザが理解しやすいように任意の文字列で決めることができます。
- つまりアカウントというインタフェースを用意して、NEARへのアクセスをシンプルな構造にしているのです。
- またエンドユーザが資産を持たずとも利用できるようなコントラクト作成ができるといった特徴もあります。
2. スケーラビリティ
シャーディング
という技術を利用してトランザクションを高速化することができます。- ノードを追加することでネットワークの容量を増やせるので、ネットワークの拡大がしやすい設計になっています。
3. ブリッジ
- NEARではAuroraと呼ばれる仕組みを使い
ブリッジ
機能を実現しています。 - ブリッジ機能はイーサリアム上で動作するアプリをNEARプロトコル上で動作するように橋渡しすることができます。
- また
grant
という報酬システムを用意することでNEAR上での開発を支援をしているので、- 詳しくはこちらをご覧ください。
🛠 何を開発するのか?
バイクシェアdappを開 発することで簡単なシェリングエコノミー
を構築しましょう!
シェアリングエコノミーを循環させるためにオリジナルトークン
を利用します。
以降このオリジナルトークンをft(fungible tokenの略)と呼びます。
主に以下の機能を実装します
- ftの発行と利用
- バイクの管理
- エンドユーザはバイクを使用・点検・返却することができます
- バイクを使用するにはftを消費する必要があります
- バイクを点検するとftを報酬として受け取ることができます
完成したバイクシェアdapp
は以下のような見た目になります
🌍 プロジェクトをアップグレードする
UNCHAIN のプロジェクトは UNCHAIN License により運用されています。
プロジェクトに参加していて、「こうすればもっと分かりやすいのに!」「これは間違っている!」と思ったら、ぜひpull request
を送ってください。
GitHubから直接コードを編集して直接pull request
を送る方法は、こちらを参照してください。
どんなリクエストでも大歓迎です 🎉
また、プロジェクトを自分のGitHubアカウントにFork
して、中身を編集してからpull request
を送ることもできます。
⚡️ Issue
を作成する
pull request
送るほどでもないけど、提案を残したい! と思ったら、こちら にIssue
を作成してみましょう。
Issue
の作成方法に関しては、こちらを参照してください。
pull request
やissue
の作成は実際にチームで開発する際、重要な作業になるので、ぜひトライしてみてください。
UNCHAINのプロジェクトをみんなでより良いものにして いきましょう ✨
開発の準備をしよう
🏭 開発の準備をしよう
ここでは開発に必要な以下の準備をしましょう!
node
/npm
の取得Rust
のインストール- NEARアカウント作成
near cli
のインストールnear cli
でアカウントの操作
node
/npm
の取得
node
/npm
をお持ちでない方はこちらにアクセスし、node v16をインストールしてください。
(例として使われているバージョンを16に変更することをお忘れなく!)。
今回はこちらのバージョンで進めていきます。
この先バージョンによる違いによりエラーに遭遇する場合があるので参考にしてください。
$ node -v
v16.15.0
$ npm -v
8.11.0
Rust のインストール
まずは下のコマンドをターミナルで実行しましょう!
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
このコマンドはスクリプトをダウンロードし、rustup(rustを管理するツール)のインストールを開始し、Rustの最新の安定版をインストールします。 成功していれば下のようなメッセージが表示されているでしょう。
Rust is installed now. Great!
Windowsを使用している方や失敗した方はこちらを参考にし てください。
次に WebAssembly(Wasm) 形式でコンパイルするためのtoolchain(Rustではツールまたはその集まりをtoolchainと総称しています)を追加しましょう! ※ スマートコントラクトはRustからWasmへコンパイルした後NEAR上にデプロイします。
$ rustup target add wasm32-unknown-unknown
NEAR アカウント作成 こちらからNEARのテストネットアカウントを作成してください。
Create Accountを選択します。
自由なアカウント名をつけてください。
ここで作成するアカウントは次項のftコントラクト
に利用するのでftにちなんだアカウント名にするのも良いかもしれません。
ここではft_account.testnet
として進めます。
Secure Passphraseを選択(Ledger Hardware Walletでも構いません 🙆♂️)してパスフレーズをどこかに保存しておきましょう!
Passphraseの確認が取れたらアカウント作成の完了です! 以下のような画面に移ります。
near-cli
のインストール
ローカルコンピュータからNEARに接続するための cli ツールであるnear-cli
をインストールしましょう!
$ npm install -g near-cli
near
と打ち込み、nearコマンドの使い方一覧が表示されたらインストール成功です!
$ near
Usage: near <command> [options]
Commands:
:
:
near cli
でアカウントの操作
cliを利用してコマンドラインからアカウントにログインしてみましょう!
以下のコマンドを実行するとログイン画面がブラウザで開きます。
$ near login
アカウントへのアクセス許可を確認し、接続へ進むとログインが成功します。
ここではアカウントへのフルアクセスを許可したので、アカウントの作成や削除、アカウントによるコントラクトの呼び出しなどあらゆる操作をコマンドラインから実行できるようになります。
🙋♂️ 質問する
ここまでの作業で何かわからないことがある場合は、Discordの#near
で質問をしてください。
ヘルプをするときのフローが円滑になるので、エラーレポートには下記の4点を記載してください ✨
1. 質問が関連しているセクション番号とレッスン番号
2. 何をしようとしていたか
3. エラー文をコピー&ペースト
4. エラー画面のスクリーンショット
おめでとうございます!
次のレッスンではトークンを発行します!
Documentation created by ryojiroakiyama(UNCHAIN discord ID: rakiyama#8051)