链上配置
链上配置

链上配置(OnChainConfig)主要实现不用更新节点的情况下,通过链上交易更新链上的一些配置。在 Starcoin 中,可以通过标准库中的DAO实现来修改链上的参数。

下面主要介绍OnChainConfig的功能以及使用方式。

OnChainConfig可修改的配置:

  • TransactionPublishOption
  • VMConfig
  • ConsensusConfig
  • RewardConfig
  • TransactionTimeoutConfig
  • DaoConfig
  • Version

具体每个配置的详细字段信息,请参考附录表格。

OnChainConfig修改流程

OnChainConfig的修改流程主要包括以下步骤:

  • 确定待修改配置的参数值,发起OnChainConfigDao提案。
  • 用户发起投票。
  • 提案通过执行修改交易。
  • 验证参数是否生效。

Dao具体流程参考Dao

附录:OnChainConfig配置列表

配置模块可修改字段提案脚本名称验证方法
TransactionPublishOptionscript_allow_list,module_publishing_allowedpropose_update_txn_publish_optionTransactionPublishOption::is_script_allowed,is_module_allowed
VMConfiginstruction_schedule
native_schedule
global_memory_per_byte_cost
global_memory_per_byte_write_cost
min_transaction_gas_units
large_transaction_cutoff
instrinsic_gas_per_byte
maximum_number_of_gas_units
min_price_per_gas_unit
max_price_per_gas_unit
max_transaction_size_in_bytes
gas_unit_scaling_factor
default_account_size
propose_update_vm_config需执行交易验证,参考: test_modify_on_chain_vm_config_option的单元测试
ConsensusConfiguncle_rate_target,
base_block_time_target, base_reward_per_block,
base_reward_per_uncle_percent,
epoch_block_count,
base_block_difficulty_window,
min_block_time_target,
max_block_time_target,
base_max_uncles_per_block,
base_block_gas_limit,
strategy,
propose_update_consensus_configConsensusConfig::get_config
RewardConfigreward_delaypropose_update_reward_configRewardConfig::get_reward_config
TransactionTimeoutConfigduration_secondspropose_update_txn_timeout_configTransactionTimeoutConfig::duration_seconds
DaoConfigvoting_delay,
voting_period,
voting_quorum_rate,
min_action_delay,
propose_modify_dao_configDao::voting_delay,
voting_period,
voting_quorum_rate,
min_action_delay
Versionmajorpropose_update_versionVersion::get