{Solidity:log}
Solidity 0.8.18 版本发布公告
发布者:Solidity 团队 于 2023年2月1日
推出最新版本的 Solidity 编译器!我们很高兴地宣布 Solidity 编译器的最新版本 Solidity v0.8.18 正式发布。此最新版本包含一系列改进,并且还引入了对巴黎升级的支持!值得注意的新功能本版本中我们想要重点介绍的功能如下。禁用 CBOR 元数据一个新的命令行标志(--no-cbor-metadata)和标准 JSON 选项(settings.metadata.appendCBOR: false)可阻止编译器在字节码末尾附加 CBOR 元数据部分。到目前为止,它只...
阅读更多2022 年 Solidity 开发者调查现已启动!
发布者:Franziska Heintel 于 2022年12月7日
又到了这一年中的时候了。请奏响鼓声!🥁🥁🥁 我们正在启动 2022 年 Solidity 开发者调查!在 2022 年结束之前,我们希望与您联系,收集您的反馈和见解,以便我们进行改进!📝 参加调查!📝 您可以在此处找到 2021 年 Solidity 开发者调查的先前结果。在 2021 年,来自 73 个不同国家的 435 名开发人员参与了调查,其中 80% 的受访者每天或每周使用 Solidity。关于调查🪄 与往年一样,此...
阅读更多Solidity 核心团队更新
发布者:Solidity 团队 于 2022年12月5日
自从我们在博客上介绍 Solidity 核心团队成员以来,已经过去了两年多的时间,我们意识到现在是时候进行一些更新了:认识新的团队成员,了解哪些成员开始了新的冒险,并了解团队结构的最新变化!在深入了解之前,需要提醒您,Solidity 编程语言和编译器是开源社区项目。这篇文章深入探讨了领导开发工作的核心团队。但是,我们必须再次强调,...
阅读更多在条件提前终止时出现存储写入移除错误
发布者:Solidity 团队 于 2022年9月8日
2022 年 9 月 5 日,通过差异模糊测试发现了 Solidity 的 Yul 优化器中的一个错误。该错误是在版本 0.8.13 中引入的,Solidity 版本 0.8.17(于 2022 年 9 月 8 日发布)提供了修复程序。通过优化的 via-IR 代码生成更容易触发该错误,但在理论上,它也可能出现在优化的传统代码生成中。我们将该错误的严重性评定为“中/高”。谁应该关注如果您正在使用优化的传统代码生成,则只有在使用以下情况时才需要关注:...
阅读更多Solidity 0.8.17 版本发布公告
发布者:Solidity 团队 于 2022年9月8日
Solidity v0.8.17 修复了一个重要的错误,使乘法溢出检查更有效率,并添加了一个 LSP 功能来始终分析项目中的所有文件。重要错误在条件提前终止时出现存储写入移除错误该错误可能导致存储写入被错误地认为是冗余的,并由优化器移除。当存在可能使用 return() 或 stop() 操作码有条件地终止外部 EVM 调用的汇编函数时,问题就会显现。有关在条件提前终止时出现存储写入移除错误的安全警报帖子,请参阅...
阅读更多Solidity 0.8.16 版本发布公告
发布者:Solidity 团队 于 2022年8月8日
Solidity v0.8.16 修复了一个重要的错误。当最后一个组件是静态大小的 uint 或 bytes32 calldata 数组时,该错误可能导致在 ABI 重新编码期间动态元组组件的小部分被无意中清零。有关更多信息,请参阅 Calldata 元组 ABI 重新编码中的头部溢出错误。除此之外,还有一些次要的错误修复和改进,例如加法和减法的燃气效率更高的溢出检查。完整变更日志重要错误修复:代码生成:修复影响元组表示的 calldata 值的 ABI 编码的数据损坏:任何嵌套级别的结构;参数...
阅读更多Calldata 元组 ABI 重新编码中的头部溢出错误
发布者:Solidity 团队 于 2022年8月8日
2022 年 7 月 5 日,来自以太坊基金会的 Chance Hudson(@vimwitch)在 Solidity 代码生成器中发现了一个错误。编译器的最早受影响版本是 0.5.8,该版本引入了 calldata 数组和结构的 ABI 重新编码。Solidity 版本 0.8.16(于 2022 年 8 月 8 日发布)提供了修复程序。我们将该错误的严重性评定为“中”。哪些合约受到影响?当合约执行满足以下所有条件的元组的 ABI 编码时,该错误的影响就会显现:元组的最后一个组件...
阅读更多Solidity 0.8.15 版本发布公告
发布者:Solidity 团队 于 2022年6月15日
Solidity v0.8.15 修复了两个重要的错误,改进了内联启发式算法,并为错误和事件添加了一个 .selector 成员。重要错误第一个错误是优化器错误,如果此类操作的结果未从同一汇编块中读回,则可能导致内联汇编中的内存写入操作被移除。仅当使用默认的传统编译器管道(通过 IR 的新编译管道不受影响)时才会触发此错误,并且仅在从不的汇编块中发生...
阅读更多关于内联汇编的内存副作用的优化器错误
发布者:Solidity 团队 于 2022年6月15日
2022 年 6 月 5 日,Certora 开发团队的 John Toman 报告了一个优化器错误,该错误可能导致内联汇编块中的内存写入在某些条件下被错误地移除。该错误是在 Solidity 0.8.13 中引入的,其中包含一个新的 Yul 优化器步骤,旨在移除对内存和存储的未使用写入。我们将该错误的严重性评定为“中”。哪些合约受到影响?Yul 优化器将最外层 Yul 块中从未读取的所有内存写入视为未使用,并将其移除。这...
阅读更多复制脏字节数组到存储时的错误
发布者:Solidity 团队 于 2022年6月15日
2021 年 7 月 1 日,通过差异模糊测试发现了 Solidity 代码生成器中的一个错误。当从 calldata 或内存复制字节数组时,该错误会导致传统代码生成管道生成可能将脏值写入存储的代码。最初,假设存储中的脏值仅使用内联汇编才能观察到。但是,在不实际向其中写入值的情况下,使用空的 .push() 调整字节数组的大小可能会在没有任何内联汇编使用的情况下暴露脏字节。该错误...
阅读更多