Injective | Documentation
InjectiveGithub
Injective | 中文文档
Injective | 中文文档
  • 关于 Injective
  • 快速入门
    • 钱包
      • 创建钱包
      • 账户
      • 质押
      • 治理
      • 拍卖
    • 代币标准
      • INJ 代币
      • Token Factory
      • CW20 标准
    • 交易
      • Gas 和 Fees
  • 指南
    • 创建钱包
    • 桥接
      • From Ethereum
      • Using Wormhole
      • Using IBC
      • From Solana
    • 发布代币
    • 发布市场
    • Denom 元数据
    • 获取INJ
  • 工具包
    • injectived
      • 安装 injectived
      • 使用 injectived
      • 指令
    • Injective TS SDK
    • Injective Go SDK
    • Injective Python SDK
    • Injective CW SDK
    • The Graph
  • 参考
  • 术语表
  • 开发者
    • 快速入门
      • 指南
        • 测试网提案
        • 转换地址
        • 计算
          • 最低价格刻度
          • 最低数量刻度
    • 交易所开发者
      • 构建 DEX
      • 预言机提供方
    • Cosmwasm 开发者
      • 您的首个智能合约
      • 指南
        • 本地开发
        • 主网开发
        • 给部署地址白名单
        • 创建您的 Swap 合约
        • 创建 UIs
      • CW20 适配器
      • Injective Test Tube
    • 模块
      • Injective
        • 拍卖(Auction)
          • State
          • 消息
          • EndBlock
          • 事件
          • 参数
        • 交易所(Exchange)
          • 衍生品市场概念
          • 现货市场概念
          • 二元期权市场概念
          • 其他概念
          • 状态
          • 状态转换
          • 消息
          • 提案
          • BeginBlock
          • EndBlock
          • 事件
          • 参数
          • MsgPrivilegedExecuteContract
        • 保险(Insurance)
          • 状态
          • 状态转换
          • 消息
          • EndBlock
          • 事件
          • 参数
          • 改进
        • OCR
          • 概念
          • 状态
          • 消息
          • 提案
          • BeginBlock
          • 钩子(Hooks)
          • 事件
          • 参数
        • 预言机(Oracle)
          • 状态
          • Keeper
          • 消息
          • 提案
          • 事件
          • 改进
        • Peggy
          • 定义
          • 工作流
          • 状态
          • 消息
          • 处罚
          • EndBlock
          • 事件
          • 参数
          • 中继语义
          • 改进
        • 权限(Permissions)
          • 概念
          • 状态
          • 状态转换
        • 代币工厂(TokenFactory)
          • 概念
          • 状态
          • 消息
          • 事件
          • 参数
        • WasmX
          • 概念
          • 数据
          • 提案
          • 消息
          • 参数
      • 核心
        • Auth
        • AuthZ
        • 银行(Bank)
        • 共识(Consensus)
        • 危机(Crisis)
        • 分发(Distribution)
        • 证据(Evidence)
        • 费用授权(Feegrant)
        • 治理(Gov)
        • 群组(Group)
        • 铸造(Mint)
        • NFT
        • 参数(Params)
        • 惩罚(Slashing)
        • 质押(Staking)
        • 升级(Upgrade)
        • Circuit
        • Genutils
    • dApps 开发文档
  • 节点
    • 快速入门
      • 和节点交互
      • 运行节点
        • 设置密钥环
        • 加入网络
        • Cosmovisor
        • 升级您的节点
    • 验证者
      • 主网
        • Peggo
        • 规范链升级
          • Upgrade to 10002-rc1
          • Upgrade to 10002-rc2
          • Upgrade to 10003-rc1
          • Upgrade to 10004-rc1
          • Upgrade to 10004-rc1-patch
          • Upgrade to 10005-rc1
          • Upgrade to 10006-rc1
          • Upgrade to 10007-rc1
          • Upgrade to 10008 - Camelot
          • Upgrade to 10009
          • Upgrade to v1.10
          • Upgrade to v1.11
          • Upgrade to v1.12.0 - Volan
          • Upgrade to v1.12.1
          • Upgrade to v1.13.0 - Altaris
          • Upgrade to v1.13.2
          • Upgrade to v1.13.3
          • Upgrade to v1.14.0
          • Upgrade to v1.14.1
      • 测试网
        • 测试网 Peggo
    • 公共端点
    • 高级端点
    • Injective 索引器设置
  • 交易员
    • 快速入门
    • 文档
    • API 参考
  • 常用链接
    • Injective 101
    • Injective Hub
    • Injective 浏览器
    • Chain API Reference
    • Indexer API Reference
    • 测试网水龙头
Powered by GitBook
On this page
  • 摘要
  • 目录
  • Keeper
  • 子空间
  • 键
  • 键表(KeyTable)
  • 参数集(ParamSet)
Export as PDF
  1. 开发者
  2. 模块
  3. 核心

参数(Params)

PreviousNFTNext惩罚(Slashing)

Last updated 1 month ago

Note: Params 模块已被弃用,取而代之的是每个模块拥有自己的参数。

摘要

params 包提供了一个全局可用的参数存储。

主要有两种类型:Keeper 和 Subspace。Subspace 是一个用于参数存储的隔离命名空间,其键由预配置的空间名称前缀。Keeper 具有访问所有现有空间的权限。

Subspace 可供需要私有参数存储的独立 keeper 使用,其他 keeper 无法修改该存储。params Keeper 可用于向 x/gov 路由器添加路由,以便在提案通过时修改任何参数。

以下内容解释了如何在主模块和用户模块中使用 params 模块。

目录

Keeper

在应用程序初始化阶段,可以使用 Keeper.Subspace 为其他模块的 keeper 分配,并将其存储在 Keeper.spaces 中。然后,这些模块可以通过 Keeper.GetSubspace 获得对其特定参数存储的引用。

示例:

type ExampleKeeper struct {
	paramSpace paramtypes.Subspace
}

func (k ExampleKeeper) SetParams(ctx sdk.Context, params types.Params) {
	k.paramSpace.SetParamSet(ctx, &params)
}

子空间

Subspace 是参数存储的一个前缀子空间。每个使用参数存储的模块都会获取一个 Subspace,以隔离访问权限。

键

参数键是人类可读的字母数字字符串。例如,键为 "ExampleParameter" 的参数存储在 []byte("SubspaceName" + "/" + "ExampleParameter") 下,其中 "SubspaceName" 是子空间的名称。

子键是与主参数键一起使用的次级参数键。子键可用于分组或在运行时动态生成参数键。

键表(KeyTable)

所有将要使用的参数键都应在编译时注册。KeyTable 本质上是一个 map[string]attribute,其中字符串是参数键。

当前,attribute 包括一个 reflect.Type,用于指示参数类型,以检查提供的键和值是否兼容并已注册,以及一个函数 ValueValidatorFn 用于验证值。

只有主键需要在 KeyTable 上注册。子键继承主键的属性。

参数集(ParamSet)

模块通常将参数定义为 proto 消息。生成的结构体可以实现 ParamSet 接口,以便与以下方法一起使用:

  • KeyTable.RegisterParamSet():注册结构体中的所有参数

  • Subspace.{Get, Set}ParamSet():从结构体中获取或设置参数

实现者应为指针,以便使用 GetParamSet()。

子空间
Keeper
子空间
键
键表
参数集