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

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

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

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

为什么

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

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

美联储威廉姆斯:加息的时机和速度将取决于通货膨胀和经济如何发展:美联储威廉姆斯:加息的时机和速度将取决于通货膨胀和经济如何发展。美联储在看到劳动力市场大幅改善和高通胀后,采取加息和取消宽松政策是有道理的。 (金十)[2022/1/15 8:50:19]

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

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

声音 | 阿里云研究中心战略总监:需思考如何让数据更充分 有效有序的流动起来:据腾讯科技报道,在人民网举办块链技术秋季论坛上,在谈及区块链与治理结构的关系时,阿里云研究中心战略总监杨军表示,从农业时代走来,如今更多人的精力是放在如何用数据提升大家的服务体验。在未来的数字经济时代,需要思考如何让数据更充分、更有效有序的流动起来,这又涉及到数据确权、数据隐私等方面。[2018/10/23]

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

声音 | 肖磊:区块链监管如何“去糟粕而留精华”存在挑战:据腾讯科技报道,肖磊发表专栏文章称,虚拟币市场有其特殊性,这可能会给监管带来一定的挑战和困扰。由于虚拟币这个概念,实际上来自于其底层技术“区块链”,如果站在监管层的角度,其中一个考虑是,去糟粕而留精华,把炒作虚拟币这个糟粕去掉,而留下“区块链”这个精华,这个可能会存在很大的挑战。[2018/8/23]

那就战斗吧

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

npminstalltruffle-contract-size。

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

运行truffleruncontract-size。

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

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

体重减轻

需要重点关注

把你的合约分开

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

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

登链社区

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

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

入驻指南:

/apply_guide/

本文网址:

/news/10196364.html

免责声明:

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

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

上一篇:

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

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

链链资讯

[0:31ms0-4:149ms