huahua

huahua

‘私はできない’から‘私はできる’へ、一緒にMove契約開発を楽しもう

系列文章目录#

Task1:hello move🚪
Task2:move coin🚪
Task3:move nft🚪
Task4:move game🚪

もっと素晴らしいコンテンツをお楽しみに!✌️


@TOC


前言#

ブロックチェーン技術の急速な発展に伴い、ますます多くの開発者が、分散型アプリケーション(DApps)の迅速な発展を支えるために、より効率的で安全なブロックチェーンプラットフォームを求めています。Sui チェーンMove プログラミング言語は、新興のブロックチェーンソリューションとして、その革新的な設計理念と技術的優位性により、高性能なブロックチェーンアプリケーションを開発するための理想的な選択肢となっています。

この記事では、Sui チェーンMove プログラミング言語の基本概念、利点、そしてそれらがブロックチェーンアプリケーションの開発方法をどのように変えるかを紹介し、Move 共学活動Task1タスクを通じて、皆さんが迅速に入門し、最初の Move コントラクトを実践的にデプロイする手助けをします。

HOH コミュニティ


何が Sui チェーンですか?#

Sui は、高性能なブロックチェーンプラットフォームで、分散型アプリケーションに対して迅速、安全、かつスケーラブルなインフラを提供することを目的としています。これは Aptos Labs チームによって開発され、新しいタイプのコンセンサスプロトコルであるNarwhal & Tuskに基づいています。Sui の設計目標は、ブロックチェーンの性能ボトルネックを解決し、非常に高い取引スループットと低遅延を提供し、複雑なアプリケーションシナリオのニーズに適応することです。

Sui チェーンの主な特徴:

  1. 高スループットと低遅延: Sui のコンセンサスメカニズムは、大量の取引を並行処理することを可能にし、ネットワーク全体のグローバルコンセンサスを待つ必要がありません。この並行化設計により、毎秒数千の取引を処理でき、ブロックチェーンのスループットが大幅に向上し、取引確認の遅延が減少します。

  2. オブジェクト指向のリソース管理: Sui は、ブロックチェーン内のリソースをオブジェクトとして管理します。これらのリソース(例えば、トークン、NFT)は独立した識別子を持ち、直接追跡および操作できます。この方法により、Sui は複数のノード間で効率的にリソースを並行処理でき、グローバルステートを処理する必要がなく、性能がさらに向上します。

  3. 柔軟な取引モデル: Sui は、複数のリソースオブジェクト間で並行して取引を実行する柔軟で効率的な取引モデルを提供します。これは、異なるユーザーの取引が独立して効率的に行われ、従来のブロックチェーンの性能ボトルネックを回避できることを意味します。

  4. 効率的なアカウントと権限管理: Sui は、多様なアカウント管理メカニズムを提供し、分散型アプリケーションにおける複雑な権限要求に対応できます。個人アカウント、スマートコントラクトアカウント、マルチシグアカウントなど、柔軟に構成および管理できます。


何が Move プログラミング言語ですか?#

Move は、ブロックチェーン開発のために特別に設計されたプログラミング言語で、最初は MetaLibra(後の Diem)チームによって開発され、その後 Sui ブロックチェーンに採用されました。Move の設計の重点は、リソースの管理、所有権の制御、および型安全性にあり、特に分散型アプリケーション内の資産やデジタルリソースを処理するのに適しています。

Move 言語の主な特徴:

  1. リソース型システム: Move 言語は、すべてのリソース(トークン、NFT、スマートコントラクト内のデータなど)を「リソース型」として扱います。これらのリソースは、システム内でコピーまたは破壊できず、移動または借用することのみが可能です。これにより、各リソースの唯一性と安全性が確保され、従来のスマートコントラクトにおけるリソースの喪失や重複移転の問題を根本的に回避できます。

  2. 所有権と借用メカニズム: Move は、厳格な所有権と借用メカニズムを通じてリソースを管理します。各リソースには唯一の所有者があり、リソースの借用は明示的に宣言する必要があります。このメカニズムは、「共有リソース」の際の安全性のリスクを回避します。リソースの借用は、開発者がリソースの所有権を変更せずにリソースを共有および操作できることを保証します。

  3. モジュール化プログラミング: Move は、モジュール化されたプログラミング構造をサポートし、各モジュールには異なるリソース型や関数を含めることができます。モジュール化設計により、コードがより明確で再利用可能になり、開発効率が向上し、コードのエラーの可能性が低下します。

  4. 型安全性と検証可能性: 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 コミュニティHackQuestOpenBuildKeyMap によって共同で発起されました。この活動は、新しい学習者に良好な学習プラットフォームを提供し、皆さんが 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 プラグインのインストールをお勧めします。プラグインを使用することで、構文のハイライト、コード補完、コントラクトデバッグなどの機能を享受し、開発効率を向上させることができます。

インストール手順:

  1. VSCodeを開き、拡張ストアに入ります(ショートカットキー:Ctrl+Shift+X)、moveを検索し、以下の 2 つのプラグインをインストールします。
    ここに画像の説明を挿入
  2. プラグインのインストールが完了したら、設定を行う必要があります。
    ここに画像の説明を挿入
    lintallに設定し、settings.jsonで編集をクリックします。
    ここに画像の説明を挿入
    以下のように設定を変更します。server.pathsui.pathのパスは、最初のステップで解凍したときのパスです。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
  3. 設定が完了したら、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 の詳細な設定方法は 3.1 部分を参照してください🚪

git clone [email protected]:move-cn/letsmove.git

ここに画像の説明を挿入

プロジェクト内の/mover/001フォルダをmoverフォルダ内にコピーし、自分のGitHubIDに変更します。例えば、huahuahua1223が私のGitHubIDです。
ここに画像の説明を挿入

2. 新しいプロジェクトの作成#

まず、code/task1/フォルダ内で Sui CLI を使用して新しい Move プロジェクトを作成します:

sui move new hello_move

このコマンドは、現在のディレクトリに新しい hello_move ディレクトリを作成し、基本的な Move プロジェクトテンプレートを含みます:
ここに画像の説明を挿入

3. コントラクトのデプロイ#

ステップ 1hello_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 の探求の道で共に成長し、またお会いしましょう! 🎉

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。