本文介绍了以太坊开发中常用的工具,包括Foundry、Hardhat、Tenderly和Blockscout,它们都依赖EVM traces来帮助开发者测试、调试和理解智能合约的行为。文章还详细介绍了如何使用Foundry搭建本地调试环境,部署合约,并模拟交易,以便开发者能够逐步检查EVM的处理过程。
本文是关于Solana区块链架构的介绍,重点介绍了Solana如何通过历史证明(PoH)、Tower BFT共识机制以及并行交易处理实现高性能。文章详细解释了PoH的工作原理,包括可验证延迟函数(VDF)的应用,以及Tower BFT如何利用PoH提高共识效率。此外,还提到了Solana通过Sealevel运行时实现并行交易处理的方法。
本文详细解释了以太坊calldata的工作原理,包括EVM如何通过函数选择器确定要调用的函数,如何计算4字节选择器,参数如何在32字节槽中编码,合约字节码的结构,以及calldata在EVM中的执行过程。文章通过实例展示了calldata的构成,包括函数选择器和ABI编码的参数,并解释了EVM如何解析和执行这些数据。
本文介绍了 Diamond (EIP-2535) 协议,它是一种将智能合约的功能模块化并使其可升级的方法。Diamond 允许将合约逻辑分割成多个 facet,这些 facet 可以独立升级,从而突破了 EVM 的 24KB 代码大小限制,并提供了一种组织和管理大型智能合约代码库的有效方式。文章还提供了示例代码和部署步骤,展示了如何使用 Diamond 协议来构建可升级的智能合约。
本文深入探讨了以太坊虚拟机(EVM)上常用的合约部署模式,包括用于逻辑升级的UUPS代理,用于标准化和可追踪部署的工厂模式,以及用于gas高效复制的最小代理(克隆)。文章通过代码示例详细解释了这些模式的原理和应用,并区分了简单合约、代理和克隆。
本文是关于智能合约部署生命周期的实用指南。首先介绍部署交易的本质(to = null,init code -> runtime code)以及合约地址的推导方式,然后深入探讨实际生产中常见的模式:CREATE2实现确定性地址,工厂模式和克隆(EIP-1167)实现低成本大规模部署,以及由delegatecall驱动的可升级代理(Transparent/UUPS)。
to = null
delegatecall
本文深入探讨了以太坊节点的不同类型(全节点、存档节点、轻节点)及其对数据访问和调试的影响。重点介绍了eth_call和debug_traceCall这两个重要的RPC方法,分析了它们的功能、使用场景、常见问题以及如何根据实际需求选择合适的工具。此外,还讨论了不同以太坊客户端的差异以及运行自有节点的考虑因素和成本。
eth_call
debug_traceCall
本文介绍了以太坊开发中的一些实用技巧,包括理解和使用事件(logs)、实时流式传输链上活动、无需事件捕获ETH转移以及使用Multicall进行批量调用,旨在帮助开发者更有效地进行以太坊开发和调试。
本文深入探讨了以太坊交易的未来发展方向,包括信标链(Beacon Chain)、EIP-4844 Blob交易、EIP-7702 Set Code交易和EIP-712 Typed Structured Data Signing。
本文详细介绍了以太坊中的交易类型和消息,包括交易(Legacy Transaction、EIP-2930 Access List Transaction和EIP-1559 Dynamic Fee Transaction)和消息(EIP-191 Signed Data)。