別の観点からブロックチェーンの統合を見始めました。あるイベントはアプリケーションに何が起きたかを伝えられますが、すべてのイベントが結果が最終であることまで伝えるわけではありません。
この区別は、ソフトウェアがオンチェーンの活動に反応するときに重要になります。
Dusk の Rusk ノードは、外部アプリケーションや連携がブロックチェーンのイベントに利用できる RUES(Rusk Universal Event System)を公開しています。取引に関しては、RUES には included、removed、executed といったイベントが含まれます。ですが、これらのイベントはライフサイクルの異なる段階を表しています。
たとえば executed は、取引が受理されたブロック内で実行されたことを意味しますが、アプリケーションはなお実行結果を検査する必要があります。さらに重要なのは、受理されたブロックはまだ取り消される可能性があることです。Dusk は、状態が finalized に変わったとき、そのブロックが最終化されると言っています。
そこで生まれる興味深い違いは次のとおりです。
イベントを観測することは、最終状態を確定することとは同じではありません。
そのため Dusk の統合ガイダンスでは、まず実行の成功を確認し、そのうえで該当するブロックが finalized になっていることを検証することを推奨しています。アーカイブノードは、歴史的に確定したデータが必要なアプリケーション向けに、finalizedEvents を含む最終化済みの過去インデックスを保持できます。
私にとって、それはブロックチェーン統合の考え方を変えるものでした。
課題は単にイベントを受け取ることではありません。
アプリケーションが、結果を安全に最終だと見なしてよいタイミングを把握することです。
@Dusk $DUSK #dusk
この区別は、ソフトウェアがオンチェーンの活動に反応するときに重要になります。
Dusk の Rusk ノードは、外部アプリケーションや連携がブロックチェーンのイベントに利用できる RUES(Rusk Universal Event System)を公開しています。取引に関しては、RUES には included、removed、executed といったイベントが含まれます。ですが、これらのイベントはライフサイクルの異なる段階を表しています。
たとえば executed は、取引が受理されたブロック内で実行されたことを意味しますが、アプリケーションはなお実行結果を検査する必要があります。さらに重要なのは、受理されたブロックはまだ取り消される可能性があることです。Dusk は、状態が finalized に変わったとき、そのブロックが最終化されると言っています。
そこで生まれる興味深い違いは次のとおりです。
イベントを観測することは、最終状態を確定することとは同じではありません。
そのため Dusk の統合ガイダンスでは、まず実行の成功を確認し、そのうえで該当するブロックが finalized になっていることを検証することを推奨しています。アーカイブノードは、歴史的に確定したデータが必要なアプリケーション向けに、finalizedEvents を含む最終化済みの過去インデックスを保持できます。
私にとって、それはブロックチェーン統合の考え方を変えるものでした。
課題は単にイベントを受け取ることではありません。
アプリケーションが、結果を安全に最終だと見なしてよいタイミングを把握することです。
@Dusk $DUSK #dusk