subxt ·
Subxt 是一个用于在 Rust 和 WebAssembly 中与基于 Substrate 的节点交互的库。它可以:
- 提交外部交易(这就是其名称的由来)。
- 订阅区块,读取其中的外部交易和相关事件。
- 读取和遍历存储值。
- 从元数据中读取常量和自定义值。
- 调用运行时 API,并返回结果。
- 通过安全、静态类型的接口或在需要灵活性时通过动态接口完成上述所有操作。
- 编译为 WASM 并完全在浏览器中运行。
- 通过
subxt-core
crate 在#[no_std]
环境中执行一系列操作。 - 使用内置的轻客户端(
smoldot
)与链进行交互。
使用方法
查看 examples 文件夹或 examples 文件夹中的各种大小不同的 subxt
使用示例,或阅读指南了解更多信息。
从 Substrate 节点下载元数据
使用 subxt-cli
工具从节点下载目标运行时的元数据。
- 安装:
cargo install subxt-cli
- 将编码后的元数据保存到文件中:
subxt metadata -f bytes > metadata.scale
默认情况下,这会查询本地运行节点的元数据,地址为 http://localhost:9933/
。如果查询其他节点,metadata
命令接受 --url
参数。
Subxt 文档
有关使用 subxt 的更多详细信息,请访问文档。
集成测试
大多数测试需要一个正在运行的 substrate 节点进行通信。这是通过为每个测试生成一个 substrate 节点实例来实现的。它需要在你的路径中有一个最新的 substrate
可执行文件。
可以通过 cargo 从源代码安装:
cargo install --git https://github.com/paritytech/polkadot-sdk staging-node-cli --force
实际应用
请通过 PR 将你的项目添加到此列表。
- cargo-contract 用于与 Wasm 智能合约交互的 CLI。
- xcm-cli 用于提交 XCM 消息的 CLI。
- phala-pherry Phala 区块链和链下安全工作器之间的中继器。
- crunch 用于在每个 Era 或每 X 小时批量领取基于 substrate 的链的质押奖励的 CLI。
- interbtc-clients interBTC 平行链的客户端实现;主要是保险库/中继器和预言机。
- tidext 带有 Stronghold 签名器的 Tidechain 客户端。
- staking-miner-v2 提交 NPos 选举解决方案并获得奖励。
- polkadot-introspector 用于监控 Polkadot 节点的工具。
- ink! 智能合约语言,使用
subxt
允许开发者进行端到端测试。 - Chainflip 用于原生跨链交换的去中心化交易所。
替代方案
substrate-api-client 提供类似的功能。
许可证
本存储库中的所有代码均采用 GPL-3.0 或 Apache-2.0 许可证双重许可。有关更多详细信息,请参阅 LICENSE 文件。
如果您对我们产品的许可有任何疑问,请联系我们。