IoTeXメインネットv1.7が稼働開始!
本日は、IoTeXブロックチェーンの重要なリリース日であり、IoTeXプロトコルに大きな改善をもたらします。 iotex-core 1.7.0 は3月15日にノードオペレーター向けにリリースされ、ただ今アクティベートされました。[おおよそ2022年3月24日午後11時UTC頃]。このリリースでは、dApp開発と複雑なスマートコントラクトのデバッグを加速する多数のAPI改善が提供されます。ノードオペレーターは、Ethereum APIサービスのシンプルなアーキテクチャとより良いログ管理の恩恵を受けるでしょう。データベースとネットワークのパフォーマンスも向上しました。IoTeXは常に構築、洗練、そして反復作業を行い、dApp開発とオンボーディングを容易にしています。dAppsが構築しやすくなるだけでなく、ブロックチェーンはより信頼性が高く、パフォーマンスが強化されより安全になります。それでは、いくつかの主要な変更点を詳しく見てみましょう...
API
コントラクト実行のトレース
ブロックチェーンコントラクトの実行は、特に他のコントラクトへの呼び出しを伴う場合、デバッグが複雑になりがちです。EVM互換プラットフォームの標準的なブロックチェーンAPIは、通常、開発者にアクションが成功したか元に戻されたかを知らせるだけです。新しい TraceTransactionStructLogs API呼び出しは、Ethereumの trace_call と同等であり、単一のコントラクト呼び出しの実行中に詳細な情報を収集し、アクション実行中に何が起こったのかを開発者に有用な洞察を提供します。このAPIは、APIゲートウェイサービスが有効になっている任意のIoTeXノードで利用可能です。
コントラクトストレージデコーディングAPI
このAPIは、特定のメモリ位置におけるスマートコントラクトのストレージ内のデータをデコードすることを可能にします。これは、IoTeXのネイティブGRPc API呼び出し(ReadContractStorage)と、EthereumのJSON API呼び出し(eth_getStorageAt)として提供されます。
getActions API結果におけるガス料金の値
特定のアクションに実際に費やされたガス料金の値は、アクションの詳細を照会しているときの応答オブジェクトに欠けていました。この値は、取引の詳細を返す任意のネイティブまたはEthereum API呼び出しによって提供されるようになりました。
トランザクション領収書とEVMログにおけるインデックス値
1.7.0のアクティベーション後、トランザクション領収書を照会する際に、 transactionIndex の値と、EVMログ配列内の各ログエントリの logIndex 値が提供されるようになりました。 transactionIndex フィールドは、ブロック内のトランザクションの位置を示し、トランザクションの順序が重要な場合に便利です。 logIndex は、コントラクト実行のためのEVMログの正しいシーケンスを提供します。
ノード操作
ネイティブEthereum JSON API
ブロックチェーンのリリース1.2.0は、IoTeX開発者にとって大きなマイルストーンを示しました。IoTeXノードによるEthereumサイン付きトランザクションのネイティブサポートと、Ethereum JSON APIサービス("Babel")のリリースにより、IoTeXとEthereumの互換性が完全となりました。これにより、EthereumのdAppをIoTeXに移植することが可能になり、コントラクトやクライアントコードの変更は必要ありません。しかし、Ethereum APIは、別途デプロイされ、実際のIoTeXノードに「ポイント」する必要がある外部サービスとして実装されていました。iotex-core 1.7.0では、Ethereum APIサーバーがネイティブに統合され、IoTeXノードによって直接公開されるようになりました。外部サービスを実行、構成、管理する必要はありません。IoTeXノードの Gateway 機能を有効にするだけで、IoTeXのネイティブAPIとEthereum APIの両方を使えるようになります。
ログローテーション
ノードのDockerイメージにログローテーションがインストールされ、ノードのログファイルをより効率的に管理・保存できるようになりました。単一の大きなログファイルの代わりに、ノードは複数の小さなファイルを作成します。古すぎるファイルは削除されます。ログローテーションの設定は、Dockerイメージ内にあります。デフォルト設定では、毎日新しいログファイルが作成され、ログファイルは30日後に削除されます。
パフォーマンス
メインネットとテストネットのp2pネットワークの分離
この変更により、IoTeXのテストネットとメインネットは、ChainIDの値に基づいてp2pネットワークレベルで論理的に分離されました。このChainIDは現在すべてのp2pメッセージに含まれています。これにより、特定のケースにおいてメインネットとテストネット間のネットワークトラフィック干渉が減少し、特定の種類の攻撃を緩和します。
その他
ブロックチェーンノード実行トレース
リリース1.6.0では、ノードの重要な実行パスにおける実行時ログを収集するトレースコードを導入しました。このトレースコードは有効化され、データが集約・分析されるバックエンドに送信されるように設定されました。これは、IoTeXのdev-coreチームがチェーンの実行を監視し、異常な動作やエラーが検出された際に迅速に警告を受け取るための貴重なツールです。誰でも、https://tracing.iotex.me を訪れることでデータを確認できます。
もっと詳しく
1.7.0では、多数のマイナーなバグ修正や改善が実施されています。詳細については、リリースページをGitHubでチェックしてください。更に参加していただけると嬉しいです。Discordチャンネルにぜひ参加してください。