IoTeX Mainnet v1.2 — EthereumツールのためのWeb3.jsおよびノード/データベースのアップグレード

2021年第1四半期、IoTeXからの新しい研究、パートナーシップ、エコシステムのイニシアティブを含む多くの発表が見られました。しかし、それはIoTeXのコアチームが行っていることのほんの表面に過ぎません。裏では、私たちは「ネットワークの心臓部」であるiotex-core、全てのデリゲートとフルノードによって運営されるブロックチェーンプロトコルの強化のために、引き続き積極的に開発を続けています。
このブログでは、私たちの期待されているMainnet v1.2コードリリースの素晴らしい機能とツールを紹介します。このリリースは4月30日に正式にリリースされました。 IoTeXデリゲートは、ノードをアップグレードするために5月24日までの期間があります。その後、Mainnet v1.2が正式にアクティベートされます!
IoTeX上のEthereumツール用Web3.jsラッパー
IoTeXは、SolidityスマートコントラクトをサポートするEVM互換のブロックチェーンであり、Ethereum DappsをIoTeXに簡単にポートすることが可能です。 Ethereum開発者がIoTeXプラットフォームに製品を構築/拡張するためのさらなる簡便さを提供するため、私たちはBabel、EthereumノードAPIラッパーを導入します。これにより、IoTeXユーザー/ビルダーは、IoTeX上でEthereumツールの豊かなエコシステムを活用できるようになります。つまり、MetaMask、Remix、Truffle、Graphなどのツール/サービスが、Babelエンドポイントを指し示すだけでIoTeXで機能します!
Web3.jsは、HTTP、IPC、またはWebSocketを使用してローカルまたはリモートのEthereumノードと対話することを可能にするライブラリのコレクションです。IoTeXネットワーク上でEthereumツールを使用してDAppsを開発するためにWeb3.jsを設定する方法についての詳細なドキュメントにご期待ください。
ブロックチェーンデータベース管理のアップグレード
iotex-coreのフルノードデータベースは現在60GBに近づいており、ネットワーク上のデバイス + Dapp活動の急増に伴い成長が予想されています。IoTeXは、誰もがフルノード、またはブロックを生成するデリゲートノードを運営できるようにするために、ブロックチェーンコードをできるだけ効率的にすることを約束しています。Mainnet v1.2は、さまざまなブロックチェーンデータベース管理のアップグレードでオープン参加に対する私たちのコミットメントを延長します。
複数のデータベースファイル
今四半期から、IoTeXコアチームは当社のブロックチェーンデータベースを効率化するために多くの時間と労力を費やしています。Mainnet v1.2では、iotex-coreがデータベースを複数のデータベースファイルに分割し、各ファイルに1,000,000ブロックを含む構成になります。長期的には、この分割により、単一の巨大なデータベースファイルから生じるボトルネックを防ぎ、ノードが最新のデータベースファイルから選択的にダウンロードできることで、ネットワークとのより迅速で徐々な同期が可能になります。
データベースファイルサイズの削減
複数のデータベースファイルのストレージアーキテクチャのアップグレードに加え、ブロックストレージアプローチを改良し、圧縮効率を大幅に向上させたことから、データベースファイル自体を見直しました。これにより、ストレージスペースで約30%の改善が見込まれています。より迅速な同期 + ストレージの効率化 = 素晴らしいノード運営体験!
ブロックチェーンのクエリ時の速度向上
私たちはまた、データベース内でのトランザクションインデックス構造の改善に取り組んできました。その結果、特定のAPIクエリ、例えば特定のブロック範囲内のアドレスからすべてのトランザクションを引き出す場合などは、より迅速な応答が得られるようになります。

ノード管理とログのアップグレード
ソフトウェアで何か悪いことが起きたとき、ログはあなたを救うことができます。しかし、特に5秒ごとに即座に確定したブロックを持つIoTeXのような高速ネットワークのブロックチェーンノードのログを調査するのは、複雑で時間がかかる場合があります。問題を理解するために必要なデータを抽出するのは、ログのサイズが大きいために不可能であることさえあります。Mainnet v1.2はこれを修正します。
ノードログフォーマットはELKをサポートします
ノードオペレーターの生活をこれまで以上に簡単にするために、ログフォーマットの改善を行い、特にELKスタックとの互換性を持たせることを行います!これにより、ノードにインストールされた“Beats”エージェントを使用してノードからログを取得し、人気のElasticsearch + Kibanaサーバーに送信してこれらのログを分析したり、ノードの監視、トラブルシューティング、セキュリティ分析などのビジュアリゼーションを作成することができます。何より、ELKは完全にオープンソースで、ELKの展開/管理に大きな柔軟性を提供します。

“ゾンビ”ノードはもういらない
特にデリゲートの皆さんは、ネットワーク接続を失った後、ノードがブロックチェーンと同期できなくなったことに気づいたかもしれません。短時間の接続の喪失であっても、しっかりした監視システムが無いノードでは、ノードが「ゾンビ」状態に留まってしまう可能性があります。このような状態のノードは稼働していてもブロックチェーンと同期できず、接続が回復しても問題があります。それは特にデリゲートにとって危険で、ノードがブロックを生成しなくなります。
この潜在的な問題を回避するために、私たちはiotex-coreのコードを改善し、ノードがそのようなイベントを検出し、インターネット接続が回復された直後にp2pネットワークに再接続できるようにしました。これにより、ノードは直ちにブロックチェーンと再同期でき、ネットワーク障害のリスクを大幅に低減します。
次は何ですか?
私たちはMainnet v1.2を実現し、IoTeXネットワークを次のレベルに進化させることを楽しみにしています。私たちのMainnet v1.1(2020年8月)以降、IoTeXチームは今後のMainnet v1.2リリースに数ヶ月にわたって精力的に取り組んできました。Mainnet v1.2のほか、私たちのGitHub活動を追っている方も、ioPay、iotexscan、Pebble Tracker、SDKs、stakingリポジトリにおける絶え間ない重要なアップグレードを目にしたでしょう — IoTeXは真に全力で進行中です!
Mainnet v1.2のコードは、デリゲートがノードにインストールするために4月30日金曜日に公開されます。 ハードフォークコードリリースとして、デリゲートは5月24日までにノードをアップグレードする必要があります — 詳細な更新はIoTeX Developer Twitterをフォローしてください!
次のコードリリースでは、IoTeX MainnetはEVMの新バージョンv0.6.xをサポートします。これにより、開発者には多くの新機能が提供され、コードをより明確かつ安全にするために「キーワード」が必須となり、コードのセマンティクスと構文の改善、例外処理のためのtry/catch構造、payable(x)命令によるアドレスからアドレスへの明示的変換、動的ストレージ配列のためのpush()、そしてさらに多くの機能が提供されます。

IoTeXについて
2017年にオープンソースプラットフォームとして設立されたIoTeXは、信頼できる物のインターネットを構築しています。これは、すべての«物»、すなわち人間、機械、ビジネス、DAppsが相互に信頼とプライバシーを持ってやり取りできるオープンなエコシステムです。30人以上の優れた研究者やエンジニアからなるグローバルチームに支えられ、IoTeXはブロックチェーン、セキュアハードウェア、機密コンピューティングを統合して、次世代IoTデバイス、ネットワーク、経済を可能にします。IoTeXは「物理世界をブロックごとに接続する」ことによって未来の分散型経済を後押しします。