Wait a moment...

【NEM技術勉強会】9.1.2 その他のブロックコンシューマー 9.1.3 その他のトランザクションコンシューマー【Symbol白書】

nem32.65xem (6)
428
0
2020-04-04 18:59:41
【NEM技術勉強会】9.1.2 その他のブロックコンシューマー 9.1.3 その他のトランザクションコンシューマー【Symbol白書】

前回からだいぶ間があいてしまいましたが、おかげさまで無事オフィスの引っ越しも終わり、事業化に向けて本格的に動きはじめました。今回は、ブロックの処理をするリングバッファーにくっついているコンシューマーのうち、ブロック処理とトランザクション処理それぞれに固有の働きをするものについてです。


9.1.2 その他のブロックコンシューマー

 

ブロックディスラプターは、いくつかのブロック処理特有のコンシューマーを使っている。

 

ブロックチェーンチェックコンシューマー

 

このコンシューマーは、処理中のデータ要素の中で、状態に依存しないブロックチェーン部品の品質チェックをする。すなわち以下の項目をチェックする:

  • ブロック数が多すぎないか?
  • 最後のブロックのタイムスタンプが進みすぎていないか?
  • データに含まれるブロック同士は適切に繋がれているか?
  • データの中に重複しているトランザクションはないか?

 

ブロックチェーン同期コンシューマー

 

このコンシューマーは最も複雑な機能をこなす。ローカルノードがいかなる状態であれ、その状態そのものを必要とするか、あるいはそれを変化させるすべての作業が、このコンシューマーによっておこなわれる。

 

まず、コンシューマーは処理データに含まれる新しいブロックチェーン部品が、既存のチェーンに追加可能かをチェックする。もしも、最終ブロックよりも過去のブロックに繋がっているならば、接続可能になるまで最終ブロックを取り外していく。

 

次に、ブロックの状態依存の検証を順次おこない、その過程を記憶する。状態非依存検証は、他のコンシューマーによってすでになされているため、スキップする。処理データに含まれるブロックに、なんらかの齟齬が生じていた場合は、データ全体を却下する。矛盾がなければ、ブロックチェーンの状態(ブロックとキャッシュの両方において)を書き換えて、未承認トランザクションキャッシュをアップデートする。

 

このコンシューマーは、Symbolにおいて、チェーン状態を変更しブロックチェーンに対して書き込み許可を持つ唯一のパーツである。

 

ブロックチェーン同期後処理コンシューマー

 

このコンシューマーは設定によって省略可能である。有効化されている場合には、ブロックチェーン同期コンシューマーが作ったすべてのファイルを消去する。このコンシューマーはブローカーが動いていないノードにおいてのみ有効化さすべきである。

 

新規ブロックコンシューマー

 

このコンシューマーは、新規のブロックを他のノードに送る機能を持つ。新しいブロックは、自分で作成したものでも良いし、他のノードからプッシュされたものでも良い。

 

9.1.3 その他のトランザクションコンシューマー

 

トランザクションディスラプターは、トランザクション固有のコンシューマーを1つだけ持つ。

 

新規トランザクションコンシューマー

 

このコンシューマーは、有効な署名を持ち、状態非依存検証をパスしたトランザクションを、ネットワークに送り出す機能を持つ。状態依存性の検証については、トランザクションが(リングバッファーを抜けて)未認証トランザクションキャッシュに入るまでは実行されない。トランザクションの送付(転送)は、状態依存検証の前にあえて実行される。その理由は、あるトランザクションについて、受理するサーバーと、受理しないサーバーがあるからである(例えば、トランザクション内に提示された最小手数料によって、サーバーが受理しないということが起こり得る)。その後、状態依存性の検証がおこなわれて、有効性が認められたものだけが、未承認トランザクションキャッシュに追加されるのである。


ここは、かなり重要なブロック生成に関する説明のはずなのですが、状態(state)という概念が今ひとつピンと来ていないせいで、はっきりとしたイメージがわかなかったところです。まあ、リングバッファーを使って高速に処理しているんだなということが分かれば良いような気がします。このディスラプターによって検証作業が完了したトランザクションのみが、未承認トランザクションとしてキャッシュ(メモリやディスク)に書き込まれて、今回は終了です。

 

目指せ北海道

この記事を書いた人
趣味はバイクでツーリングしながら、ブログを書いたり、動画配信したりすること。暗号通貨はまだまだ初心者。 nemlogに何を書こうかいろいろ考えたのですが、まずはバイクで動画配信をするための工夫や楽しさ、充実感などを伝えられたらと思ってはじめました。ラズパイをバイクに積載して、ボタン一つでYoutubeライブ配信できるシステムを作りました。それを発展させて、XEMの価格を常時監視、取引するボットも作って活用してます。子供の頃から技術書を読むのが好きなので、NEMの白書を訳したりもしています。 本業は再生医療研究者です。歯の神経の中にいる「歯髄(しずい)細胞」を活用して新しい医療を開拓するために、しずい細胞プロジェクトを推進中。細胞の流通(トレーサビリティー)管理にNEMを使っています。管理システムの名称は「ShizuiNet」。NEM.ioのAlexさん、Jeffさんと名刺交換&握手できたのが心の宝物。