注意:此版本升级后,发送交易的最低 gasPrice 调整为 1GDrip,低于 1GDrip 的交易将会发送失败。另外,如果发送账户余额不足以支付交易金额及手续费,交易发送也会失败。
本次升级主要解决的问题:
改进
RPC 改进
- 提升
eth_getLogs
的性能。 - 新增一个 RPC
eth_getAccountPendingTransactions
来通过账户地址获取 pending 的交易,并返回首个 pending 交易的 pending 原因。 - 支持 eth API 的 WebSockets.
- 支持
eth_call
的区块哈希参数(EIP1898) - 如果调用 cfx_call、cfx_estimateGasAndCollateral、eth_call 和 eth_estimate 时,设置了from参数,则会采用 from 的真实余额进行 estimate 或 call,如果余额不够会返回 NotEnoughCash 错误。如果 from 参数没有设置,则会默认使用一个余额非常大的随机 from 进行 estimate 操作。此改进旨在减少 pending 交易的问题,且与以太坊行为保持一致。
- 如果
cfx_call
、cfx_estimateGasAndCollateral
报错,并且error.data
是字符串,它会直接返回,不再进行十六进制编码。 - 如果交易发送方的余额不足,
cfx_sendRawTransaction
会拒绝交易。- 余额不足的失败消息显示如下:Transaction {?} is discarded due to out of balance, needs {?} but account balance is {?}.
交易池改进
- 设置交易打包的默认最小 gas price 为 1 GDrip。
存储改进
- 在 XFS 文件系统中,优化快照的写时复制合并性能。
漏洞修复
- 修复在顶层 checkpoint 被 revert 的交易 trace 的
validity
的值。 - 修复失败交易的 phantom trace 长度不匹配问题。
- 修复来自
cfx_estimateGasAndCollateral
的不准确的估算。 - 修复节点进入
NormalPhase
过早并卡在快照状态下载的问题。 - PoS 节点在进入
NormalPhase
之前不会参与选举,以防止被force_retired
.
注意:RPC 在 v2.0.3 之后的调整通知
- 从 v2.0.3 开始,cfx_getLogs 和 eth_getLogs 将不再支持 limit 和 offset 参数。它们效率不高,可以通过设置 block/epoch 范围来代替。
- 从 v2.0.3 开始,cfx_clientVersion 将会像 eSpace 中的 web3_clientVersion 一样包含更多信息。
- 从 v2.0.3 开始, cfx_getLogs 的参数 fromEpoch 的默认值改为 “latest_state”.
- 从 v2.0.3 开始 eth_getLogs 参数fromBlock 的默认值改为 “latest”.
下载
新版节点程序可在 https://github.com/Conflux-Chain/conflux-rust/releases/tag/v2.0.2 内下载。
我是节点运营者/矿工,我需要做什么?
- 如果已启动了节点,需先暂停这个节点的运行,然后将原节点程序中的 run 目录下的名为"conflux"的可执行文件,替换为 Conflux v2.0.2 节点程序的 Conflux 的可执行文件。随后可重新启动。
- 如新启动节点,可以下载最新版的 Conflux v2.0.2,运行即可。
如不升级节点、不参与本次升级,会出现什么情况?
本次升级旨在提高节点稳定性,不更新不影响挖矿。
我是应用开发者,我需要做什么?
- 需要将发送交易的 gas price 提高到 1 GDrip 以上,否则交易发送将会失败。
感谢您的支持!
衷心感谢 Conflux 社区以及所有 Conflux 生态的开发者们,感谢你们的努力、思考和贡献,为 Conflux 带来了更好的明天。