区块链中文技术社区

BNB BSC 合约关系与方法梳理

1. 合约架构概述

核心合约

合约关系图

2. 各合约主要功能与方法

2.1 System.sol / SystemV2.sol

2.2 BSCValidatorSet.sol

2.3 StakeHub.sol

2.4 GovHub.sol

2.5 SlashIndicator.sol

2.6 SystemReward.sol

3. 合约调用关系

3.1 链代码调用合约

3.2 合约间调用

4. 接口定义

4.1 0.6.x 接口

4.2 0.8.x 接口

5. 系统流程

5.1 验证者创建流程

  1. 用户调用 StakeHub.createValidator 创建验证者
  2. StakeHub 部署 StakeCredit 代理合约
  3. StakeHub 记录验证者信息
  4. 用户可以调用 delegate 进行委托

5.2 验证者惩罚流程

  1. 区块生产者调用 SlashIndicator.slash 惩罚未出块的验证者
  2. SlashIndicator 检查惩罚阈值
  3. 如果达到 misdemeanor 阈值,调用 BSCValidatorSet.misdemeanor
  4. 如果达到 felony 阈值,调用 BSCValidatorSet.felony 和 StakeHub.downtimeSlash

5.3 参数更新流程

  1. 治理提案通过后,GovernorTimelock 调用 GovHub.updateParam
  2. GovHub 调用目标合约的 updateParam 方法
  3. 目标合约更新参数并触发事件

6. 总结

该合约系统是一个完整的区块链验证者管理和治理系统,主要包括:

合约之间通过明确的接口进行交互,形成了一个完整的生态系统,确保区块链网络的安全和稳定运行。

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »