Berachain Docs 中文版
by DocsZH
  • 入门学习
    • 介绍 Berachain
      • 什么是 Berachain
      • 什么是流动性证明
      • 什么是 BeaconKit
      • 连接到 Berachain
      • 如何获得 $BERA
    • Berachain 测试网
      • Berachain 测试网 V1 与 V2
    • PoL 流动性证明
      • 流动性证明概述
      • 流动性证明参与者
      • 奖励金库
      • 激励系统
      • 原生代币系统
        • $BERA
        • $BGT
        • $HONEY
    • 治理模型
      • 治理模型概述
      • 奖励金库白名单
    • 指南
      • 流动性证明常见问题
    • 原生 dApps
      • 测试网水龙头
      • 区块浏览器
      • BEX
      • Bend
      • Berps
      • BGT Station
      • Honey Swap
    • 帮助中心
      • 常见问题
      • 名词解释
  • 开发者文档
    • 面向开发者的 Berachain
      • 流动性证明架构
      • 网络配置
      • 已部署合约
      • 开发者工具
      • 测试网水龙头
      • 测试网区块浏览器
    • 开发者快速入门
      • 智能合约部署
      • 前端部署
    • 开发者指南
      • 使用 Hardhat 部署 HelloWorld 合约
      • 使用 Foundry 部署 ERC20 合约
      • 使用 NextJS & WalletConnect 部署合约
      • 开发者外部资源
      • 非 ERC20 代币流动性证明集成
    • 已部署合约参考
  • 节点运行文档
    • Berachain 节点
      • 节点架构概述
      • BeaconKit 共识层
      • EVM 执行层
      • 节点运行快速入门
      • BeaconKit GitHub 存储库
    • 节点指南
      • 使用 Kurtosis 运行本地开发网
      • 从快照同步节点
由 GitBook 提供支持
在本页
  • BeraChef.sol​
  • Distributor.sol​
  • BerachainRewardsVault.sol​
  • BGT.sol​
  • BlockRewardController.sol​
  1. 开发者文档
  2. 面向开发者的 Berachain

流动性证明架构

上一页面向开发者的 Berachain下一页网络配置

最后更新于7个月前

BeraChef.sol

BeraChef合约负责存储验证者的偏好,以便将$BGT分配到奖励金库。

关键术语

  • Cutting Board:每个验证者都有自己的Cutting Board,用于存储他们对奖励金库的偏好和权重。当验证者被选中提议区块时,$BGT将分配到这些奖励金库。

关键函数

queueNewCuttingBoard:此函数允许验证者设置未来区块的Cutting Board分配,此函数只能由验证者调用。

activateQueuedCuttingBoard:此函数由Distributor合约在验证者被选中提议区块时调用,并被激活。

getActiveCuttingBoard / getQueuedCuttingBoard:这些函数用于return既定验证者(被选中提议区块)活跃/队列中的cutting board数据。

updateFriendsOfTheChef:此函数用于更新$BGT接收者/奖励金库是否被列入白名单的状态。此函数只能由治理模块调用,这就是为什么需要治理提案来将新的奖励金库列入白名单,或对现有奖励金库进行更改。

Distributor合约负责分配来自奖励控制器的区块奖励。每个代币库都有自己的Cutting Board,如果不存在,则使用默认Cutting Board。如果治理(Governance)没有设置默认Cutting Board,则不会铸造和分发奖励。

distributeFor:用于向既定验证者(被选中提议区块)的Cutting Board中列出的奖励金库分发$BGT奖励。证明者(Prover)的作用是证明既定验证者确实向Distributor合约提交了指定区块,以便相应地分发奖励。

俗称奖励金库(Reward Vaults),奖励金库是一种合约,用户可以在其中质押符合PoL流动性证明要求的资产,以获得$BGT奖励。奖励金库还存储协议提供的奖励,在收到$BGT后分配给验证者。

addIncentive:此函数控制奖励代币$BGT的产出,确保以既定的产出率分配$BGT发行。奖励代币必须首先通过whitelistIncentiveToken治理,列入白名单,并确定该代币的最低奖励率。

stake:此函数允许用户质押符合PoL要求的资产,以获得$BGT奖励。

withdraw:此函数允许用户从奖励金库提取质押资产。

BGT合约负责处理与$BGT相关的所有事务,由治理模块控制,$BGT只能由BlockRewardController合约铸造。

关键术语

  • Boosts:$BGT持有人可以通过Boosts提高验证者出块奖励,从而验证者在提议区块后可以获得更多$BGT奖励。助力(boosts)也称为“委托”,$BGT持有人可以将boosts应用于多个验证者。

  • Sender Whitelist:$BGT不可转让,只能向白名单地址发送(例如$BGT -> $BERA销毁器合约)。这是为了确保$BGT只分配给PoL参与者。

queueBoost:此函数允许$BGT持有者帮助验证者加入Boosts队列,此函数只能由$BGT持有人调用。

activateBoost:此函数用于激活既定验证者的所有队列和Boosts,同一验证者的Boosts激活间隔时间是8191个区块,这是为了避免过度重新授权。

BlockRewardController合约的主要功能是管理$BGT(Bera Governance Token)的奖励率,并处理$BGT奖励的铸造和分配。

processRewards:此函数负责处理既定区块的奖励计算和分配。它根据基本费率、奖励费率以及验证者获得的Boosts来计算奖励,然后铸造并分配相应数量的$BGT代币。此函数由Distributor合约调用。

Friends Of The Chef:这些地址在验证者Cutting Board名单中有一席之地。换句话说,这是白名单的合集。

Distributor.sol

关键函数

BerachainRewardsVault.sol

关键函数

BGT.sol

关键函数

BlockRewardController.sol

关键函数

奖励金库
​
​
​
​
​
​
​
​
​
此图概述了流动性证明(PoL)关键合约之间的相互作用