Skip to content

链属性

链属性是网络的可治理参数:费用、区块大小、通胀率、惩罚规则等。没有任何中央机构设置这些参数——每个活跃验证者发布其首选值,区块链对所有活跃验证者取中位数并应用。


工作原理

1. 验证者发布首选项

每个验证者通过 versioned_chain_properties_update_operation 提交其首选参数:

json
[46, {
  "owner": "alice",
  "props": [3, {
    "account_creation_fee": "1.000 VIZ",
    "maximum_block_size": 131072,
    ...
  }]
}]

[3, {...}] 表示版本 3(chain_properties_hf9,当前格式)。

2. 中位数计算

在每次验证者计划更新时,区块链调用 update_median_witness_props()。对每个属性独立地

  1. 收集每个活跃验证者的值。
  2. 排序。
  3. 中位数(索引 active.size() / 2)。
示例——5 个验证者对 account_creation_fee 投票:
  0.5, 1.0, 1.0, 2.0, 5.0 VIZ

         中位数 = 1.0 VIZ

中位数对极端值有抵抗力:单个验证者无法导致突然的大幅变化;要显著移动任何参数,需要多数人同意。

3. 应用

结果 median_props 对象存储在 validator_schedule_object 中,并在所有区块处理中强制执行。


所有可治理属性

账户和委托

属性类型默认值描述
account_creation_feeasset(VIZ)1.000 VIZ创建新账户的最低费用
create_account_delegation_ratiouint3210所需委托 = ratio × fee
create_account_delegation_timeuint32(秒)2592000(30天)创建委托的锁定时间
min_delegationasset(VIZ)1.000 VIZ任何 SHARES 委托的最低金额

区块大小和带宽

属性类型默认值描述
maximum_block_sizeuint32(字节)131072最大区块大小;控制吞吐量
bandwidth_reserve_percentuint16(bp)1000(10%)小账户的额外带宽
bandwidth_reserve_belowasset(SHARES)500.000000获得带宽预留的资格阈值
data_operations_cost_additional_bandwidthuint32(%)0数据操作(custom_operation)的额外带宽倍数

通胀和经济

属性类型默认值描述
inflation_validator_percentuint16(bp)2000(20%)验证者在区块通胀中的份额
inflation_ratio_committee_vs_reward_funduint16(bp)5000(50%)剩余通胀的分配:委员会基金 vs 奖励基金
inflation_recalc_perioduint32(区块)806400(~28天)通胀重新计算的频率

通胀流程:block_reward × inflation_validator_percent → 验证者。剩余分配:inflation_ratio_committee_vs_reward_fund → 委员会基金;其余 → 奖励基金。

奖励系统

属性类型默认值描述
min_curation_percentuint16(bp)500(5%)内容支付中的最低策展奖励份额
max_curation_percentuint16(bp)500(5%)最高策展奖励份额
vote_accounting_min_rsharesuint325000000奖励产生非零收益所需的最低 rshares
flag_energy_additional_costuint16(bp)0反对票/标记的额外能量成本

验证者问责

属性类型默认值描述
validator_miss_penalty_percentuint16(bp)100(1%)错过区块时的投票权重降低
validator_miss_penalty_durationuint32(秒)86400(1天)错过惩罚的持续时间

费用

所有费用进入委员会基金(DAO 国库)。

属性类型默认值描述
committee_create_request_feeasset(VIZ)100.000 VIZ创建委员会资金请求的费用
create_paid_subscription_feeasset(VIZ)100.000 VIZ创建付费订阅的费用
account_on_sale_feeasset(VIZ)10.000 VIZ将账户挂牌出售的费用
subaccount_on_sale_feeasset(VIZ)100.000 VIZ将子账户创建权挂牌出售的费用
validator_declaration_feeasset(VIZ)10.000 VIZ验证者注册的一次性费用
create_invite_min_balanceasset(VIZ)10.000 VIZ最低邀请余额

质押提取

属性类型默认值描述
withdraw_intervalsuint1628SHARES 解除质押的每日分期数

属性版本

属性分阶段随硬分叉引入:

版本索引硬分叉新增字段
chain_properties_init0创世account_creation_fee、maximum_block_size、委托参数、策展、带宽、标记成本、最低 rshares 投票、委员会阈值
chain_properties_hf41HF4inflation_validator_percent、inflation_ratio_committee_vs_reward_fund、inflation_recalc_period
chain_properties_hf62HF6data_operations_cost_additional_bandwidth、validator_miss_penalty_percent、validator_miss_penalty_duration
chain_properties_hf93HF9create_invite_min_balance、committee_create_request_fee、create_paid_subscription_fee、account_on_sale_fee、subaccount_on_sale_fee、validator_declaration_fee、withdraw_intervals

所有新的验证者属性提交请使用版本索引 3(chain_properties_hf9)。


治理循环

SHARES 持有者 → 为验证者投票
验证者 → 发布首选属性值
区块链 → 取活跃集合的中位数
中位数 → 作为实时网络规则应用

更改参数需要大多数活跃验证者发布新值。流程:

  1. 社区讨论所需变更(例如降低费用)。
  2. 验证者更新其发布的属性。
  3. 用户将投票转移给发布所需值的验证者。
  4. 一旦大多数活跃验证者发布新值,中位数就会移动。
  5. 新值自动生效——无需硬分叉或治理投票。

读取当前属性

json
{ "method": "database_api.get_chain_properties", "params": [] }

返回当前生效的中位数属性。参见 Database API


参见:验证者Database API质押和 DAO