本文介绍了以太坊虚拟机(EVM)中事件(也称为日志)的工作原理,包括事件的定义、存储位置(交易回执日志而非合约存储)、以及如何通过eth_getLogs直接查询事件。文章详细解释了topics(索引字段,用于过滤)和data(非索引字段,存储原始字节)的结构,并通过ERC-20代币转账事件的示例,展示了如何手动解码日志以及如何在区块浏览器上理解事件信息。
eth_getLogs
topics
data
本文介绍了以太坊节点的不同类型(完整节点、归档节点和轻节点)以及主要的执行客户端(如Geth、Nethermind、Erigon和Besu)。讨论了它们的数据保留、同步方法和RPC实现如何影响调试、追踪和重放交易的能力,以及何时应该运行自己的节点。
EIP-4844 (proto-danksharding) 引入了blob交易,为Rollup在以太坊上提供临时的数据空间,显著降低存储成本。通过分离执行数据和blob数据,并在短期保留后丢弃blob,网络在不增加状态大小的情况下获得带宽的显著提升。 此次升级弥合了当前Rollup扩展和完整数据分片之间的差距,降低了费用,提高了吞吐量。
本文介绍了以太坊的访问列表交易(Access List Transaction),它是EIP-2930在柏林硬分叉中引入的。访问列表通过预先声明交易将访问的地址和存储槽来优化gas消耗并提高可预测性。文章还演示了如何使用eth_createAccessList RPC方法生成访问列表,以及如何在Go语言中构建和广播EIP-2930交易。
eth_createAccessList
本文介绍了以太坊开发中常用的工具,包括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