引言
以太坊核心开发团队近日发布了go-ethereum (Geth) v1.15.7版本,这是一个以紧急修复和性能优化为主的更新。本次更新重点解决了存档节点数据库可能崩溃的严重问题,同时优化了交易池逻辑和内存管理,为开发者和节点运营者提供了更稳定的运行环境。
核心更新亮点
-
关键漏洞修复:存档节点数据安全
- 问题:在
--state.scheme=hash
模式下,日志索引器可能错误删除Trie节点,导致存档节点数据库损坏。 - 修复:通过补丁彻底解决此问题,确保数据完整性。
- 问题:在
-
交易池(TxPool)优化
- Pending Nonce追踪修复:此前本地交易池可能错误计算待处理交易的nonce值,现已修正。
- Reorg问题修复:针对
ethclient/simulated.Backend
中的交易池重组逻辑进行了优化,减少链重组时的异常。
-
日志索引器更智能
- 当数据库中存在缺失的收据时,日志索引器将自动禁用自身,避免进一步错误。
-
内存占用大幅降低
- Trie操作的内存分配效率显著提升,节点运行时的资源消耗进一步减少。
-
开发者工具增强
eth_createAccessList
支持状态覆盖:现在可以像eth_call
一样自定义状态参数。- 排除7702权限:访问列表生成时自动过滤特定权限地址,简化开发流程。
- abigen工具改进:正确转发访问列表至
eth_estimateGas
,提升合约开发体验。
升级建议
- 存档节点运营者:必须立即升级,避免数据库损坏风险。
- 开发者:建议更新以利用新的
eth_createAccessList
功能和交易池优化。 - 普通节点:内存优化和稳定性提升值得升级。
下载方式
- 预编译二进制文件:官方下载页
- Docker镜像:
ethereum/client-go
- Ubuntu:通过Launchpad PPA安装
- OSX:使用Homebrew Tap更新
结语
Geth v1.15.7虽是小版本更新,但解决了多个关键问题,尤其是对存档节点和交易池的修复堪称“及时雨”。以太坊生态的持续优化离不开开发团队的快速响应,建议所有用户尽快升级!