Nutbox PNUT矿池合约更新提案
Nutbox (https"//nutbox.io)至2020-10-20上线起,持续吸引着社区的朋友进入。截止2020-11-27日第一次产量减半时,共收获1.1MSP代理量,取得了预期的效果。
背景
但是在这一个月中,用户常遇到交易失败的情况。导致用户体验不好的情况下还要损失TRX。而交易失败的主要原因均是由于tron上调用合约时执行超时导致的。该现象严重影响了用户的使用流畅度,且极大的影响了项目的扩散速度。
摘要
起初的PNUT矿池合约,在用户执行代理或者提现操作时,会循环遍历所有用户的数据,并更新每个用户的数据,这样的算法逻辑清晰,便于实现。但是随着Nutbox的扩大,代理的成员数日益增加,循环遍历所有用户对合约执行的时间造成了影响。当代理人数到达50人时,开始出现了调用合约超时的情况,当代理人数到达70人时,该情况变得更加频繁。可以预料到,如果代理人数继续增加,该算法将无法支撑,最终合约将走向死亡。
该问题出现后,Nutbox技术团队就极力与Tron的开发人员联系,寻找可行的解决方案。后与tron的开发人员沟通无果,团队便从合约算法寻找突破口。经过10来天的研究,并参考学习了市面上其他矿池的合约设计,开发出了适合PNUT矿池的全新合约。
在新合约中,我们引入了一个全局变量因子shareAcc,它代表了从创始区块开始,每代理的1个SP所获得的PNUT奖励。有了这个关键的因子,当用户在操作时,不必循环计算每个用户的数据,而是只更新该用户的数据,同时更新全局的shareAcc即可。这样,合约的调用时间从原来的随用户数量线性增长的情况变为现在几乎是常量的计算时间。
算法讨论出来后,便是合约的开发、测试、部署、调试工作,经过团队的努力,最终完成了项目的更新,并在Nutbox减半的时机进行了新版合约上线。参考上线新闻:https://blog.nutbox.io/@nutbox/new-smart-contract-updated-and-pnut-yield-is-halved-successfully
对社区的益处
自从新合约上线后,几乎没有再出现过合约调用超时的错误,用户的体验更加完美。
而后,Nutbox的增长才能得以持续,到目前,Nutbox已经吸纳了2.3M的代理量,且年化收益率经过一段时间的沉淀,也到达了67%。PNUT的价格更是翻了近十倍,到达了现在的0.0031美金。
可以说,如果没有这次合约的升级,Nutbox是绝对不可能走到今天的。
资金使用计划及项目节点
1.2020-11-10
PNUT合约调用出现超时开始频繁,团队开始联系Tron团队解决
2.2020-11-15
开始研究新算法
3.2020-11-21
开始编写合约
4.2020-11-23 - 2020-11-26
部署合约、调试、测试
5.2020-11-27
新版合约上线
团队及主要分工
申请的资金
本次共拟申请100万PNUT,用于支持本次更新中作出贡献的团队
tolakiswwf TYHLYAHDg53P9hMqtNSUJof2PExVe6PwLS 25
terry3t TNJQ12KujHQCJHMj2ZHLCesNtqBaHZMqTT 20
robertyan TG5ge9kEFfm9QGoy8Y9NWzUjDwrc4Dfz99 20
iguazi123 TR4EQbKskgGzLuHN7Avaa5DmwfvWkRbo6f 20
lemooljiang TDVALXcdMN5aj2f53U9xKNm2K685ZEa7H9 10
armonio TSh8ZoBwTwgSVSSLHUsZpvRoKNiVBt9RA7 5
Thank you for the improvement!
thanks your update I like you
[WhereIn Android] (http://www.wherein.io)
👍
[WhereIn Android] (http://www.wherein.io)