IoTeX Mainnet v1.7 がライブ!
本日はIoTeXブロックチェーンのもう一つの重要なリリースの日で、IoTeXプロトコルに大きな改善をもたらします。iotex-core 1.7.0は3月15日にノードオペレーター向けにリリースされ、現在アクティブ化されています。[おおよそ2022年3月24日午後11時UTC頃]。このリリースは多くのAPI改善をもたらし、dApp開発や複雑なスマートコントラクトのデバッグを加速させます。ノードオペレーターは、Ethereum APIサービスの簡素化されたアーキテクチャと、より良いログ管理の恩恵を享受します。データベースとネットワークのパフォーマンスも向上しています。IoTeXは常に構築、改良し、反復的に作業して、より簡単なdApp開発とオンボーディングを促進しています。dAppがより簡単に構築できるようになっただけでなく、ブロックチェーンはより信頼性が高く、安全で、パフォーマンスが向上しています。主要な変更のいくつかを詳しく見てみましょう…
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のテストネットとメインネットは、すべてのp2pメッセージに含まれるChainIDの値に基づいてp2pネットワークレベルで論理的に分離されました。これにより、特定のケースにおいてメインネットとテストネット間のネットワークトラフィック干渉が減少し、特定のタイプの攻撃が緩和されます。
その他
ブロックチェーンノード実行トレース
リリース1.6.0では、ノードの重要な実行パスに対して実行時間のログを収集するトレースコードを導入しました。このトレースコードは現在有効化され、データを集約および分析するためのバックエンドに送信されるように構成されています。これは、IoTeX開発コアチームにとって、チェーンの実行を監視し、奇妙な動作やエラーが検出された際に迅速に通知を受けるための貴重なツールです。誰でもhttps://tracing.iotex.meを訪れることでデータを確認できます。
さらに
1.7.0には、他にも多くの小さなバグ修正や改善が実装されています。詳細については、GitHubのリリースページをご覧ください。より参加していただけると嬉しいです。ぜひDiscordチャンネルに参加してください。