治理
协议参数——最低质押、奖励、gas 预算、slashing、AI 阈值——通过按质押加权的链上投票更改,而不是由节点运营者修改配置。
发起提案
| 规则 | 值 |
|---|---|
| 谁 | 来自任何地址的已签名请求;.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 以负载形式携带其变更:
{ "param_key": "max_block_gas", "param_value": 20000 }取值可以是数字,也可以是数字字符串。
REGISTRY_CHANGE 保留或释放保留名称注册表("registry": "names")或受保护代码注册表("symbols")中的条目;保留时可以指定仍被允许占用它的所有者:
{ "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_stake | 10 000 NRO(以 uNRO 计) | 1 到 10¹⁵ uNRO | — |
unbonding_blocks | 1 512 000 | 1 到 10⁹ | NEUROCHAIN_UNBONDING_BLOCKS |
base_apy_bps | 1 200(12%) | 0 到 100 000 | — |
genesis_apy_bps | 2 400(24%) | 0 到 100 000 | — |
reward_interval_blocks | 216 000 | 1 到 10⁹ | NEUROCHAIN_REWARD_INTERVAL_BLOCKS |
blocks_per_year | 78 840 000 | 1 到 10⁹ | — |
max_commission_bps | 2 000(20%) | — | — |
max_block_gas | 10 000 | 1 到 10⁹ | — |
slash_fraction_double_sign_bps | 500(min_stake 的 5%) | 0 到 10 000 | NEUROCHAIN_SLASH_FRACTION_DOUBLE_SIGN_BPS |
slash_reward_fraction_bps | 100(1% 给举报者) | 0 到 10 000 | NEUROCHAIN_SLASH_REWARD_FRACTION_BPS |
slash_double_vote_bps | 500 | 0 到 10 000 | — |
jail_blocks | 10 000 | 1 到 10⁹ | NEUROCHAIN_JAIL_BLOCKS |
slash_evidence_window | 10 000 | 1 到 10⁹ | NEUROCHAIN_SLASH_EVIDENCE_WINDOW |
quorum_bps | 2 000 | 1 到 10 000 | — |
threshold_bps | 5 000 | 1 到 10 000 | — |
AI 安全
| 参数 | 默认值 | 允许范围 | 含义 |
|---|---|---|---|
deploy_security_enabled | 1 | 0 或 1 | VMGuardian 部署前关卡开/关(紧急开关) |
deploy_risk_threshold | 80 | 0 到 100 | 风险评分 ≥ 0.80 时拒绝部署 |
sentinel_enabled | 1 | 0 或 1 | Sentinel 交易评分开/关 |
sentinel_reject_threshold | 85 | — | 评分 ≥ 0.85 时拒绝交易 |
sentinel_policy_enabled | 0 | — | 分级策略层(暂扣 / 确认)——默认关闭 |
sentinel_hold_threshold | 60 | — | 转账被暂扣的起始评分 |
sentinel_stepup_threshold | 70 | — | 所有者必须确认的起始评分 |
sentinel_hold_blocks | 50 | — | 暂扣转账被放行前的延迟 |
sentinel_confirm_expiry_blocks | 1 000 | — | 退款前等待所有者确认的时长 |
sentinel_agent_confirm_threshold | 60 | — | 会话密钥转账需要所有者确认的起始评分 |
trust_activation_blocks | 300 | — | 新的受信任接收方生效前的延迟 |
Sentinel 策略参数还有 NEUROCHAIN_SENTINEL_* 和 NEUROCHAIN_TRUST_ACTIVATION_BLOCKS 环境变量覆盖;见 Sentinel。
名称
| 参数 | 默认值 | 允许范围 | 含义 |
|---|---|---|---|
name_min_len | 5 | 1 – 32 | 可购买的最短 .human 名称或 .agent |
name_price_len_1 … name_price_len_5 | 100 000 · 50 000 · 10 000 · 5 000 · 2 000 NRO | 1 uNRO – 10⁹ NRO | 该长度名称的价格 |
name_price_len_6plus | 500 NRO | 1 uNRO – 10⁹ NRO | 6 个或更多字符的名称的价格 |
价格以 uNRO 存储。开放一个更短的长度会在同一个区块中开放该长度的所有名称——请在提案中公布开放高度。
原生资产与兑换
| 参数 | 默认值 | 含义 |
|---|---|---|
asset_issue_fee | 1 000 NRO | 发行原生资产的费用 |
asset_max_decimals | 18 | 资产可拥有的最大小数位数 |
dex_shard | 0 | 存放资产与兑换记录的分片 |
兑换(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 |