connecting...
Google translation for articles :
6 NEMBER donated to you!!

【NEM技術勉強会】9.1 コンシューマー 9.1.1 共通コンシューマー【Symbol白書】

nem34.55xem (6) 337 0 0

前回出てきた、ディスラプターで実際にデータを処理するのがコンシューマーです。Symbolには大きく分けて、ブロックディスラプターとトランザクションディスラプターという2つのコンシューマーがあります。どちらもリングバッファーを使って高速処理ができます。


9.1 コンシューマー

 

Symbolのブロックディスラプターは、新しく送られてきたブロックと、ブロックチェーンパーツを処理している。ブロックチェーンパーツというのは、いくつかのブロックが連なったデータ入力要素である。このディスラプターは、ブロックを検証し、再構成し、ブロックチェーンを伸長させる作業をする。

 

一方でトランザクションディスラプターは、送られてくる未承認トランザクションを処理する。ディスラプターによって処理が完了したトランザクションは、未承認トランザクションキャッシュに追加される。

 

すべてのディスラプターは、入力データを処理する一連のコンシューマーによって構成されている。異なるコンシューマーを組み合わせることで、ディスラプターは機能の違いを生み出している。すべてのコンシューマーはリングバッファーのデータを閲覧することができ、一部のコンシューマーはデータを変化させることもできる。

 

図19. Symbolのコンシューマーチェーン

 

9.1.1 共通コンシューマー

 

ブロックディスラプターとトランザクションディスラプターは、多くのコンシューマーを共有している。

 

監査コンシューマー

 

このコンシューマーは、必須ではなく、ノード設定でオン・オフを選択できる。もしオンになっている場合、すべてのデータ要素はディスクに保存される。これは、ネットワークから入ってくる情報を後で再現することができるため、デバッグにも利用される。

 

ハッシュ計算・検証コンシューマー

 

ブロックチェーンにおいては)サーバーが何度も同じデータ要素を受け取るのが普通である。なぜなら、ネットワークはたくさんのサーバーから成り立っており、常に他のサーバーにブロードキャストによってデータを送り出しているからである。ネットワークのパフォーマンスを上げるためには、早い段階で送られてきたデータがすでに処理済みのものかを見極める必要がある。そうしないと、同じデータを何度も処理することになる。

 

ハッシュ計算コンシューマーは、ひとつのデータ要素に関連するすべてのハッシュを計算する。またこのコンシューマーは、受け取ったことのあるすべてのハッシュ値を格納している「ハッシュデータキャッシュ」を検索する。トランザクションディスラプターのコンシューマーも、同様にハッシュキャッシュ(こちらは承認済みのハッシュを格納している)や、未承認トランザクションキャッシュを検索する。これらのキャッシュに、ハッシュ値が含まれていれば、そのデータ要素にはCompletionStatus::Abortedがつけられて、その後の処理が省略される。

 

状態不依存検証コンシューマー

 

このコンシューマーは、ネットワーク状態に依存しない個々のデータ要素内を検証する。この処理は、多くのスレッドを使って並列に処理できる。プラグインによって追加できるのは、この状態不使用検証コンシューマーである。

 

たとえば、ネットワークの上限を超えない数のトランザクションを含むブロックの検証などは、ネットワーク状態に依存しないと考えられる。そのようなブロックの検証は、ネットワーク設定にもよるが、実際の全体ネットワーク状態には影響されないからである(すべての有効なトランザクションがブロックに書き込まれるため?)。

 

バッチ署名コンシューマー

 

このコンシューマーは、データ要素に含まれるすべての署名を検証する。個々のデータを検証する状態不依存検証コンシューマーと違い、バッチ検証を使用する。処理スピード向上のため、このコンシューマーは複数の署名を一度に検証することができ、同時に多数のスレッドで並列に処理が可能である。

 

メモリー解放コンシューマー

 

このコンシューマーは、処理を完了させて、データ要素を格納していたメモリーをすべて解放する。一連の作業によって変更・検証されたトランザクションの塊は、より下流の作業に回されていく。ノードが同期しておこなわれる処理の結果は、主にパートナーノード(13. 信頼度評価を参照)によって評価される - 結果次第ではパートナーノードからはずされることもある - 。


ブロックチェーンの特徴のひとつに、多くのサーバーノードが同時に同じブロックを処理するため、同じトランザクションデータが何度も違うサーバーから送られてくるというのがあります。そのようなデータもリングバッファーに載せられて、コンシューマーが過去に処理したデータかどうかをハッシュ値で見分けて、その後の処理を行うかどうかのタグを付けていきます。処理済みタグがついたデータは、下流のコンシューマーによって無視され、最終的には破棄されます。ディスラプター方式の「処理を止めない」という特徴が、うまく活用されて高速化に貢献しているようです。

 

目指せ北海道

Why don't you get crypt currency 'nem' by posting your blog article?

nemlog is blog posting service which has donation feature by crypt currency nem.
nemlog was launched to create environment which can be donated nem among NEMbers via blog articles.
Let's get nem by posting good blogs.

Nem prize event is being held frequently, Please join us on this opportunity!

nemlog registration from here
Register

NEMber who posted this article

趣味はバイクでツーリングしながら、ブログを書いたり、動画配信したりすること。暗号通貨はまだまだ初心者。

nemlogに何を書こうかいろいろ考えたのですが、まずはバイクで動画配信をするための工夫や楽しさ、充実感などを伝えられたらと思ってはじめました。ラズパイをバイクに積載して、ボタン一つでYoutubeライブ配信できるシステムを作りました。それを発展させて、XEMの価格を常時監視、取引するボットも作って活用してます。子供の頃から技術書を読むのが好きなので、NEMの白書を訳したりもしています。

本業は再生医療研究者です。歯の神経の中にいる「歯髄(しずい)細胞」を活用して新しい医療を開拓するために、しずい細胞プロジェクトを推進中。細胞の流通(トレーサビリティー)管理にNEMを使っています。管理システムの名称は「ShizuiNet」。NEM.ioのAlexさん、Jeffさんと名刺交換&握手できたのが心の宝物。
40858
0

Why don't you read following articles?