专栏首页丑胖侠solidity智能合约字节数最大值及缩减字节数

solidity智能合约字节数最大值及缩减字节数

智能合约最大字节数

在Solidity中,EIP 170将contract的最大大小限制为24 KB 。因此,如果智能合约内容过多,会导致无法进行发布操作。

减少压缩字节数方法

方法及变量命名

在一定程度上,方法或变量的长短会影响字节数的多少,因此可通过减少方法名或变量名来对内容进行压缩,但一般情况下效果很小,毕竟方法和变量名本身所占空间有限。

减少成员变量定义

如果某个值只使用一次或两次,那么就尽量减少再独立创建一个变量,变量越多,编译后所占字节数越多,此项能减少不少编译后的大小。

变量初始化

变量显式的初始化不仅会消耗gas,还会增加编译后的字节码,因此能使用默认值即使用默认值。

避免重复检查

有些值在业务前后以及做相应的检查了,就没有必要重复检查,减少此类代码,有效缩减编译后的字节数。

定义常量

比如像1e18这样的数值,多处使用,一定要定义常量,直接写会导致编译后的字节码变长,通过此方式可有效减少字节码数量。

减少public属性

默认public的属性编译之后会提供对应的调用方法,因此将不必要的public属性设置为内部的,则可减少对应的方法字节。

使用简短的原因字符串

require或revert等原因字符串描述简单化。

单线交换

Solidity可以在单个语句中交换变量值。从而避免定义临时的中间变量。

(result[i], result[j]) = (result[j], result[i])

以上的写法典型的应用场景就是冒泡排序,当需要交换数组中两个值的位置时,可通过上面的写法,减少定义中间变量。

使用事件带提存储

有些数据没必要存储在区块链上,浪费资源,可通过事件将信息记录在日志中。

使用库来保存一些字节码

公共库的函数不会成为智能合约的一部分,因此可以将一些计算操作写入公共库里面,然后通过授权进行相应的访问。

原文链接:https://www.choupangxia.com/2019/08/06/solidity智能合约字节数最大值及缩减字节数/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springboot全局异常处理中文乱码

    在使用springboot过程中,当使用全局异常处理,即通过@RestControllerAdvice注解来定义全局异常处理。在具体的处理方法中如果返回中文可能...

    用户1161110
  • 《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE API解析

    3.2.4 KieServices 该接口提供了很多方法,可以通过这些方法访问KIE关于构建和运行的相关对象,比如说可以获取KieContainer,利用Ki...

    用户1161110
  • 以太坊实战-再谈nonce使用陷阱

    在《以太坊实战之如何正确处理nonce》一文中我们介绍了nonce的基本概念和使用方法。也提到了它能够覆盖之前交易的特异功能。但是那只是nonce的冰山一角。今...

    用户1161110
  • Android Intent用法总结

    Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此I...

    233333
  • 由RGB到HSV的转换详解

    在图像处理中,最常见的就是RGB色彩模型。在RGB模型中,每种颜色出现在红、绿、蓝的原色光谱分量中。该模型基于笛卡尔坐标系。如图1所示,RGB原色值位于3个角...

    FPGA开源工作室
  • 外贸SaaS服务商“小满科技”获C轮融资 双拼域名给力十足

    深圳小满科技是一家外贸B2B+CRM解决方案服务商,旗下产品有锦云外贸管理专家、小满CRM等。近日, 外贸CRM管理系统提供商“小满科技”获得C轮融...

    躲在树上的域小名
  • OpenCV---HSV颜色空间介绍

    HSV是一种在人们生活中甚至更常用的颜色系统,在电视遥控器上、在画画的调色板中、在你用爱某艺视频调整亮度时都很常见,因为它更符合人们描述颜色的方式——是什么颜色...

    Vaccae
  • python "UnicodeEnco

    从外部导入字符串时, 需要将其转换成python易处理的'utf-8'格式 例如:

    用户2398817
  • 云从科技完成B+轮超10亿元融资,多个国家基金进入

    10 月 8 日,中国人工智能国家队云从科技宣布正式完成新一轮超 10 亿元人民币融资,除元禾原点、越秀金控,刘益谦等原有股东继续跟投外,本轮新增了多家中国国家...

    AI科技大本营
  • CNNIC第38次互联网统计报告透露了哪些信号?

      2016年上半年,随着互联网对经济、文化、社会等领域发展影响的进一步深入,互联网对于整体社会的影响进入到新的阶段。   8月3日,中国互联网络信息中心(CN...

    腾讯研究院

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动