21 个版本 (重大更改)

0.15.0 2024年7月18日
0.13.0 2024年5月23日
0.10.0 2024年3月18日
0.6.0 2023年12月12日
0.1.0-dev.22023年7月27日

562魔法豆

Download history 3490/week @ 2024-04-16 3274/week @ 2024-04-23 3687/week @ 2024-04-30 2823/week @ 2024-05-07 2862/week @ 2024-05-14 3769/week @ 2024-05-21 3670/week @ 2024-05-28 2959/week @ 2024-06-04 2239/week @ 2024-06-11 3613/week @ 2024-06-18 3380/week @ 2024-06-25 1297/week @ 2024-07-02 3233/week @ 2024-07-09 4321/week @ 2024-07-16 2322/week @ 2024-07-23 2763/week @ 2024-07-30

每月下载量12,880
用于 372 个crate(34个直接使用)

Apache-2.0

440KB
6.5K SLoC

Substrate 创世构建器。

请参阅模块文档以获取更多信息。

许可证:Apache-2.0


lib.rs:

Substrate 创世配置构建器

对于基于 FRAME 的运行时,此运行时接口提供与 RuntimeGenesisConfig 交互的方式。运行时以 JSON blob 的形式提供默认的 RuntimeGenesisConfig 结构。

对于非FRAME运行时,此接口旨在根据一些任意字节数组构建运行时的创世状态。本文档使用术语 RuntimeGenesisConfig,对于非FRAME运行时,可以理解为表示初始运行时配置的运行时端实体。预设的表示是一个任意的 Vec<u8>,并不一定必须表示一个JSON对象。

运行时可以提供多个部分预定义的 RuntimeGenesisConfig 配置,以补丁的形式应用在默认的 RuntimeGenesisConfig 之上。补丁是一个JSON对象,本质上包含了一系列键值对,这些键值对将用于自定义默认运行时创世配置。这些预定义配置被称为预设。

这允许运行时提供多个预定义配置(例如,用于不同的测试网或开发),而无需将运行时类型泄露到自身之外(例如,节点或链规范相关工具)。

此运行时API允许与 RuntimeGenesisConfig 交互,特别是

  • 提供可用预设名称的列表,
  • 提供多个命名的 RuntimeGenesisConfig 预设,
  • 提供默认 RuntimeGenesisConfig 的JSON表示(通过简单地将默认 RuntimeGenesisConfig 结构体序列化为JSON格式),
  • 从给定的JSON对象反序列化完整的 RuntimeGenesisConfig 并将结果 RuntimeGenesisConfig 结构体放入状态存储中,创建初始运行时的状态。这允许构建定制的创世状态。此操作内部调用所有运行时模块的 GenesisBuild::build 函数。

提供带有空存储的外部性并将 RuntimeGenesisConfig 放入存储中(通过调用 build_state)允许构建 RuntimeGenesisConfig 的原始存储,这是创世块的基石。

依赖项

~16–29MB
~480K SLoC