本文详细介绍了以太坊区块的结构及其重要性,包括区块中存储的数据、各字段的作用,以及与共识算法的关系,尤其是新旧算法的对比。文章还涉及了文化块的概念及其对以太坊网络的影响,适合希望深入了解以太坊区块体系的读者。
本文介绍了如何使用 OpenZeppelin 框架创建 ERC-20 代币。首先,设置开发环境,包括安装 Hardhat 和 OpenZeppelin 依赖。然后,编写 ERC-20 代币合约,并使用 Hardhat 部署到以太坊测试网络。最后,配置并部署到以太坊主网络。使用 OpenZeppelin 可以安全高效地创建 ERC-20 代币。
本文深入探讨了以太坊智能合约的变更机制,通过CREATE2与SELFDESTRUCT操作,可以实现在特定地址上更新合约逻辑。这种技术的理解对于区块链安全至关重要,同时也提出了针对可变合约的检测和防御措施。作者呼吁改变SELFDESTRUCT在以太坊中使用的现状,以增强智能合约的安全性。
本文介绍了以太坊中的 ERC777 token 标准。ERC777 试图改进 ERC20 的一些缺点,例如增加了 hooks 和 operators 的概念,并利用 ERC1820 注册合约来实现更灵活的功能。尽管 ERC777 在设计上有所创新,但由于其复杂性和潜在的安全隐患,未能获得广泛应用,最终被认为设计过度。
本文分析了去中心化应用(DApp)中链上链下状态同步的问题,重点介绍了由于交易生命周期中可能出现的掉单、回滚等情况导致的同步错误。论文提出了两种类型的链上链下同步Bug,并设计了ÐArcher测试框架来有效检测这些Bug。实验结果表明,许多DApp存在此类同步问题,而ÐArcher能有效帮助开发者发现并解决这些问题,从而避免因状态不一致给用户带来不便。
本文介绍了以太坊上的ERC-20代币标准。首先解释了代币的概念,然后深入探讨了ERC-20标准的目的和功能,包括transfer、balanceOf、totalSupply等关键函数,以及Transfer和Approval事件。最后,通过一个简单的ERC-20合约示例,展示了如何实现minting和burning功能,总结了ERC20代币标准。
本文探讨了区块链开发中gas优化的各种策略,通过代码示例,将优化方法归为架构级优化(合约设计模式)、代码级优化(开发者控制)和部署优化三个类别。内容涉及变量类型选择与布局、存储设计、函数设计、逻辑与循环优化、事件与错误处理、工具与测试、以及汇编层面的优化技巧,旨在降低gas消耗,提高合约执行效率和用户体验。
上海升级后验证者提款需要使用什么凭证?提款需要多长时间?有哪些细节需要注意?
本文介绍了OpenZeppelin Test Helpers,这是一个用于以太坊智能合约测试的断言库。它提供了诸如检查交易是否因正确的原因而revert、验证事件是否以正确的值发出、跟踪余额变化、处理大数以及模拟时间流逝等功能。文章还提供了安装和使用示例,以及进一步学习的链接。
Ethereum Core Devs Meeting 89 | 以太坊核心开发者会议第89期
本文档是 OpenZeppelin Test Helpers 的 API 参考,介绍了用于测试以太坊智能合约的各种辅助函数。主要包括:用于检查账户余额的 balance,用于处理大数的 BN,常用的常量 constants,以及用于模拟时间和快照的 time 和 snapshot 等辅助函数,expectEvent 和 expectRevert 用于测试事件和异常。
balance
BN
constants
time
snapshot
本文深入探讨了Solidity中payable关键字的奥秘。通常payable关键字用于允许函数接收以太币。但一个有趣的现象是,给函数添加payable关键字实际上可以减少Gas消耗。这是因为非payable函数需要额外的opcode来检查是否接收了以太币,而payable函数则不需要,从而减少了Gas消耗。作者建议,gas优化重要,但不要为了节省少量gas而牺牲函数的本意。
本文讨论了以太坊协议设计中的封装复杂性与系统复杂性之间的权衡。作者阐述了这两种复杂性的定义,并通过多个密码学和经济学的例子(如BLS签名与Schnorr签名、ZK-SNARKs与欺诈证明)探讨了如何在协议设计中做出选择。设计复杂性的减少并不总是单一的解决方案,而是在面对不同复杂性的权衡时需要灵活判断的问题。
文章探讨了以太坊如何加快核心协议的开发速度,以便更快速地实现技术改进并保持竞争力。论述了高效开发的重要性,提出了具体的改进建议,包括优化研发流程、增强社区协作和投资于L2及钱包的用户体验与安全性,以促进以太坊生态的进一步发展。
Base 提出了2025年的使命、愿景和战略,旨在构建一个全球链上经济,增加创新、创造力和自由。核心是通过五个关键支柱:建设者、应用、所有权、市场,将每个人、每个地方都带到链上。设定的目标包括达到2500万用户、2.5万开发者,提升blockspace容量,以及增加平台上的资产和交易量。