1 个稳定版本

2.0.0 2020 年 10 月 3 日

#19 in #enterprise

无许可

25KB
485

Substrate 产品注册托盘

产品注册托盘提供了在供应链中各种利益相关者之间交换的产品/贸易项目的主数据(即类级别)的注册和管理功能。此数据通常由产品的制造商/供应商一次性注册,以与其他网络参与者共享。

当此托盘添加到 Substrate 运行时,其他自定义 Substrate 托盘可以在此基础上实现额外的业务逻辑,利用产品注册托盘作为已知产品和其所属组织的参考。

此托盘是 Substrate 企业示例 的一部分。

它受到现有项目和标准的影响

注意:此托盘以简化的方式实现了上述过程,因此它仅用于演示目的,未经审计,不适合生产使用。

使用方法

要注册产品,必须发送一个包含以下参数的交易,使用 productRegistry.registerProduct 外部函数:

  • id 作为产品 ID,通常这是 GS1 GTIN(全球贸易项目编号)或 ASIN(亚马逊标准识别号),或类似的数字或字母数字代码,具有定义良好的数据结构。
  • owner 作为代表拥有此产品的 Substrate 账户,例如在价值链中提供此产品的制造商或供应商。
  • props 是一系列属性(名称和值),描述产品。通常,至少会有文本描述和 SKU。它还可以包含实例/批次的 master 数据,例如过期日期、重量、收获日期。

依赖关系

特质

此托盘依赖于 [FRAME EnsureOrigin 系统特质]

frame_support::traits::EnsureOrigin;

托盘

此托盘依赖于 FRAME 时间戳托盘

测试

使用以下命令运行测试

```
cargo test
```

如何在您的运行时中使用它

运行时 Cargo.toml

要将此托盘添加到您的运行时,只需将以下内容添加到运行时的 Cargo.toml 文件中

[dependencies.product-registry]
default_features = false
package = 'pallet-product-registry'
version = '2.0.0'

并将您的运行时的 std 功能更新以包括此托盘

std = [
    # --snip--
    'product-registry/std',
]

运行时 lib.rs

您应该像这样实现它的特性

impl product_registry::Trait for Runtime {
	type Event = Event;
	type CreateRoleOrigin = Origin;
}

并在您的 construct_runtime! 宏中包含它

ProductRegistry: product_registry::{Module, Call, Storage, Event<T>},

创世配置

此模板托盘没有创世配置。

参考文档

您可以通过运行来查看此托盘的参考文档

cargo doc --open

依赖关系

~6–15MB
~199K SLoC