Conflux 网络(Hydra)2.0.2 版本升级公告

注意:此版本升级后,发送交易的最低 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_callcfx_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 带来了更好的明天。

3 Likes

(≧∇≦)/

安心做事 :+1:t2: