メインコンテンツまでスキップ

プロジェクトの概要を掴もう

✨ NEAR Sharing Economy 開発プロジェクトへようこそ!

このプロジェクトではNEARというブロックチェーン上でアプリを作成して、バイクのシェアリングエコノミーを構築しましょう!

プロジェクトを進めるには以下の技術が必要です。

簡単な説明とコードを載せながら進めて行きますが、特に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を送ることもできます。

  • プロジェクトをForkする方法は、こちら を参照してください。
  • Forkからpull requestを作成する方法は、こちら です。

⚡️ Issueを作成する

pull request送るほどでもないけど、提案を残したい! と思ったら、こちらIssueを作成してみましょう。

Issueの作成方法に関しては、こちらを参照してください。

pull requestissueの作成は実際にチームで開発する際、重要な作業になるので、ぜひトライしてみてください。

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)