本文介绍了以太坊智能合约中应用程序二进制接口(ABI)编码的原理和方法。ABI是定义如何与智能合约交互的规范,文章详细讲解了函数签名、静态类型和动态类型的编码方式,以及abi.encode, abi.encodeWithSignature等方法的使用,帮助读者理解智能合约与外部世界进行数据交换, 需要将函数签名和参数转换成EVM可以识别的格式。
本文详细介绍了在Solidity智能合约中常见的安全漏洞,包括重入攻击、计算错误、预言机失败/操控、弱访问控制和前置运行攻击。同时提供了一些解决方案和预防措施,帮助开发者提升智能合约的安全性。
本文介绍了如何在PolkaVM上使用Hardhat进行智能合约的开发和测试。文章详细说明了如何创建本地环境、设置本地节点、准备编译器(RESOLC)、配置Hardhat,以及如何编译和在本地PolkaVM节点上进行测试。文章提供了详尽的步骤和代码示例,指导读者完成整个流程。
本文探讨了在以太坊区块链上编写高效、节省Gas(gas)费用的智能合约的技巧,主要介绍了如何通过使用汇编代码来优化gas使用,包括在哈希和数学运算中使用汇编实现,以及相关的代码示例和gas使用对比。
本文介绍了如何使用Hardhat框架更改已在主网络和测试网络上部署的智能合约的字节码。作者提供了实际应用的示例代码,包括如何配置Hardhat和调用区块链函数来实现字节码更改。这对于测试和修改合约逻辑非常有用。
本文探讨了学习区块链开发的挑战,强调学习Solidity的重要性,无论是对于希望在非EVM区块链上开发的Rust程序员还是初学者。文章详细讨论了区块链与传统编程框架的不同点,并建议先熟悉区块链环境,再深化对Rust的学习,避免同时学习两种新概念。总结了学习路径和资源的选择,强调了方法论的重要性。
使用Create2工厂(0x0000000000ffe8b47b3e2130213b802212439497)创建合约并在etherscan验证
本文深入探讨了以太坊虚拟机(EVM)的架构、工作原理、指令集、执行过程、安全性和性能优化。EVM作为以太坊的核心组件,负责执行智能合约和处理交易。文章详细介绍了EVM的内存结构、存储布局、关键操作码,以及Solidity代码如何转换为EVM字节码并在以太坊上执行的过程,此外,还讨论了gas优化策略和智能合约安全性问题。
本文介绍了以太坊对象格式(EOF)及其对EVM的影响。EOF通过EIPs引入了新的验证和操作码,旨在构建更友好的EVM。EOF的特性包括改进的代码结构、静态分析、更大的堆栈空间、代码验证、JUMPDEST分析、新的合约创建方式和改进的CALL指令,从而提高了开发者的体验和合约性能。
本文探讨了区块链开发中gas优化的各种策略,通过代码示例,将优化方法归为架构级优化(合约设计模式)、代码级优化(开发者控制)和部署优化三个类别。内容涉及变量类型选择与布局、存储设计、函数设计、逻辑与循环优化、事件与错误处理、工具与测试、以及汇编层面的优化技巧,旨在降低gas消耗,提高合约执行效率和用户体验。
Solidity 开发基础: 使用Remix、数据类型(整型、地址、合约、数组、结构体、映射)介绍;函数修改器、事件、错误处理、库的使用。
本文讨论了在Solidity智能合约中优化Gas消耗的方法,尤其是如何使用uint256代替布尔值,以减少不必要的SLOAD操作,进而节省Gas成本。文章通过示例展示了优化前后的Gas消耗差异,并提及相关工具与资源以帮助读者进一步了解气体优化策略。
Solang 是一个为 Solana 设计的 Solidity 编译器,旨在帮助以太坊开发者更容易地迁移到 Solana 平台。它允许使用 Solidity 语言开发智能合约,从而降低学习曲线,减少开发时间。文章详细介绍了编译器的工作原理、Solang 的优势、对 Solana 程序的影响以及如何入手使用 Solang。
本文介绍了以太坊智能合约的基本概念、工作原理及部署方法,详细说明了如何使用 Remix IDE 编写、编译和部署智能合约,并提供了一个简单的示例代码。
Solidity 中一些实践中经常遇到的问题