IoTeXプロトコルのバージョン1.7のリリースから2か月後、開発チームは新しいバージョン1.8をリリースしました。このリリースは現在のプロトコルの「ハードフォーク」を表しています。ブロック17,662,681(おおよそ、2022年5月30日UTC午後11時)でアクティブ化され、すべてのブロックプロデューサーとデリゲートは、最新の公式リリースv1.8.0にノードソフトウェアをアップグレードする必要があります。フルノードのインストール手順はこちらで確認できます。
このリリースの新機能についての詳細な内訳は以下の通りです。
MetamaskからのIoTeXステーキング
最も重要な機能から始めましょう:すべてのEthereumウォレットおよびソフトウェアライブラリからIoTeXステーキングにアクセスできる機能です。これは、EthereumクライアントにIoTeXのカスタムステーキングトランザクションを公開することでEthereum互換性を完成させるために、コア開発者による数ヶ月の開発と正確なテストを必要とした重要な目標です。
しかし、これは一体何を意味するのでしょうか?これを理解するためには、IoTeXのステーキングアクション(ステークの作成、委任ノードの選択、預金の移転など)がブロックチェーンのネイティブプロトコルの一部であるカスタムトランザクションとして実装されていることを知ることが重要です。これは、一部の人が考えるようなスマートコントラクトではありません。この選択により、IoTeXのステーキングは非常にスケーラブルになり、数十万のステーキング預金を簡単に処理できます。また、非常にコスト効率が良いです。各ステーキングアクションは高価なスマートコントラクト呼び出しの実行を伴わず、単にネイティブトランザクションを送信するだけで、これは単純なIOTXトークントランザクションと同じく0.01 IOTXのコストがかかります。一方、これらの特定の「ステーキングトランザクション」はEthereumプロトコルの一部ではありません。これらはEthereumクライアントには知られていません。このため、これまでのところ、MetamaskやTrust WalletのようなEthereumウォレットを使用してIoTeXのステーキングと相互作用することはできず、ioPay、IoTeXブロックチェーンのネイティブウォレットを通じてのみ可能でした。
では、どのように機能するのでしょうか?実装の詳細は簡単ではありませんが、高レベルでは解決策はシンプルです。このアップデートにより、IoTeXブロックチェーンには、プロトコルによってハードコーディングされ制御される特別な「受取アドレス」(0x04C22AfaE6a03438b8FED74cb1Cf441168DF3F12
)が追加されました。これにより、任意のEthereumクライアントが、ステーキングアクションデータがトランザクションのペイロードにエンコードされた通常のIOTX転送トランザクションを介してステーキングトランザクションを送信できるようになります。内部的に、IoTeXプロトコルはこの特別なアドレスへのすべてのトランザクションを傍受し、ペイロードからステーキングアクションをデコードし、アクションを実行するためにネイティブステーキングトランザクションに変換します。
この新機能に関するすべての詳細は、IIP-12改善提案で確認できます。
バグ修正とその他
リリースv1.8.0には、いくつかの追加修正が含まれています:
- フルノードがv1.7.1にアップグレード後にMainnetに参加できないという問題を解決するために、p2pネットワーク接続の堅牢性を向上させました。
- サービスの起動とシャットダウンをより良く管理するためにchainserviceビルダーを導入しました。
- APIモジュールのための複数のコードリファクタリングと改善を行いました。
詳細な情報は、公式リポジトリのGitHubで確認できます:https://github.com/iotexproject/iotex-core