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