56 个版本 (36 个主要版本)

38.0.0 2024 年 7 月 18 日
37.0.0 2024 年 6 月 21 日
36.0.0 2024 年 5 月 23 日
35.0.0 2024 年 4 月 30 日
2.0.0-alpha.52020 年 3 月 24 日

#1#off-chain

Download history 8481/week @ 2024-05-03 8008/week @ 2024-05-10 8859/week @ 2024-05-17 9540/week @ 2024-05-24 9843/week @ 2024-05-31 7734/week @ 2024-06-07 7560/week @ 2024-06-14 11451/week @ 2024-06-21 7232/week @ 2024-06-28 8676/week @ 2024-07-05 12770/week @ 2024-07-12 9875/week @ 2024-07-19 9081/week @ 2024-07-26 10488/week @ 2024-08-02 10738/week @ 2024-08-09 8160/week @ 2024-08-16

每月 40,149 次下载
用于 715 个软件包 (280 个直接使用)

Apache-2.0

645KB
13K SLoC

Substrate 运行时的 I/O 主机接口。

许可证:Apache-2.0


lib.rs:

Substrate 原语:IO

此软件包包含运行时与外部世界通信的接口,即 io。在其他上下文中,此类接口被称为 "主机函数"。

每套主机函数都是由 sp_runtime_interface::runtime_interface 宏的一个实例定义的。

特别值得注意的是,此软件包包含以下主机函数

此软件包提供的所有默认主机函数,以及默认包含在所有基于 Substrate 的客户端中的所有默认主机函数,都汇集在 SubstrateHostFunctions 中。

外部性

宿主函数与外部性概念密切相关。外部性是指宿主函数提供的环境,因此可以访问。某些宿主函数只能在提供外部性的环境中访问。

底层数据库开发者常见的错误如下

use sp_io::storage::get;
let data = get(b"hello world");

此代码将引发以下错误

thread 'main' panicked at '`get_version_1` called outside of an Externalities-provided environment.'

此类错误信息应始终解释为“代码在非外部性环境中访问宿主函数”。

外部性是任何实现了 sp_externalities::Externalities 类型的类型。一个简单的例子是 TestExternalities,它常用于测试,并由此crate导出。

use sp_io::{storage::get, TestExternalities};
TestExternalities::default().execute_with(|| {
	let data = get(b"hello world");
});

依赖项

~14–28MB
~445K SLoC