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 处理两类截然不同的操作。理解两者的区别对应用设计至关重要。
1. 读取操作(查询)
这些是查询账本上现有数据的请求。
- 成本: 免费(无需 gas 费用)。
- 安全性: 无需钱包签名。
- 机制: 客户端查询节点的本地数据库并立即返回结果。
- 示例:
getObject(): 获取非同质化代币(NFT)元数据。getBalance(): 查询钱包余额。
2. 写入操作(交易)
这些是更改账本状态的请求。
- 成本: 需要 SUI 代币(以 MIST 为单位)支付 gas 费用。
- 安全性: 需要用户钱包的加密签名。
- 机制: 客户端通过 RPC 全节点提交已签名的交易,全节点将其转发给验证节点网络进行执行和共识。
- 示例:
- 转账代币。
- 铸造 NFT。
- 修改链上游戏数据。
后续步骤
既然您已经了解了架构,下一步就是执行读取操作。下一篇指南 如何获取对象数据 提供了一个脚本,用于从 Sui devnet 查询实时数据。