IoTeX 主网 v1.2 — 在 IoTeX 上使用以太坊工具的 Web3.js 及节点/数据库升级

在2021年第一季度,我们看到 IoTeX 发布了大量公告,包括新的研究成果、合作伙伴关系和生态系统计划。但这仅仅是 IoTeX 核心团队所做工作的冰山一角。在幕后,我们持续进行着密集的开发工作,以增强网络的“心脏”——iotex-core ,这是由所有代表节点和全节点运行的区块链协议,为整个 IoTeX 网络注入生命力。
在本篇博客中,我们将分享打包进备受期待的主网 v1.2 代码版本(已于4月30日正式发布)中的令人惊叹的功能与工具。IoTeX 代表节点将有时间到5月24日升级其节点,之后主网 v1.2 将正式激活!
在 IoTeX 上使用以太坊工具的 Web3.js 封装器
IoTeX 是一条兼容 EVM 的区块链,支持 Solidity 智能合约,使以太坊 DApp 能够轻松移植到 IoTeX。为了让以太坊开发者更轻松地在 IoTeX 平台上构建/扩展产品,我们推出了Babel——一个以太坊节点 API 封装器,它使 IoTeX 用户/开发者能够利用丰富的以太坊工具生态系统。这意味着像 MetaMask、Remix、Truffle、Graph 等工具/服务只需指向一个 Babel 端点即可与 IoTeX 协同工作!
Web3.js 是一系列库的集合,允许你通过 HTTP、IPC 或 WebSocket 与本地或远程以太坊节点进行交互。敬请期待我们关于如何配置 Web3.js 以便在 IoTeX 网络上使用以太坊工具开发 DApp 的详细文档。
区块链数据库管理升级
iotex-core 全节点数据库目前接近 60GB,并预计随着网络上设备和 DApp 活动的快速增长而继续增大。IoTeX 致力于让我们的区块链代码尽可能高效,以便任何人都能负担得起运行一个全节点,甚至是一个出块的代表节点,而无需在硬件和存储上花费高昂的资金。主网 v1.2 将通过一系列区块链数据库管理升级,进一步践行我们对开放参与的承诺。
多个数据库文件
从本季度开始,IoTeX 核心团队投入了大量时间和精力来优化我们的区块链数据库——在主网 v1.2 中,iotex-core 现在会将数据库拆分为多个数据库文件,每个文件包含 100 万个区块。从长远来看,这种拆分将防止因单一庞大数据库文件而产生的瓶颈,并为更快的增量同步打开了可能性,使节点可以有选择性地从最新的数据库文件下载数据。
减小的数据库文件大小
除了多数据库文件的存储架构升级外,我们还通过采用改进的区块存储方法和更好的压缩方式,对数据库文件本身进行了全面改造。这预计将带来约 30% 的存储空间节省。更快的同步 + 精简的存储 = 出色的节点运营体验!
查询区块链速度的提升
我们还一直在改进数据库中的交易索引方案。因此,诸如拉取某地址在特定区块范围内所有交易的特定 API 查询,现在将获得快得多的响应速度。

节点管理与日志升级
当软件出现问题时,日志可以拯救你。但探究区块链节点的日志(尤其是对于像 IoTeX 这样每5秒即时终结一个区块的快速网络)可能既复杂又耗时。仅仅因为日志体积庞大,提取你所需要的数据以理解问题甚至可能是不可能的。主网 v1.2 解决了这个问题。
节点日志格式将支持 ELK
我们将通过改进日志格式,特别是使其与 ELK 技术栈兼容,让节点运营者的生活比以往任何时候都更轻松!这将使你能够通过安装在节点上的“Beats”代理从节点中提取日志,并将其发送到广受欢迎的 Elasticsearch + Kibana 服务器进行分析,从而为节点监控、故障排查、安全分析等创建可视化视图。最棒的是,ELK 完全开源,为部署/管理 ELK 提供了极大的灵活性。

不再有“僵尸”节点
你们中的一些人,尤其是代表节点运营者,可能已经注意到,即使网络连接只是短暂中断,节点也会未能与区块链同步。对于没有健全监控系统的节点来说,这可能导致节点陷入“僵尸”状态——虽然在运行,但即使连接恢复也无法与区块链同步。这对代表节点来说尤其危险,因为该节点可能会停止出块。
为避免这一潜在问题,我们改进了 iotex-core 的代码,使节点现在能够检测到此类事件,并在互联网连接恢复后立即重新连接到 p2p 网络。这将使节点能够立即与区块链重新同步,大大降低网络中断带来的风险。
接下来是什么?
我们很高兴能将主网 v1.2 变为现实,并将 IoTeX 网络推向新的高度。自2020年8月主网 v1.1发布以来,IoTeX 团队数月来一直在勤奋努力,为即将到来的主网 v1.2 版本做准备。除了主网 v1.2 之外,关注我们 Github 动态的人也会看到我们在 ioPay、iotexscan、Pebble Tracker、SDK 以及 质押相关代码仓库中持续进行着有意义的升级——IoTeX 真正做到了全力以赴!
主网 v1.2 代码将于4月30日(周五)发布,供代表节点安装到其节点上。作为一次硬分叉代码发布,代表节点将有时间到5月24日升级其节点——关注 IoTeX 开发者 Twitter 获取更多更新!
在即将发布的代码版本中,IoTeX 主网将支持新版本 v0.6.x 的 EVM,这将为开发者带来众多新功能,包括使代码更明确/安全的强制性“关键字”、代码语义和语法的改进、用于异常处理的 try/catch 结构、使用 payable(x) 指令从 address 到 address payable 的显式转换、用于动态存储数组的 push(),以及更多功能。

关于 IoTeX
IoTeX 成立于2017年,是一个开源平台,正在构建可信物联网(Internet of Trusted Things)****,一个开放的生态系统,让所有“事物”——人类、机器、企业和 DApp——都能以信任和隐私的方式进行互动。IoTeX 拥有一支由30多位顶尖研究科学家和工程师组成的全球团队,将区块链、安全硬件和机密计算相结合,以赋能下一代物联网设备、网络和经济。IoTeX 将通过“逐块连接物理世界”来赋能未来的去中心化经济。