交易被打包不等于执行成功,revert 之后世界状态一点没变。2017 年的 EIP-658 把收据里已经作废的中间状态根字段改造成成功或失败状态码,让任何客户端不用重放交易就能判定结果。本文讲这次字段再生的动机、Byzantium 激活块与今天读收据的注意事项。
汇总与「智能合约」相关的文章,帮助你系统了解该主题。
交易被打包不等于执行成功,revert 之后世界状态一点没变。2017 年的 EIP-658 把收据里已经作废的中间状态根字段改造成成功或失败状态码,让任何客户端不用重放交易就能判定结果。本文讲这次字段再生的动机、Byzantium 激活块与今天读收据的注意事项。
以太坊状态越长越大,SLOAD 这类依赖状态体积的操作码越来越便宜得不对劲。2019 年的 EIP-1884 把 SLOAD 从二百提到八百 Gas,BALANCE 与 EXTCODEHASH 上调到七百,同时引入五日价的 SELFBALANCE。本文用提案里的同步测速图讲清状态读操作为什么要按账本大小重新定价。
ERC-165 让合约自报支持哪些接口,但普通钱包地址不是合约,没法应答。ERC-1820 用无人持钥的账户部署一张全局注册表,任何地址可为自己登记接口实现者合约。本文讲这张地址全链一致的注册表如何运作、无人持有的部署账户与 ERC777 回调依赖,以及它踩过的坑。
EVM 的跳转长期只有按栈上绝对地址跳的 JUMP,编译器为此付出跳表与校验成本。EIP-4200 为 EOF 格式设计 RJUMP、RJUMPI、RJUMPV 三条相对跳转,偏移量编成指令自带的有符号立即数。本文讲这三条指令的编码、对旧字节码的无效化处理与它随 EOF 一起停滞的现状。
Yul 是 Solidity 家族的低级中间语言:功能式语法贴近栈机,既是内联汇编的书写格式,也是基于 IR 的新代码生成路径的落地目标。本文讲它和 Solidity、十六进制字节码的三层关系,为什么中间表示让优化与跨方言复用成为可能,以及内联汇编块里哪些护栏依然存在。
Arbitrum Stylus 在 Nitro 栈上加了一台与 EVM 并列的 WASM 虚拟机。本文按官方文档拆解合约如何共享同一棵状态树、部署后为何必须激活、内存按页计费与栈上限、cargo stylus 的可复现验证,以及计算密集型任务 Gas 更低的真实边界。
区块浏览器的合约页允许直接调用函数:Read 查询不花钱,Write 会让你连钱包并广播一笔真实交易。本文按官方文档讲清读写两条通道的差别、代理合约入口怎么选、以及点发送之前必须核对的四件事。
EIP-161 之前有一小批合约留下了 nonce 为零、代码为零但存储非空的地址,各客户端对能否往这种地址部署一度各有实现。EIP-7610 把口径统一到最保守一边:任何创建遇到非零 nonce、非零代码或非空存储即整体回滚。本文复盘三不像账户的成因、四类创建路径的统一规则,以及为什么选择回滚而不是重置。
EIP-214 的 STATICCALL 让合约在禁止一切状态写操作的环境里被调用,是模拟执行与视图查询的协议层原语。本文拆解静态标志的传播、被拦下的操作清单、与 eth_call 的关系,以及它拦不住信息泄露这一常见误会。
合约浏览器页上的 Contract Creator 和创建交易是什么,怎么顺创建交易看部署者与构造函数,代理合约与工厂部署的差异,以及部署者不等于当前管理员的边界