SuiClient: アプリの郵便局員
- 対象読者: Suiブロックチェーンを初めて扱う開発者。
- 前提知識: ブロックチェーンの基本概念(ウォレット、トランザクション)の理解。
- 目標: アプリアーキテクチャにおける
SuiClientの役割を理解する。
はじめに
Suiエコシステムでは、アプリがブロックチェーンネットワークと直接通信することはできません。通信プロトコルの処理、データ取得、トランザクション送信を行う仲介役が必要です。
**SuiClient**は、この目的のためにSui TypeScript SDKで提供される主要なインターフェースです。
アーキテクチャ:「郵便局」の比喩
Suiネットワークを、大規模でグローバルな郵便システムと考えてみてください。
- あなたのアプリは窓口の顧客です。
SuiClientは郵便局員です。
システムとやり取りするには郵便局員に頼る必要があります。自分で郵便物を仕分けたり配達トラックを運転したりすることはできません。局員を通じてリクエストを行う必要があります。
- 画像
- コード
- ASCII
flowchart LR
A["あなたのアプリ<br/>(顧客)"] -->|サービスの依頼| B("SuiClient<br/>(窓口係)")
B -->|リクエストの処理| C["Suiネットワークノード<br/>(郵便システム)"]
C -->|結果の配送| B
B -->|アイテムの受け渡し| A
┌──────────────┐ サービスの依頼 ┌──────────────┐ リクエストの処理 ┌──────────────────┐
│あなたのアプリ│─────────────────► │ SuiClient │─────────────────► │Suiネットワークノード│
│ (顧客) │◄───────────────── │ (窓口係) │◄───────────────── │ (郵便システム) │
└──────────────┘ アイテムの受け渡し └──────────────┘ 結果の配送 └──────────────────┘
ネットワークへの接続
局員が特定の支店で働くのと同様に、SuiClientインスタンスはリモートプロシージャコール(RPC)エンドポイントを介して特定のネットワーク環境に接続します。
クライアントを初期化する際、接続先の環境を定義します:
| ネットワーク | 説明 | ユースケース |
|---|---|---|
| Mainnet | 本番稼働中の実運用ネットワーク。本物の資産、本物の価値。 | 本番運用アプリ。 |
| Testnet | 公開テストネットワーク。Mainnetのバージョンを反映。 | ステージングおよび統合テスト。 |
| Devnet | 実験用ネットワーク。頻繁にデータがリセットされる。 | 迅速なプロトタイピングと公開テスト。 |
| Localnet | マシン上で動作するローカルテストネットワーク。 | オフライン開発とテスト。 |
主要機能
SuiClientは2つの明確に異なるカテゴリの操作を処理します。この違いを理解することはアプリ設計において極めて重要です。
1. 読み取り操作(クエリ)
これらは台帳上の既存データを検索するためのリクエストです。
- コスト: 無料(ガス代不要)。
- セキュリティ: ウォレット署名は不要。
- メカニズム: クライアントがノードのローカルデータベースにクエリを実行し、結果を即座に返します。
- 例:
getObject(): NFTメタデータの取得。getBalance(): ウォレット残高の確認。
2. 書き込み操作(トランザクション)
これらは台帳の状態を変更するためのリクエストです。
- コスト: ガス代としてSUIトークン(MIST単位)が必要。
- セキュリティ: ユーザーのウォレットからの暗号化署名が必要。
- メカニズム: クライアントが署名済みトランザクションをRPCフルノード経由で送信し、フルノードが検証者(バリデータ)ネットワークにリレーして実行と合意形成を行います。
- 例:
- コインの送金。
- NFTのミント。
- オンチェーンゲームデータの更新。
次のステップ
アーキテクチャを理解したところで、次は読み取り操作を実行します。次のガイド「オブジェクトデータの取得方法」では、Suiのdevnetからライブデータをクエリするスクリプトを提供します。