摘要
Asset Hub Polkadot 是承载 Polkadot 生态系统中资产、NFT 和智能合约的系统平行链。本文解释了它的作用、关键特性,以及如何使用 RPC 端点连接您的应用程序,并提供实用示例和故障排除技巧。
快速建议:如何连接到 Asset Hub Polkadot
如果您正在构建一个需要读取余额、提交交易或查询 Asset Hub Polkadot 上资产元数据的应用程序,最快的方法是使用托管的 RPC 端点。您可以先使用公共端点 wss://asset-hub-polkadot-rpc.polkadot.io 进行测试,但对于生产环境的工作负载,您应该评估提供一致性能和可靠性的专用或高级公共 RPC 提供商。OnFinality 提供 Asset Hub Polkadot 的 RPC 端点 和其他 Polkadot 系统链,选项包括免费公共端点到专用节点。查看 支持的网络列表 以确认可用性,并查看 RPC 定价 了解速率限制和计划详情。
对于大多数开发者来说,决策归结为:
- 原型或低流量应用:公共端点没问题,但要注意速率限制和潜在的停机时间。
- 生产 dApp:使用具有多个端点、WebSocket 支持和故障转移能力的托管提供商。
- 高吞吐量或归档需求:考虑使用专用节点以避免共享资源争用。
什么是 Asset Hub Polkadot?
Asset Hub Polkadot(以前称为 Statemint)是 Polkadot 网络上的系统平行链。它旨在为发行和管理链上资产提供核心功能,包括同质化代币、非同质化代币(NFT),以及最近的智能合约。虽然中继链(Polkadot)处理安全性和共识,但 Asset Hub 专注于资产逻辑——铸造、销毁、转移和元数据——高效且经济。
关键特性包括:
- 原生资产创建:使用可配置的权限和元数据创建和管理代币。
- NFT 支持:铸造和转移非同质化资产。
- 智能合约:使用
pallet-revive(以前是pallet-contracts)部署和交互智能合约。 - XCM 集成:使用跨共识消息在平行链之间移动资产。
- 低费用:Asset Hub 上的交易通常比中继链便宜。
在运行时升级到 2.0.0 版本后,Asset Hub 还托管了以前位于中继链上的余额、质押和治理功能,使其成为日常 Polkadot 活动的主要网络。
为什么使用 Asset Hub Polkadot?
Asset Hub 提供了一个标准化的资产管理框架,该框架是 Polkadot 生态系统的原生功能。以下是开发者和项目选择它的主要原因:
- 成本效益:在 Asset Hub 上创建和转移资产比在中继链上便宜得多。
- 互操作性:在 Asset Hub 上发行的资产可以通过 XCM 转移到其他平行链,从而实现跨链应用。
- 智能合约支持:随着智能合约功能的增加,开发者可以直接在 Asset Hub 上构建 DeFi、游戏和其他应用。
- 安全性:作为系统平行链,Asset Hub 受益于与中继链相同的共享安全性。
链设置概览
当您将应用程序连接到 Asset Hub Polkadot 时,您需要正确的网络配置。以下是基本细节:
| 设置 | 值 |
|---|---|
| 网络名称 | Asset Hub Polkadot |
| 链 ID | 1000(平行链 ID) |
| RPC 端点(HTTPS) | https://asset-hub-polkadot-rpc.polkadot.io |
| RPC 端点(WSS) | wss://asset-hub-polkadot-rpc.polkadot.io |
| 代币符号 | DOT |
| 代币小数位 | 10 |
| 区块浏览器 | Subscan |
注意:这些是公共端点。对于生产环境,请考虑使用像 OnFinality 这样的托管提供商,它提供更可靠的专用端点。查看 Polkadot 网络页面 了解 OnFinality 的具体端点。
使用 RPC 连接到 Asset Hub Polkadot
要与 Asset Hub Polkadot 交互,您可以使用 JSON-RPC 调用。以下是一个简单的 curl 示例,用于获取最新区块号:
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method":"chain_getHeader", "params":[]}' \
https://asset-hub-polkadot-rpc.polkadot.io
对于 WebSocket 订阅(例如,监听新区块),您可以使用像 wscat 这样的工具或 JavaScript 库。以下是在 Node.js 中使用 ws 包的示例:
const WebSocket = require('ws');
const ws = new WebSocket('wss://asset-hub-polkadot-rpc.polkadot.io');
ws.on('open', function open() {
ws.send(JSON.stringify({
id: 1,
jsonrpc: '2.0',
method: 'chain_subscribeNewHeads',
params: []
}));
});
ws.on('message', function incoming(data) {
console.log(data.toString());
});
对于更高级别的交互,您可以使用 Polkadot.js API。以下是一个查询账户余额的示例:
const { ApiPromise, WsProvider } = require('@polkadot/api');
async function main() {
const provider = new WsProvider('wss://asset-hub-polkadot-rpc.polkadot.io');
const api = await ApiPromise.create({ provider });
const address = 'YOUR_ADDRESS_HERE';
const { data: { free } } = await api.query.system.account(address);
console.log('Free balance:', free.toString());
await api.disconnect();
}
main().catch(console.error);
在 Asset Hub Polkadot 上管理资产
Asset Hub 支持原生资产和外来资产。原生资产直接在平行链上发行,而外来资产是来自其他链的资产的表示,通过 XCM 管理。
创建同质化资产
要创建新的同质化资产,您需要使用 assets pallet 提交一个外部函数。以下是一个使用 Polkadot.js 的示例:
const { ApiPromise, WsProvider, Keyring } = require('@polkadot/api');
async function createAsset() {
const provider = new WsProvider('wss://asset-hub-polkadot-rpc.polkadot.io');
const api = await ApiPromise.create({ provider });
const keyring = new Keyring({ type: 'sr25519' });
const alice = keyring.addFromUri('//Alice');
const tx = api.tx.assets.create(
1, // 资产 ID
alice.address, // 管理员
1000000, // 最小余额
100 // 小数位
);
const hash = await tx.signAndSend(alice);
console.log('Transaction hash:', hash.toHex());
await api.disconnect();
}
createAsset().catch(console.error);
转移资产
转移同质化资产很简单:
const tx = api.tx.assets.transfer(
1, // 资产 ID
'RECIPIENT_ADDRESS',
1000 // 金额
);
NFT
Asset Hub 还通过 uniques 和 nfts pallet 支持 NFT。您可以使用类似的外部函数铸造、转移和管理 NFT。
Asset Hub Polkadot 上的智能合约
随着智能合约支持的引入,Asset Hub 允许开发者使用 pallet-revive 部署基于 Wasm 的智能合约。这为直接在网络上构建 DeFi、游戏和其他应用开辟了可能性。
要部署合约,您通常使用 polkadot.js UI 或像 @polkadot/contracts 这样的开发框架。该过程包括:
- 编译您的合约到 Wasm。
- 上传代码到链上。
- 实例化合约并设置初始参数。
以下是一个使用 Polkadot.js 上传合约代码的简化示例:
const code = fs.readFileSync('my_contract.wasm');
const tx = api.tx.contracts.upload(code, null, null);
请注意,智能合约支持相对较新,因此请查看最新的运行时文档以了解确切的 API 和要求。
常见陷阱和故障排除
在使用 Asset Hub Polkadot 时,开发者经常遇到这些问题:
- 错误的端点:使用中继链端点而不是 Asset Hub 端点。确保您连接到
asset-hub-polkadot。 - 速率限制:公共端点可能会限制请求。如果您遇到速率限制,请考虑升级到付费计划或专用节点。
- WebSocket 断开:对于长时间运行的订阅,请确保您的客户端处理重新连接逻辑。
- 资产 ID 冲突:创建资产时,选择唯一的资产 ID 以避免冲突。
- 存在性存款(ED):账户必须保持最低余额(ED)才能保持活跃。如果账户低于 ED,它可能会被清除。
监控和生产就绪
对于生产应用程序,您应该监控您的 RPC 端点以确保它们健康。以下是一个使用 curl 的简单健康检查脚本:
curl -s -X POST https://asset-hub-polkadot-rpc.polkadot.io \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"system_health","params":[],"id":1}'
健康的响应将包括 "isSyncing": false 和 "peers": >0。如果您使用 OnFinality,您还可以通过仪表板设置正常运行时间监控和警报。
关键要点
- Asset Hub Polkadot 是 Polkadot 生态系统中用于资产管理、NFT 和智能合约的系统平行链。
- 它提供低费用、XCM 互操作性和与中继链的共享安全性。
- 对于开发,使用公共 RPC 端点;对于生产,考虑使用像 OnFinality 这样的托管提供商以获得可靠性和支持。
- 常见操作包括创建和转移资产、铸造 NFT 以及部署智能合约。
- 始终监控您的端点并优雅地处理速率限制和重新连接。
常见问题解答
Asset Hub Polkadot 和 Polkadot 中继链有什么区别?
中继链提供安全性和共识,而 Asset Hub 处理资产逻辑和智能合约。迁移后,Asset Hub 还托管余额、质押和治理。
我可以在 Asset Hub Polkadot 上部署 ERC-20 风格的代币吗?
是的,您可以创建行为类似于 ERC-20 代币的同质化资产,但它们是 Substrate 运行时的原生资产,并使用 assets pallet。
如何获得 DOT 来支付 Asset Hub 上的交易费用?
您需要 DOT 来支付交易费用。您可以从交易所或水龙头获取 DOT,然后通过 XCM 或直接转移将其转移到您的 Asset Hub 账户。
Asset Hub Polkadot 与以太坊工具兼容吗?
不,Asset Hub 是基于 Substrate 的链,因此它使用 Polkadot.js 和 Substrate API。但是,通过智能合约支持,您可以使用基于 Wasm 的合约,这与 EVM 合约不同。
我在哪里可以找到 Asset Hub 的官方文档?
请参阅 Polkadot 开发者文档 和 Polkadot Wiki 获取详细信息。
如何在公共和专用 RPC 端点之间选择?
对于高流量的生产应用,专用端点提供更好的性能和可靠性。评估您的工作负载、速率限制和预算。OnFinality 提供灵活的 RPC 定价 和 专用节点 选项。