今天标志着 IoTeX 区块链的又一次重大发布,并带来了对 IoTeX 协议的显著改进。iotex-core 1.7.0 于 3 月 15 日发布给节点运营商,并刚刚激活。[大约在 2022 年 3 月 24 日晚上 11 点 UTC]。此次发布带来了许多 API 改进,将加速 dApp 开发和复杂智能合约的调试。节点运营商将受益于以太坊 API 服务的简化架构和更好的日志管理。数据库和网络性能也有所提升。IoTeX 始终在构建、完善和迭代工作,以促进更简单的 dApp 开发和入门。除了 dApp 现在更容易构建外,区块链的可靠性和安全性也得到了增强,性能得到了提升。让我们更仔细地看看一些主要变化...
API
跟踪合约执行
区块链合约执行可能很复杂,尤其是当它们涉及对其他合约的调用时。在 EVM 兼容平台中,标准区块链 API 通常只告诉开发者某个操作是否成功或被回滚。新的 TraceTransactionStructLogs
API 调用相当于以太坊的 trace_call
,在单个合约调用的执行过程中收集低级详细信息,为开发者提供有关操作执行期间发生的事情的有用见解。此 API 可在启用 API 网关服务的任何 IoTeX 节点上使用。
合约存储解码 API
此 API 允许解码特定内存位置的智能合约存储中的数据。它作为原生 IoTeX GRPc API 调用(ReadContractStorage)和以太坊 JSON API 调用(eth_getStorageAt)提供。
getActions API 结果中的燃气费用值
在查询操作详细信息时,响应对象中缺少特定操作实际花费的燃气费用值。现在,任何返回交易详细信息的原生或以太坊 API 调用都提供此值。
交易收据和 EVM 日志中的索引值
在 1.7.0 激活时,查询交易收据时,transactionIndex
值以及 EVM 日志数组中每个日志条目的 logIndex
值现在都提供。transactionIndex
字段提供交易在区块中的位置,当交易顺序很重要时非常有用。logIndex
提供合约执行的 EVM 日志的正确顺序。
节点操作
原生以太坊 JSON API
区块链版本 1.2.0 为 IoTeX 开发者标志着一个重要里程碑。通过 IoTeX 节点对以太坊签名交易的原生支持以及以太坊 JSON API 服务("Babel")的发布,IoTeX 与以太坊的兼容性得以实现。这允许任何以太坊 dApp 移植到 IoTeX,而无需对合约或客户端代码进行任何更改。然而,以太坊 API 被实现为一个外部服务,必须单独部署并“指向”实际的 IoTeX 节点才能正常工作。随着 iotex-core 1.7.0 的发布,以太坊 API 服务器现在已原生集成,并由 IoTeX 节点直接公开。无需运行、配置和管理外部服务。只需启用您的 IoTeX 节点的 Gateway 功能,即可获取 IoTeX 原生 API 和以太坊 API。
日志轮换
Logrotate 已安装到节点 Docker 镜像中,以更有效地管理和存储节点日志文件。节点现在创建多个较小的文件,而不是一个大的日志文件。那些过旧的文件会被删除。logrotate 配置 位于 Docker 镜像中。默认设置每天创建新的日志文件。日志文件在 30 天后被删除。
性能
主网和测试网的 p2p 网络分离
通过此更改,IoTeX 测试网和主网在 p2p 网络级别上根据现在包含在所有 p2p 消息中的 ChainID 值进行了逻辑分离。这减少了主网和测试网之间在某些特殊情况下的网络流量干扰,并缓解了某些类型的攻击。
其他
区块链节点执行跟踪
在 1.6.0 版本中,我们引入了跟踪代码,以收集节点关键执行路径上的运行时日志。此跟踪代码现在已启用并配置为将数据发送到后端,在那里进行聚合和分析。这是 IoTeX dev-core 团队监控链执行并在检测到异常行为或错误时及时发出警报的宝贵工具。任何人都可以通过访问 https://tracing.iotex.me 查看数据。
更多
在 1.7.0 中实施了许多其他小错误修复和改进。请查看 GitHub 上的 发布页面以获取更多信息。我们希望您能更多参与。请加入我们的 Discord 频道。