本文详细介绍了以太坊中的交易类型和消息,包括交易(Legacy Transaction、EIP-2930 Access List Transaction和EIP-1559 Dynamic Fee Transaction)和消息(EIP-191 Signed Data)。
本文是EVM内部原理系列文章的第三部分,主要讲解了区块链开发者应该如何利用EVM的debug工具来调试智能合约,包括如何使用Foundry、Hardhat、Tenderly等工具进行交易的追踪和调试,如何理解debug_traceCall,以及如何通过Foundry脚本来调试交易。通过学习EVM的trace,开发者可以更好地理解合约的执行过程,从而更高效地进行bug查找、gas优化和开发流程管理。
本文深入探讨了EVM兼容链上智能合约的Gas优化技术。首先介绍了Gas的基本概念和费用构成,然后详细讲解了预估和测量Gas消耗的各种方法,包括使用Foundry进行离线测试、预执行测量和后执行测量。最后,文章总结了常见的Gas优化模式和高级技巧,旨在帮助开发者编写更高效、更经济的智能合约,提升用户体验并降低网络拥堵。
本文介绍了以太坊虚拟机(EVM)的基础知识,包括gas的度量和作用、智能合约的工作原理、EVM的组成和如何维护全局状态,以及EVM架构的关键组件:堆栈(Stack)、内存(Memory)、存储(Storage)和调用数据(Calldata)。
本文是EVM内部原理系列文章的第二部分,深入探讨了Solidity中的payable、fallback和receive函数,详细解释了calldata如何到达EVM,以及EVM如何解析calldata并分发函数调用。此外,文章还介绍了CALL、DELEGATECALL、STATICCALL和CALLCODE等底层操作码的区别,以及内部调用和外部调用的差异,并深入探讨了ABI编码和Revert机制。
本文是 “每个区块链开发者都应该了解的 EVM 内部原理” 系列的第一篇文章。本文深入探讨了以太坊虚拟机(EVM)的架构和执行环境,包括 Gas 的概念、智能合约的本质,以及对 EVM 的堆栈、内存、存储和 Calldata 进行了详细解释,还提供了从源代码到字节码的示例。