如何缩减合约以规避合约大小限制

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

本文永久链接:learnblockchain.cn/article…

为什么合约有一个大小限制?

为什么

在2016年11月22日,SpuriousDragon硬分叉引入了EIP-170,增加了智能合约的大小限制为24.576kb。对于作为Solidity开发者的你来说,这意味着当你向你的合约添加越来越多的功能时,在某些时候你会达到限制,当部署时你会看到错误:

Warning:Contractcodesizeexceeds24576bytes(alimitintroducedinSpuriousDragon).Thiscontractmaynotbedeployableonmainnet.Considerenablingtheoptimizer(withalow"runs"value!),turningoffrevertstrings,orusinglibraries.

人民日报整版阐释如何加快数字化发展建设数字中国:加强区块链等关键数字技术研究:金色财经报道,《人民日报》2021年10月29日 09 版整版阐释如何加快数字化发展,建设数字中国,其中提到坚持创新驱动,全面推动区块链等数字技术融入政务服务全流程。夯实技术创新基础,加强区块链等关键数字技术研究,夯实技术创新升级基础。[2021/10/29 6:18:58]

警告:合约代码大小超过24576字节,这个合约可能无法在主网上部署。考虑启用优化器,关闭revert字符串,或使用库。

引入这一限制是为了防止拒绝服务攻击。任何对合约的调用从Gas上来说都是相对便宜的。然而,由于调用的合约代码的大小的原因,合约调用对以太坊节点的影响并不是成比例地增加。每当你出现这样的情况,攻击者只需要很少的资源就能给别人造成大量的工作,这会增加DOS攻击的可能性。

现场丨Cdot创始人刘毅:公链发展面临的核心问题是如何突破性能瓶颈:金色财经现场报道,10月11日,由金色财经、Candaq和哼哈互动联合发起的金色沙龙第55期“Polkadot-波卡万物生长与跨界破圈对话”在北京正式举行。在本次沙龙上,Cdot创始人刘毅指出,公链发展面临的核心问题,是如何突破性能瓶颈,同时保持可组合性,不过度牺牲去中心化。目前解决方案有跨链、Layer2、超级Layer1和分片。Polkadot也是分片,但它是处在多链和分片之间的。分片最难的是跨片智能合约调度问题,Polkadot也面临这个问题。此外,他表示,Polkadot的成功非常依赖于共享安全,共享安全成不成立确定了Polkadot整个设计成不成立。[2020/10/11]

最初,这不是一个问题,因为一个合约大小限制是区块块Gas限制。很明显,一个合约需要被部署在一个交易中,这个交易持有合约的所有字节码。如果你把大合约的部署交易纳入一个区块,你可以用完所有的Gas。但这种情况下的问题是,区块Gas限制随时间变化,理论上是无限制的。在EIP-170的时候,区块Gas的限制只有470万。现在,区块Gas限制是1500万。

币情观察室 | 我是如何从650赚到100个比特币的?:4月8日 19:00,金色盘面邀请实盘大V 币圈栋哥做客金色财经《币情观察室》直播间,将分享《我是如何从650赚到100个比特币的?》,敬请关注,扫描下图二维码即可观看直播![2020/4/8]

那就战斗吧

不幸的是,没有简单的方法来获得你的合约的字节码大小,如果你使用Truffle,一个很好的工具可以帮助你,那就是truffle-contract-size插件。

npminstalltruffle-contract-size。

在_truffle-config.js_中添加该插件:插件。。

运行truffleruncontract-size。

这将帮助你弄清楚怎么的变化及如何影响总的合约打下规模。

在下文中,我们将根据其潜在的影响来研究一些方法。从缩减角度来考虑。对于一个人来说,要达到他们的目标体重,最好的策略是首先关注影响大的方法。在大多数情况下,仅仅固定你的饮食就能达到目标,但有时你需要更多一点。如可能会增加一些运动或甚至补充剂。

体重减轻

需要重点关注

把你的合约分开

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10196364.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

巨鲸的资金涌向哪里,哪里就是热点!

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

银河链

莱特币价格关于WBF上线GGC的公告

尊敬的用户: WBF将在开放区上线GGC/USDT交易对,具体上线时间如下:充值时间:2021/7/2810:00交易时间:2021/7/2910:00提币时间:2021/7/3010:00 项目介绍: GlobalGameChain.

[0:15ms0-2:148ms