提名池
一个名为 "提名者池 "的智能合约可以让一个或多个提名者借出 Toncoin 作为验证者的股份,并确保验证者只能将 Toncoin 用于验证。此外,智能合约还保证了奖励的分配。
架构
限制
该池专为大量代币设计。
在开发过程中,主要的标准是代码的安全性和简洁性。
池不支持小额存款,也不支持在一个资金池中有大量提名人。
经测试的目标配置为:提名人最低持股量为 1 万 TON ,提名池最多有 40 个提名人。
我们强烈建议在进行此类测试之前,不要将提名人数设定为 40 人以上。
费用
由于该池位于费用较高的主链中,因此每轮验证将花费约 **5 TON **来运营该池。
操作费由验证人支付。
请注意,存储池余额应始终为 10 TON - 这是支付网络存储费的最低余额。10 TON 不能提取。
奖励分配
在每一轮验证中,"池 "都会向 "选举人 "智能合约发送赌注。
一轮验证结束后,池向选民收回资金。
通常收到的金额大于发送的金额,差额就是验证奖励。
验证器根据不可变的池参数 validator_reward_share
获得奖励份额。
validator_reward = (reward * validator_reward_share) / 10000;
nominators_reward = reward - validator_reward;
提名人根据其赌注大小分享剩余奖励。
例如,如果池中有两个提名人,赌注分别为 10 万 TON 和 30 万 TON ,那么第一个提名人将获得 "提名人奖励 "的 25%,第二个提名人将获得 "提名人奖励 "的 75%。
削减提名池
如果验证罚款数额较大,当收到的金额少于发出的金额时,损失将从验证者的资金中扣除。
如果验证人的资金不足,那么剩余的损失将从提名人的赌注中按比例扣除。
请注意,提名池的设计方式是,验证器的资金应始终足以支付最高罚款。
验证员的责任
只有当验证器资金超过不可变池参数 min_validator_stake
时,池才能参与验证。
此外,验证器的资金 必须超过对错误验证的最高罚款额。建议罚款根据网络配置计算。
否则,程序池将不会发送参与验证轮的请求。
提名者信息
要与提名者池互动,提名者可向池智能合约发送带有文本注释的简单消息(可从任何钱包应用程序发送)。
信息必须以可反弹模式发送!
如果出现错别字或无效信息,信息会弹回到发件人。
如果您在非弹跳模式下发送拼写错误的信息或无效信息,您将损失代币。
提名人保证金
为了让提名人存款,他需要向提名人池智能合约发送带有 Toncoin 的信息,并发送文本注释 "d"。
提名人只能从位于基链(原始地址为 "0:...")的钱包发送信息。
TON 币金额必须大于或等于 min_nominator_stake + 1 TON
。
存款时扣除 1 TON ,作为存款处理佣金。
如果池当前未参与验证("state ==0"),则存款将立即存入。
如果当前池正在参与验证(state != 0
),则该金额将被添加到提名人的pending_deposit_amount
(待定存款金额)中,并在当前一轮验证完成后记入贷方。
提名人随后可以发送更多的 Toncoin 来增加存款。
需要注意的是,如果提名人池中的提名人数已经达到 "max_nominators_count"(最大提名人数),那么来自新提名人的存款将被拒绝(会被退回给发件人)。
提名人退出
要提取资金,提名人需要向提名人池智能合约发送信息,并附上文本注释 "w "和一些用于支付网络费用的 Toncoin (1 Toncoin 即可)。除极少数情况外,信息中未使用的 TON 币将被退回。
如果提名者奖池余额中有足够的 Toncoin ,将立即提款。如果提名人池已完成一轮验证,但尚未提交新一轮验证申请,则所有资金都将计入提名人池余额。
如果提名人池余额中没有足够的 Toncoin ,则会向提名人发出 "提款请求", Toncoin 将在本轮验证结束后被提取。
提名人只能一次性提取全部资金。不支持部分提款。
验证器退出
验证人可以从池中提取不属于提名人的所有代币。
参与者必须保管好自己的私人密钥
如果提名人丢失了存款的钱包,将无法从资金池中提取资金。
如果验证者失去了对钱包的访问权限,那么他将无法从池中提取他(验证者)的资金。
一个池参与者的钱包私钥丢失不会影响其他参与者。