プロジェクトの概要を掴もう
✨ 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)