#dusk $DUSK @Dusk
私は Dusk の Fallback(フォールバック)メカニズムを見ていて、ある点が特に目につきました。フォークが起きたとき、反復(iteration)番号が実際にとても重要になるのです。
Dusk のコンセンサスは非同期なので、メッセージが遅れて到着したり、混雑の間に失われたりします。そのためネットワークの異なる部分が別々のブロックを見ていることがあり、同じラウンドで複数の候補が同時にクォーラム(十分数)を獲得することもあります。
基本ルールは、反復番号が低い方が優先されることです。たとえば、反復 1 のブロックが受理されたものの、その後で反復 0 のブロックがクォーラムを得た場合、低い反復番号のブロックがそれに置き換えられます。ノードは古いブロックがあった状態に戻り、チェーンを再編成します。
そのため、反復 0 は興味深い存在です。反復 0 は最初の試行で、その後に反復 1、2、そしてそれ以降が続きます。反復 -1 がないため、反復 0 のブロックは、より低い反復によって Fallback を通じて直接置き換えられることはありません。
ただ、それでも「完全な確定(complete finality)」だとは言えません。祖先が巻き戻されれば、反復 0 のブロックも影響を受け得ます。実際の確定は Rolling Finality(ローリング・ファイナリティ)によってもたらされます。
つまり私の見方では、Fallback は単なるフォークの後始末以上のものです。反復番号があることで、ネットワークは競合するブロック同士を決定的な方法で選別できます。そして反復 0 は、その優先順位の一番下に位置するのです。
私は Dusk の Fallback(フォールバック)メカニズムを見ていて、ある点が特に目につきました。フォークが起きたとき、反復(iteration)番号が実際にとても重要になるのです。
Dusk のコンセンサスは非同期なので、メッセージが遅れて到着したり、混雑の間に失われたりします。そのためネットワークの異なる部分が別々のブロックを見ていることがあり、同じラウンドで複数の候補が同時にクォーラム(十分数)を獲得することもあります。
基本ルールは、反復番号が低い方が優先されることです。たとえば、反復 1 のブロックが受理されたものの、その後で反復 0 のブロックがクォーラムを得た場合、低い反復番号のブロックがそれに置き換えられます。ノードは古いブロックがあった状態に戻り、チェーンを再編成します。
そのため、反復 0 は興味深い存在です。反復 0 は最初の試行で、その後に反復 1、2、そしてそれ以降が続きます。反復 -1 がないため、反復 0 のブロックは、より低い反復によって Fallback を通じて直接置き換えられることはありません。
ただ、それでも「完全な確定(complete finality)」だとは言えません。祖先が巻き戻されれば、反復 0 のブロックも影響を受け得ます。実際の確定は Rolling Finality(ローリング・ファイナリティ)によってもたらされます。
つまり私の見方では、Fallback は単なるフォークの後始末以上のものです。反復番号があることで、ネットワークは競合するブロック同士を決定的な方法で選別できます。そして反復 0 は、その優先順位の一番下に位置するのです。
