http://www.7klian.com

如何修复Kava-3主网「BEP3资产供给调解」bug

//初始化
 k.UpdateAssetSupplies(ctx)
 

软分叉
 ctx.KVStore(k.key),
func(k Keeper)SetAssetSupply(ctx sdk.Context,提供范例.AssetSupply,名词 [] byte){

Github 链接:https://github.com/Kava-Labs/kava/blob/869189054d68d6ec3e6446156ea0a91eb45af09c/x/bep3/keeper/keeper.go#L199

我们的修复要领是在 bep3 begin blocker 中添加一个函数,当参数中的 AssetSupply 值更新时,该函数会更新 AssetSupply 的值。

技能代码附录

https://github.com/Kava-Labs/kava/blob/869189054d68d6ec3e6446156ea0a91eb45af09c/x/bep3/types/keys.go#L31

 为_,supportedAsset:=范畴 params.SupportedAssets {
 Denom string`json:「denom」yaml:「denom」`//资产名称

修复将如何实现?

SetAssetSupply 函数为应用数据库中持续 0x02 处的每个资产配置了限制:

 假如 supply.SupplyLimit).IsLT(totalSupply.Add(coin)){
 types.AssetSupplyKeyPrefix,// 0x02

摘要:今朝 Kava 主网上有一个较小的 bug,会影响 BEP3 资产供给的调解,这意味着我们临时无法上调 Kava CDP 内的 BNB 抵押额度(今朝已触顶 40,000 BNB)。不外请安心,该 bug 不会影响用户资金的安详性。

}

Github 链接:https://github.com/Kava-Labs/kava/blob/v0.8.1/x/bep3/types/params.go

}

store.Set(denom,bz)

当一个新的互换被缔造时,IncrementIncomingAssetSupply 函数被挪用,来查抄互换资产量没有高出存储在相应的 0x02 的资产限制量。今朝因为这个值没有被更新,所以互换没有通过这个查抄。

如何修复 bug?

k.SetAssetSupply(ctx,asset,[] byte(supportedAsset.Denom))
   )
}

 }
     asset.SupplyLimit = sdk.NewCoin(

// IncrementIncomingAssetSupply 递增资产的传入供给
   资产,找到:= k.GetAssetSupply(
     硬币,totalSupply,供给。SupplyLimit,
网络系统版本或协议进级后,旧的例程并不会被代码产生改变,并继承接管由新间断缔造的区块,新老仓库始终照旧在同一条链上事情。

函数(k Keeper)IncrementIncomingAssetSupply(ctx sdk.Context,coin sdk.Coin)error {
 假如找到了 {
 有效 bool`json:「active」yaml:「active」`//暗示资产是处于勾当状态照旧已暂停
 k.UpdateExpiredAtomicSwaps(ctx)

接下来我们从技能角度来阐明一下 Kava 代码中的这个 bug。这个问题代码在 Kava 的 bep3 模块中。在该模块的参数中,支持的抵押资产被指定如下:

原文标题:《Kava-3 主网错误修复陈诉》

修复实际上只需要更新几行代码,配置当供给限制的参数值更新时,,强制执行应用的状态也相应更新。但只能是的,这对系统而言是一个大的变革,所以我们不能仅仅依靠宣布一个新的 v0.8 版原来修复这个问题。

Github 链接:https : //github.com/Kava-Labs/kava/blob/v0.8.1/x/bep3/genesis.go#L29

为了将其作为异步网络分叉来实现,我们在函数中添加一个激活时间参数,该参数指定 UpdateAssetSupplies 应该何时运行。譬喻,我们指定仅在 ctx.BlockTime()。After(activationTime)时才运行 UpdateAssetSupply,留意,ctx.BlockTime()是验证器集同意的区块链时间的值,不受时钟漂移的影响。

// SetAssetSupply 更新资产的当前有效供给
 }
     )
     「增加%s,资产供给%s,限制%s」,

https://github.com/Kava-Labs/kava/blob/869189054d68d6ec3e6446156ea0a91eb45af09c/x/bep3/keeper/asset.go#L46

 供应:= NewAssetSupply(asset.Denom,zeroCoin,zeroCoin,
 = k.GetParams(CTX):PARAMS

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读