系列文章目录#
Task1:hello move🚪
Task2:move coin🚪
Task3:move nft🚪
Task4:move game🚪
もっと素晴らしいコンテンツをお楽しみに!✌️
@TOC
前言#
ブロックチェーン技術の急速な発展に伴い、ますます多くの開発者が、分散型アプリケーション(DApps)の迅速な発展を支えるために、より効率的で安全なブロックチェーンプラットフォームを求めるようになっています。Sui チェーンとMove プログラミング言語は、新興のブロックチェーンソリューションとして、その革新的な設計理念と技術的優位性により、高性能なブロックチェーンアプリケーションを開発するための理想的な選択肢となっています。
この記事では、Sui チェーンとMove プログラミング言語の基本概念、利点、そしてそれらがブロックチェーンアプリケーションの開発方法をどのように変えるかを紹介し、Move 共学活動のTask1タスクを通じて、皆さんが迅速に入門し、最初の Move コントラクトを実践的にデプロイできるようにお手伝いします。
何が Sui チェーンですか?#
Sui は、高性能なブロックチェーンプラットフォームで、分散型アプリケーションに迅速、安全、かつスケーラブルなインフラストラクチャを提供することを目的としています。これは、Aptos Labs チームによって開発され、新しいタイプのコンセンサスプロトコルであるNarwhal & Tuskに基づいています。Sui の設計目標は、ブロックチェーンの性能ボトルネックを解決し、非常に高い取引スループットと低遅延を提供し、複雑なアプリケーションシナリオのニーズに適応することです。
Sui チェーンの主な特徴:
-
高スループットと低遅延: Sui のコンセンサスメカニズムは、大量の取引を並行して処理できることを許可し、ネットワーク全体のグローバルコンセンサスを待つ必要がありません。この並行化設計により、毎秒何千もの取引を処理でき、ブロックチェーンのスループットが大幅に向上し、取引確認の遅延が減少します。
-
オブジェクト指向のリソース管理: Sui は、ブロックチェーン内のリソースをオブジェクトとして管理します。これらのリソース(例えば、トークン、NFT)は独立した識別子を持ち、直接追跡および操作できます。この方法により、Sui は複数のノード間で効率的に並行してリソースを処理でき、グローバルステートを処理する必要がなくなり、性能がさらに向上します。
-
柔軟な取引モデル: Sui は、複数のリソースオブジェクト間で並行して取引を実行できる柔軟で効率的な取引モデルを提供します。これは、異なるユーザーの取引が独立して効率的に行えることを意味し、従来のブロックチェーンの性能ボトルネックを回避します。
-
効率的なアカウントと権限管理: Sui は、多様なアカウント管理メカニズムを提供し、分散型アプリケーションにおける複雑な権限要求に対応できます。個人アカウント、スマートコントラクトアカウント、マルチシグアカウントなど、柔軟に構成および管理できます。
何が Move プログラミング言語ですか?#
Move は、ブロックチェーン開発のために特別に設計されたプログラミング言語で、最初は MetaLibra(後の Diem)チームによって開発され、その後 Sui ブロックチェーンに採用されました。Move の設計の重点は、リソースの管理、所有権の制御、および型安全性にあり、特に分散型アプリケーション内の資産やデジタルリソースを扱うのに適しています。
Move 言語の主な特徴:
-
リソース型システム: Move 言語は、すべてのリソース(トークン、NFT、スマートコントラクト内のデータなど)を「リソース型」として扱います。これらのリソースは、システム内でコピーまたは破壊できず、移転または借用のみが可能です。これにより、各リソースの唯一性と安全性が確保され、従来のスマートコントラクトにおけるリソースの喪失や重複移転の問題を根本的に回避します。
-
所有権と借用メカニズム: Move は、厳格な所有権と借用メカニズムを通じてリソースを管理します。各リソースには唯一の所有者があり、リソースの借用は明示的に宣言する必要があります。このメカニズムは、「共有リソース」の際の安全上のリスクを回避します。リソースの借用は、開発者がリソースの所有権を変更せずにリソースを共有および操作できることを保証します。
-
モジュール化プログラミング: Move は、モジュール化されたプログラミング構造をサポートし、各モジュールには異なるリソース型や関数を含めることができます。モジュール化設計により、コードがより明確で再利用可能になり、開発効率が向上し、コードのエラーの可能性が低下します。
-
型安全性と検証可能性: Move は強い型の言語であり、これは開発者がコンパイル時に各変数とリソースの型を明示的に定義する必要があることを意味します。Move の型システムは、コントラクト内の大部分のエラーがコンパイル段階で発見されることを保証し、実行時エラーを回避し、スマートコントラクトの安全性を向上させます。
Move 言語のサンプルコード:
以下は、Coin
というリソースを作成および移転する方法を示すシンプルな Move コントラクトの例です:
address 0x1 {
module CoinModule {
resource struct Coin has store {
value: u64,
}
public fun create_coin(value: u64): Coin {
Coin { value }
}
public fun transfer_coin(coin: Coin, recipient: address): Coin {
let new_coin = Coin { value: coin.value };
// ここで実際の送金操作を実行できます
return new_coin;
}
}
}
この例では、Coin
はリソース型で、トークンの値を表す value
フィールドを含んでいます。create_coin
関数は新しい Coin
リソースを作成するために使用され、transfer_coin
関数は Coin
リソースを指定されたアカウントに移転するために使用されます。
Move 共学活動:Move 開発の迅速な入門#
より多くの開発者が Move プログラミング言語を迅速に理解し、習得できるように、Move 共学活動は HOH コミュニティ、HackQuest、OpenBuild、KeyMap によって共同で発起されました。この活動は、初心者に良好な学習プラットフォームを提供し、皆さんが Move 言語に慣れ、Web3 開発にどのように応用できるかを理解する手助けをします。
Move 分野の専門のメンターと協力することで、参加者は Move 言語の基礎知識を迅速に習得し、徐々により複雑なアプリケーション開発に進むことができます。ブロックチェーンの初心者から、ある程度の開発経験を持つエンジニアまで、誰でも恩恵を受けることができます。
リソースリンク:
- sui 公式ドキュメント🚪:Sui チェーンに関する詳細なドキュメントを取得し、開発ガイド、API リファレンスなどを含みます。
- move 学習 B 站動画🚪:B 站のビデオチュートリアルを通じて、メンターに従って Move プログラミング言語の基礎と進んだ内容を学びます。
- letsmove リポジトリ🚪:これは Move 学習リソースの GitHub リポジトリで、さまざまなサンプルコードやチュートリアルが含まれており、開発者が Move 言語を習得するのに役立ちます。
一、 Sui 環境のインストール#
sui 公式インストールガイド🚪
Sui ブロックチェーンアプリケーションを開発するには、まず Sui の開発環境をインストールする必要があります。以下はWindows システムで Sui 環境をインストールする手順です:
1. Sui をダウンロードして解凍#
まず、Sui 環境のGitHub リポジトリ🚪にアクセスし、右下隅でリリースバージョンを見つけます。
バージョンのAssetsセクションで、Windows オペレーティングシステムに対応する .tgz
圧縮ファイルを選択し、ダウンロードして解凍します!ここに画像の説明を挿入
2. 環境変数の設定#
解凍が完了したら、環境変数を設定します。コンピュータで「システムの詳細設定」を検索し、「環境変数」をクリックします。
システム変数の中からPath変数を見つけ、先ほど解凍したsuiのフォルダパスを追加し、「OK」ボタンを何度もクリックして「システムの詳細設定」を閉じます。
cmd コマンドラインで sui --version
コマンドを入力して、インストールが成功したかどうかを確認します。
二、vscode プラグインのインストール#
Move コントラクトの開発を便利にするために、VSCode エディタと Move プラグインのインストールをお勧めします。プラグインを使用することで、構文のハイライト、コード補完、コントラクトデバッグなどの機能を享受し、開発効率を向上させることができます。
インストール手順:
- VSCodeを開き、拡張ストアに入ります(ショートカットキー:
Ctrl+Shift+X
)、move
を検索し、以下の 2 つのプラグインをインストールします。
- プラグインのインストールが完了したら、設定を行う必要があります。
lint
をall
に設定し、settings.json
で編集をクリックします。
設定を以下のように変更します。server.path
とsui.path
のパスは、最初のステップで解凍したときのパスです。
- 設定が完了したら、VSCode エディタを再起動して、プラグインが有効になることを確認します。
三、Sui ウォレット Suiet の使用#
Sui テストネットにコントラクトをデプロイする前に、Sui トークンを管理し、取引手数料を支払うためのウォレットを準備する必要があります。Suiet は Sui ウォレットの一種で、Sui トークンを簡単に管理および送金するために使用できます。
1. Suiet ウォレットのダウンロード#
Suiet ダウンロードリンク🚪にアクセスしてインストールします。
2. Suiet ウォレットの作成#
インストールしてウォレットを起動したら、新しいウォレットを作成し、ウォレットの助記詞(ウォレットを復元するために使用)を記録します。
3. Sui トークンの取得#
テスト SUI トークンを取得する:Sui Faucetを通じて無料のテストトークンを取得し、コントラクトのデプロイや取引の手数料を支払います。ウォレットに入ったら、ネットワークをtestnet
テストネットに切り替え、次にFaucet
をクリックしてテスト SUI を取得します。
四、最初の Move コントラクト(HelloMove)のデプロイ#
現在、Sui 環境、VSCode プラグインをインストールし、ウォレットを設定しました。次に、最初の Move コントラクトを作成してデプロイしましょう。
1. コードを取得#
letsmove リポジトリ🚪からコードを取得します。
PS:コードが大きいため、SSH 接続を使用して取得することをお勧めします。HTTPS 接続ではエラーが発生する可能性がありますが、SSH はより安定しています。SSH の設定についてはSSH 詳細ガイドを 3.1 部分でご覧ください🚪
git clone [email protected]:move-cn/letsmove.git
プロジェクト内の/mover/001
フォルダをmover
フォルダ内にコピーし、自分のGitHubのIDに変更します。例えば、huahuahua1223
は私のGitHubのIDです。
2. 新しいプロジェクトの作成#
まず、code/task1/
フォルダ内で Sui CLI を使用して新しい Move プロジェクトを作成します:
sui move new hello_move
このコマンドは、現在のディレクトリに新しい hello_move
ディレクトリを作成し、基本的な Move プロジェクトテンプレートを含みます:
3. コントラクトのデプロイ#
ステップ 1: hello_move
プロジェクトディレクトリに入り、最初にsui client publish
を入力すると、コントラクトをデプロイするためのアカウントが作成されます。
ステップ 2:順に"y"
、"Enter"
、"0"
を入力すると、助記詞付きのアカウントが生成されます。
ステップ 3:テストネットにコントラクトをデプロイするためには、いくつかのテストトークン(SUI)が必要です。Sui の Faucet 機能を使用して取得できます:sui client faucet
、または生成したアカウントをSuietウォレットにインポートしてFaucetボタンを使ってテストトークンを取得します。
ステップ 4:現在のデプロイアカウントアドレスを確認します。コントラクトをデプロイする前に、アカウントの残高を確認して、取引手数料を支払うのに十分な SUI トークンがあることを確認します:
sui client addresses
sui client gas
ステップ 5:コントラクトをデプロイ
これで、Move コントラクトを Sui テストネットにデプロイできます。以下のコマンドを使用してコントラクトを公開します:
sui client publish --gas-budget 100000000
このコマンドは、hello_move
コントラクトを Sui テストネットにデプロイし、一定量の SUI トークンを手数料として消費します!ここに画像の説明を挿入
返された情報は、トランザクションデータ (Transaction Data)、トランザクション効果 (Transaction Effects)、トランザクションブロックイベント (transaction block events)、オブジェクト変更 (Object Changes)、および残高変更 (Balance Changes)です。
オブジェクト変更 (Object Changes) の中で PackageID
を見つけて、sui ブロックチェーンブラウザ🚪で確認します。結果が見つかれば、最初のMoveコントラクトを成功裏にデプロイしたことになります🎉🎉🎉
4. コードを提出#
残りの PR の提出などの詳細な手順については、驚き!オープンソースコードの貢献はこんなに簡単で、すぐに始められる!🚪をご覧ください。
まとめ#
この記事では、Sui 環境での開発環境の構築方法を詳細に説明し、Move プログラミング言語を使用してスマートコントラクトを作成およびデプロイするための迅速な入門を提供しました。記事は Sui チェーンのインストールと設定から始まり、開発環境の設定、必要なツールやプラグインのインストール、最初の Move コントラクトの作成とデプロイ方法を段階的に説明しました。また、Sui チェーンの高スループットと低遅延の特性、Move プログラミング言語のリソース管理と安全性の利点についても詳しく探求しました。実際の操作手順とコード例を通じて、この記事はあなたが Sui ブロックチェーン開発の基礎を迅速に習得するのを助けました。
Move プログラミング能力をさらに向上させたい場合は、Move 共学活動に参加し、メンターやコミュニティメンバーとの交流を通じて迅速に成長してください。このブログが Sui と Move 開発の入門に役立つことを願っています。ブロックチェーン開発の道を進む中で、ますます成功を収めることを祈っています!質問や提案がある場合は、コメント欄での議論を歓迎します🌹
もっと素晴らしいコンテンツをお楽しみに!
私たちは Move の探求の道で共に成長し、また会いましょう! 🎉