Skip to content

治理 ​

协议参数——最低质押、奖励、gas 预算、slashing、AI 阈值——通过按质押加权的链上投票更改,而不是由节点运营者修改配置。

提案生命周期:质押者发起提案,提案在投票窗口内处于 active 状态,质押者按自有质押加权投票;窗口结束时,若票数达到总质押的 20% 且 yes 超过票数的 50% 则通过,否则被拒绝;通过的 PARAM_CHANGE 若取值在允许范围内则更新该参数

发起提案 ​

规则值
谁来自任何地址的已签名请求;.human 提案人的自有质押必须至少为 min_stake
类型text(仅表态)、PARAM_CHANGE(更改一个参数)或 REGISTRY_CHANGE(保留或释放一个名称或代码)
投票窗口100 到 max_voting_duration_blocks(默认 1 000 000)个区块;未指定时为 1 000
限制标题 200 个字符,描述 5 000 个,负载 10 KB

PARAM_CHANGE 以负载形式携带其变更:

json
{ "param_key": "max_block_gas", "param_value": 20000 }

取值可以是数字,也可以是数字字符串。

REGISTRY_CHANGE 保留或释放保留名称注册表("registry": "names")或受保护代码注册表("symbols")中的条目;保留时可以指定仍被允许占用它的所有者:

json
{ "registry": "names", "action": "reserve", "value": "binance", "allowed": ["neuro:<owner>.human"] }

提案是发往 neuro:system.governance 的已签名操作;它在共识中记录,因此每个验证者从同一高度起持有完全相同的提案。

投票 ​

  • 只有拥有自有质押的地址才能投票。投票权重是投票者的自有质押,在执行该投票时从链上状态读取。委托不带投票权。
  • 在提案创建之后追加的质押不能对该提案投票——这阻止了为左右投票而临时购入质押。
  • 每个地址对每个提案只能投一票:yes 或 no,不可更改。
  • 投票是在共识中记录的已签名操作。

结果 ​

投票窗口结束时:

检查默认值提案字段
法定人数——yes + no 权重 ≥ 总自有质押的这一比例20%quorum_bps = 2 000
阈值——yes 权重 > 已投票数的这一比例50%threshold_bps = 5 000

两者均满足 → passed;否则 → rejected。通过的 PARAM_CHANGE 会更新参数——除非新值超出该参数的允许范围,此时变更被拒绝,旧值保留。

最终确定状态

实验性 创建提案和投票在共识中运行。关闭提案以及应用已通过的参数变更,目前是在每个节点提供提案列表(GET /api/v1/governance/proposals)时执行的,而不是在区块提交时。将最终确定移入提交路径已在计划中;在此之前,变更通过后请在每个验证者上检查该参数。

测试方式: 节点中的 test_apply_tx_governance_propose_and_vote_in_consensus 覆盖提案和投票的执行;范围检查由参数测试覆盖(test_deploy_risk_threshold_governance、test_deploy_security_governance_override)。

参数 ​

当前值:GET /api/v1/governance/params。部分参数也可以在节点启动时通过环境变量按节点设置——这是为测试网络准备的。

质押与共识 ​

参数默认值允许范围环境变量覆盖
min_stake10 000 NRO(以 uNRO 计)1 到 10¹⁵ uNRO—
unbonding_blocks1 512 0001 到 10⁹NEUROCHAIN_UNBONDING_BLOCKS
base_apy_bps1 200(12%)0 到 100 000—
genesis_apy_bps2 400(24%)0 到 100 000—
reward_interval_blocks216 0001 到 10⁹NEUROCHAIN_REWARD_INTERVAL_BLOCKS
blocks_per_year78 840 0001 到 10⁹—
max_commission_bps2 000(20%)——
max_block_gas10 0001 到 10⁹—
slash_fraction_double_sign_bps500(min_stake 的 5%)0 到 10 000NEUROCHAIN_SLASH_FRACTION_DOUBLE_SIGN_BPS
slash_reward_fraction_bps100(1% 给举报者)0 到 10 000NEUROCHAIN_SLASH_REWARD_FRACTION_BPS
slash_double_vote_bps5000 到 10 000—
jail_blocks10 0001 到 10⁹NEUROCHAIN_JAIL_BLOCKS
slash_evidence_window10 0001 到 10⁹NEUROCHAIN_SLASH_EVIDENCE_WINDOW
quorum_bps2 0001 到 10 000—
threshold_bps5 0001 到 10 000—

AI 安全 ​

参数默认值允许范围含义
deploy_security_enabled10 或 1VMGuardian 部署前关卡开/关(紧急开关)
deploy_risk_threshold800 到 100风险评分 ≥ 0.80 时拒绝部署
sentinel_enabled10 或 1Sentinel 交易评分开/关
sentinel_reject_threshold85—评分 ≥ 0.85 时拒绝交易
sentinel_policy_enabled0—分级策略层(暂扣 / 确认)——默认关闭
sentinel_hold_threshold60—转账被暂扣的起始评分
sentinel_stepup_threshold70—所有者必须确认的起始评分
sentinel_hold_blocks50—暂扣转账被放行前的延迟
sentinel_confirm_expiry_blocks1 000—退款前等待所有者确认的时长
sentinel_agent_confirm_threshold60—会话密钥转账需要所有者确认的起始评分
trust_activation_blocks300—新的受信任接收方生效前的延迟

Sentinel 策略参数还有 NEUROCHAIN_SENTINEL_* 和 NEUROCHAIN_TRUST_ACTIVATION_BLOCKS 环境变量覆盖;见 Sentinel。

名称 ​

参数默认值允许范围含义
name_min_len51 – 32可购买的最短 .human 名称或 .agent
name_price_len_1 … name_price_len_5100 000 · 50 000 · 10 000 · 5 000 · 2 000 NRO1 uNRO – 10⁹ NRO该长度名称的价格
name_price_len_6plus500 NRO1 uNRO – 10⁹ NRO6 个或更多字符的名称的价格

价格以 uNRO 存储。开放一个更短的长度会在同一个区块中开放该长度的所有名称——请在提案中公布开放高度。

原生资产与兑换 ​

参数默认值含义
asset_issue_fee1 000 NRO发行原生资产的费用
asset_max_decimals18资产可拥有的最大小数位数
dex_shard0存放资产与兑换记录的分片

兑换(AMM)还有流动性提供者手续费、协议手续费、最低流动性、每个池每区块的兑换次数,以及紧急开关等参数;REST 参考列出了它们及其当前值。

允许范围一栏中的短横线表示,变更通过时节点尚不检查该参数的范围——提议取值时请谨慎。

API ​

操作端点
发起提案POST /api/v1/governance/propose
投票POST /api/v1/governance/:id/vote
列出提案GET /api/v1/governance/proposals?status=&limit=&offset=
单个提案GET /api/v1/governance/:id
参数GET /api/v1/governance/params