参数

本文档描述并建议配置 peggy 模块的参数。默认参数可以在 peggy 模块的 genesis.go 文件中找到。

type Params struct {
	PeggyId                       string                                 
	ContractSourceHash            string                                 
	BridgeEthereumAddress         string                                 
	BridgeChainId                 uint64                                 
	SignedValsetsWindow           uint64                                 
	SignedBatchesWindow           uint64                                 
	SignedClaimsWindow            uint64                                 
	TargetBatchTimeout            uint64                                 
	AverageBlockTime              uint64                                 
	AverageEthereumBlockTime      uint64                                 
	SlashFractionValset           math.LegacyDec 
	SlashFractionBatch            math.LegacyDec 
	SlashFractionClaim            math.LegacyDec 
	SlashFractionConflictingClaim math.LegacyDec 
	UnbondSlashingValsetsWindow   uint64  
	SlashFractionBadEthSignature  math.LegacyDec 
	CosmosCoinDenom               string  
	CosmosCoinErc20Contract       string  
	ClaimSlashingEnabled          bool    
	BridgeContractStartHeight     uint64  
	ValsetReward                  types.Coin
}

peggy_id

一个随机的 32 字节值,用于防止签名重用。例如,如果 Injective Chain 验证者决定将相同的 Ethereum 密钥用于另一个也运行 Peggy 的链,我们不希望能够将链 A 的存款回放到链 B 的 Peggy 上。这个值在 Ethereum 上使用,因此必须在启动前在 genesis.json 中设置,并且在部署 Peggy 后不得更改。部署 Peggy 后更改此值会导致桥接功能失效。要恢复,只需将其设置回合同部署时的原始值。

contract_source_hash

已知良好版本的 Peggy 合约 Solidity 代码的代码哈希。可以用来验证已部署的合约是否为正确版本。这是一个仅供治理操作参考的值,Peggy 代码永远不会读取它。

bridge_ethereum_address

是 Ethereum 侧桥接合约的地址,这只是一个仅供治理操作参考的值,实际上不会被任何 Peggy 模块代码使用。 Ethereum 桥接中继器使用此值与 Peggy 合约进行交互,用于查询事件和提交 valset/batches 到 Peggy 合约。

bridge_chain_id

桥接链 ID 是 Ethereum 链的唯一标识符。这个值仅供参考,实际上不会被任何 Peggy 代码使用。 这些参考值可能会被未来的 Peggy 客户端实现用于一致性检查。

Signing windows

  • signed_valsets_window

  • signed_batches_window

  • signed_claims_window

这些值表示验证者必须在多少个区块时间内提交批次或 valset 的签名,或者提交特定证明 nonce 的声明。 在证明的情况下,这个时钟从证明创建时开始,但仅在事件经过后才允许进行惩罚。请注意,声明惩罚当前尚未启用,详见惩罚规范

target_batch_timeout

这是批次超时的“目标”值,之所以称为目标,是因为 Ethereum 是一个概率链,无法提前确定区块频率。

Ethereum timing

  • average_block_time

  • average_ethereum_block_time

这些值分别是 Injective Chain 和 Ethereum 的平均区块时间,用于计算目标批次超时。若区块生成时间发生任何重大且长期的变化,治理需要更新这些值。

Slash fractions

  • slash_fraction_valset

  • slash_fraction_batch

  • slash_fraction_claim

  • slash_fraction_conflicting_claim

针对各种 Peggy 相关的惩罚条件的惩罚分数。前三个分数是指未提交特定消息,第三个是指未提交声明,最后一个是指提交与其他验证者不同的声明。 请注意,如惩罚规范所述,声明惩罚当前已禁用。

valset_reward

Valset 奖励是当中继者将 valset 中继到 Ethereum 上的 Peggy 合约时,支付给中继者的奖励金额。

Last updated