北京大学シャオジェン教師「ブロックチェーン技術とアプリケーション」オープンクラスのノート19 - ETHデータ構造第3章(トランザクションレシートの木と木)

北京大学シャオジェン教師「ブロックチェーン技術とアプリケーション」オープンクラスのノート

パート3--スクエアイーサネットデータ構造およびトランザクションレシートの木の木、ショーのビデオに対応します。https:?//Www.bilibili.com/video/av37065233のp = 17
のノートの全範囲を参照します。https://blog.nowcoder。ネット/ N / 30cbdb37108b4d93b3a5a93b8226ae31

そのことについては、二つの別々の、あまりにも物理的に別のコンテンツ意図トランザクションレシートの木と木の書き込みを1つに統合しました。

取引領収書の木と木

あなたがブロックを公開するたびに、ブロック見本市はマークル木、すなわちトランザクションツリーを形成します。加えて、イーサネット・スクエアは、トランザクション関連情報を記録し、各トランザクションの実行後に領収書を形成する、レシート・ツリーを加えました。言い換えれば、トランザクションツリーや領収書ツリーノードは一から一です。
インテリジェントイーサネットスクエア契約は、高速クエリの実行結果のために領収書の木を増やすことで、より複雑な実行するので。
取引領収書の木と木はM(マークル)PTであり、BTCは、通常のMT(マークル木)です。(おそらく唯一のコードの再利用のための3本の木が、これは良いデザインですので)
MPTは、ツリーに沿って通過するための鍵を見つけるために、サポート目指しているメリットがあります。状態ツリーの場合は、キーアカウントのアドレスのために見て、ブロック取引におけるキー数のトランザクションツリーとツリー、一見の領収書がでました。

取引領収書の木と木は、整理現在のトランザクションをブロック状態ツリーとすべてのアカウントを述べるだろうかかわらず、これらは現在のトランザクションブロックに関連付けられたアカウントかどうか、に含まれています。
複数のブロックは、ブロック独立に応じてツリーノードのステータス、及び取引レシート木及び木を共有します。

取引領収書の木と木の用途:

  1. 光を提供するために証明ノードをマークル。
  2. (例:取引の最後の10日間検索;など、過去10日間のイベントをクラウドファンディング)より複雑な操作を探します

ブルームフィルタ(ブルームフィルタ)

セット内の支持要素場合に、より効率的に見つける
-光ノードが使用できない横断要素、複雑さO(N)である:最も愚かの
大規模なコレクションに、小型計算を「概要」:方法

例:以下は、完全な128ビットの初期ベクトルを一つにそれをマップする要素の意味、B、Cは、それはハッシュ関数H(によって計算される所与のデータセット、)、0位置は、位置が1に設定されています。すべての要素は、ベクトルは、元のコレクションの「要約」と呼ばれている、あなたはベクトルを得ることができ、処理されました。「概要」は、元のコレクションよりもはるかに小さいことを示します。
Dは、ベクトルの位置にマッピングされるセット内の要素は、それはH(D)を想定しているかどうかを照会することを想定しているDがセットされていない記述する必要があり、0であり;仮説H(D)1位でベクターにマッピングされ、そこ確かにDを設定することができ、それはまた、偽陽性を作るハッシュの衝突に起因する可能性があります。
ここに画像を挿入説明

ブルームフィルタ特性:そこに偽陽性かもしれないが、偽陰性を表示されません。
ブルームフィルタは、バリアント:ベクトルのセットを採用すると、ハッシュ関数をマッピングし、ハッシュが効果的に衝突を避けます

あなたは、コレクション内の要素を削除する場合はどのように動作しますか?
手術不能。言い換えれば、簡単なブルームフィルタは、削除操作をサポートしていません。あなたが削除操作をサポートしたい場合は、0と1ではない必要があるレコードの数は、カウンタ(カウンタがオーバーフローするかどうかを検討する必要がある)のように変更する必要があります。

ブルームフィルタにおけるイーサネット・スクエアの役割

これは、各トランザクションの後にブルームフィルタように取引記録情報、アドレスの種類を含むレシートをレシートを生成します。ブロックのブロックヘッダは、ブロックは組合のすべてのトランザクションのためのフィルタをブルームブルームフィルタを含んでいます。
だから、ヘッダが含まれている場合、ヘッダにブルームフィルタを探すために時間を見つけることができます。トランザクションに含ま見るブルームフィルタ・ブロックがある場合、その後、取引確認を表示し、そうでない場合、その後の発生「クラッシュ。」
こうしたA構造の利点は、すぐにそれによって、検索効率を高め、ブロックの多くは外に無関係なブルームフィルタを多数を通して濾過しました。

サプリメント

正方形イーサネットの動作中に、それは次のように見ることができるトランザクション駆動型ステートマシン現在の状態から次の駆動系に含まれる現在のブロックを介して取引を実行し、。もちろん、私たちのように見ることができるBTC トランザクション駆動型ステートマシンは、そのステータスはUTXOです。
所与の現在の状態とトランザクションの所与のセットについて、不確実性は、次の状態に移行することができる(システムの一貫性を確保するため)。

質問1:BにA転送、何が別の状態ツリーを含めることはできません売掛金はありませんか?
可能。スクエアイーサネット内のノードは、自身のアカウントを生成することができますので、取引システムが知られている場合にのみ生成されます。
質問2:私は、トランザクションおよび関連アカウントの状態のみを含んでブロックするために、状態ツリー内のすべてのブロックを変更することはできますか?(一貫性のある状態のツリーのサイズと木と取引レシートツリーを大幅に削減)
することができません。すべての状態を含むブロックがあるので、アカウントの状態を見つけることは非常に簡単にできるように設計されたすべての最初に、。第二に、あなたは理由値を追加するために、売掛金の状況を把握する必要性から、新しい口座振替を作成する場合、それは、新しく作成したアカウントですので、新しいアカウントシステムのアカウントを知るためにジェネシスブロックを見つけるために持っているすべての必要性格納されていない、とブロック鎖が絶えず拡張されます。

コードの特定のデータ構造

  • 作成プロセスの取引や領収書ツリーの木

これによれば、おおよそのデモ作成プロセスを見ることができます。などシャオビデオでは教師だけでなく、ブルームフィルタの具体的な構造を分析するため、ここではそれらを繰り返さない、興味があるショーは、直接ビデオを見ることができます。ビデオの29:00から始まるコード分析は、Benpianに直接到達することができ、トップリンクをクリックしてください。

ここに画像を挿入説明

公開された21元の記事 ウォンの賞賛6 ビュー6470

おすすめ

転載: blog.csdn.net/Mu_Xiaoye/article/details/104542356