摘要
Asset Hub 是 Polkadot 的系统平行链,用于发行、管理和转移同质化及非同质化资产。它提供低费用、灵活的资产操作,并通过 XCM 实现跨链互操作性。本文解释了 Asset Hub 是什么、为什么重要,以及如何连接其 RPC 端点用于开发和生产的。
快速建议:何时使用 Asset Hub RPC
如果您正在构建钱包、索引器或 DeFi 应用程序,需要在 Polkadot 上读取或写入资产余额、转移代币或管理 NFT,那么 Asset Hub 是您应该针对的链。其 RPC 端点让您直接访问资产模块和 XCM 功能。对于生产工作负载,您需要一个可靠的 RPC 提供商,提供 HTTPS 和 WebSocket 端点,并能够随着用户群的增长而扩展。OnFinality 为 Asset Hub 和其他 Polkadot 系统链提供专用节点和 RPC 服务,因此您可以专注于应用程序逻辑,而不是节点操作。
什么是 Asset Hub?
Asset Hub 是 Polkadot 网络上的一个系统平行链。它被设计为创建、管理和转移同质化及非同质化资产的主要场所。与仅处理 DOT 和共享安全性的中继链不同,Asset Hub 提供了一个专门的运行时,支持铸造、销毁、转移和设置元数据等资产操作。它还通过 XCM 处理来自其他链的外部资产,使其成为跨链资产转移的中心枢纽。
Asset Hub 以前称为 Statemint。它是“公共利益”平行链之一,意味着它为整个生态系统提供基础设施。它没有通货膨胀,其治理由中继链控制。Asset Hub 上的收集人获得一部分交易费用,但没有基于时代的奖励。
为什么 Asset Hub 对开发者很重要
对于开发者来说,Asset Hub 相比直接在 relay chain 上构建有几个优势:
- 更低的费用:Asset Hub 上的交易费用显著低于中继链,使其对于高容量的资产操作具有成本效益。
- 更低的最低存款:保持账户存活所需的最低余额要低得多(0.01 DOT,而中继链为 1 DOT)。
- 灵活的资产支持:您可以发行自己的代币、NFT,甚至使用支持的资产支付交易费用。
- 跨链互操作性:资产可以通过 XCM 在平行链之间移动,从而实现复杂的多链应用。
Asset Hub 网络详情
Asset Hub 运行在 Polkadot 中继链上,因此共享相同的安全模型。它有自己的 RPC 端点集,可用于与链交互。该网络已在 Polkadot 主网上线,还有 Paseo 和 Westend 等测试网可供实验。
以下是您需要了解的关键网络参数:
| 参数 | 值 |
|---|---|
| 链名称 | Asset Hub Polkadot |
| 旧名称 | Statemint |
| 中继链 | Polkadot |
| 原生代币 | DOT |
| 最低存款 | 0.01 DOT |
| 常见资产 ID | USDT: 1984, USDC: 1337 |
| 支持的 RPC 传输 | HTTPS, WSS |
如何连接 Asset Hub RPC
要与 Asset Hub 交互,您需要一个 RPC 端点。您可以使用公共端点进行测试,但对于生产环境,应考虑专用或托管的 RPC 服务。OnFinality 为 Asset Hub 提供公共和私有端点,您可以在 Asset Hub 网络页面 上找到它们。
以下是如何使用 curl 向 Asset Hub 发出 JSON-RPC 调用的示例:
curl -sS -X POST https://public-01.asset-hub-polkadot.rpc.onfinality.io \
-H 'Content-Type: application/json' \
-d '{"id":1,"jsonrpc":"2.0","method":"chain_getBlockHash","params":[0]}'
此调用返回 Asset Hub 上第一个区块的哈希。您可以将方法替换为基于 Substrate 的链支持的任何其他 JSON-RPC 方法。
使用 JavaScript 库与 Asset Hub 交互
如果您正在构建 dApp,您可能会使用像 polkadot-js/api 这样的库与 Asset Hub 交互。以下是一个简单的示例,展示如何连接并读取账户余额:
const { ApiPromise, WsProvider } = require('@polkadot/api');
async function main() {
const provider = new WsProvider('wss://public-01.asset-hub-polkadot.rpc.onfinality.io');
const api = await ApiPromise.create({ provider });
const alice = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY';
const balance = await api.query.system.account(alice);
console.log('Balance:', balance.data.free.toString());
await api.disconnect();
}
main().catch(console.error);
此脚本通过 WebSocket 连接到 Asset Hub,查询 Alice 的账户余额并打印出来。您可以扩展此脚本以查询资产、转移代币或监听事件。
Asset Hub RPC 方法和常见用例
Asset Hub 支持标准的 Substrate RPC 方法,以及特定于资产模块的方法。以下是您将使用的最常见方法:
assets_getAsset– 获取特定资产的详细信息。assets_getAccount– 获取特定资产的账户余额。assets_getApprovedAccount– 获取转账的已批准账户。nft_getNft– 获取 NFT 的详细信息。system_account– 获取账户信息。chain_getBlock– 获取区块详细信息。
有关完整列表,请参阅 Polkadot API 文档。
为 Asset Hub 选择合适的 RPC 提供商
为 Asset Hub 选择 RPC 提供商时,请考虑以下因素:
- 可靠性:您的提供商应具有高可用性和冗余基础设施。
- 吞吐量:如果您预期高流量,则需要能够处理负载的提供商。
- WebSocket 支持:对于实时应用程序,WebSocket 至关重要。
- 存档数据:如果您需要历史状态,请寻找提供存档节点的提供商。
- 定价:比较定价模型,找到适合您预算的。
OnFinality 提供具有灵活定价的 RPC 服务 和用于高性能需求的 专用节点。您还可以查看 RPC 定价页面 了解详情。
常见陷阱和故障排除
在使用 Asset Hub 时,您可能会遇到一些常见问题:
- 错误的端点:确保您使用的是目标网络(主网与测试网)的正确端点。
- 速率限制:公共端点可能有速率限制。对于生产环境,请使用专用或托管服务。
- WebSocket 断开:如果您使用 WebSocket,请实现重连逻辑以处理断开。
- 资产 ID 混淆:始终验证您使用的资产 ID,因为不同资产具有不同的 ID。
如果您遇到问题,请检查网络状态和提供商的文档。OnFinality 为其服务提供支持,因此如果您需要帮助,可以联系我们。
关键要点
- Asset Hub 是 Polkadot 用于资产管理的系统平行链,提供低费用和灵活的资产操作。
- 它支持同质化和非同质化资产,以及通过 XCM 进行跨链转移。
- 开发者可以通过 HTTPS 或 WebSocket RPC 端点连接到 Asset Hub。
- 对于生产环境,请选择像 OnFinality 这样可靠的 RPC 提供商,以确保正常运行时间和性能。
- 始终验证资产 ID,并为您的目标网络使用正确的端点。
常见问题解答
Asset Hub 和 Polkadot 中继链有什么区别?
中继链提供共享安全和共识,而 Asset Hub 处理资产逻辑。Asset Hub 是运行在中继链上的平行链,因此它受益于相同的安全性,但提供专门的资产功能。
我可以使用 Asset Hub 发行自己的代币吗?
是的,您可以在 Asset Hub 上创建自己的同质化或非同质化资产。您需要存入一定数量的 DOT,但费用远低于中继链。
如何在 Asset Hub 和其他平行链之间转移资产?
您可以使用 XCM(跨共识消息)在 Asset Hub 和其他平行链之间转移资产。这可以通过 xcmPallet 或更高级别的 API 完成。
Asset Hub 在测试网上可用吗?
是的,Paseo 和 Westend 上有 Asset Hub 的测试网版本。您可以使用这些测试网在部署到主网之前测试您的应用程序。
Asset Hub 上有哪些 RPC 方法可用?
Asset Hub 支持标准的 Substrate RPC 方法,以及特定于资产的方法,如 assets_getAsset 和 nft_getNft。您可以在 Polkadot API 文档中找到完整列表。
如何获得专用的 Asset Hub 节点?
OnFinality 为 Asset Hub 和其他网络提供专用节点。您可以联系我们设置适合您需求的节点。