CometBFT: データ構造

Takami Torao CometBFT 0.37.2 #Blockchain #CometBFT #Tendermint #Cosmos
  • このエントリーをはてなブックマークに追加

概要

Table of Contents

  1. 概要
  2. ブロック
    1. ヘッダ
    2. その他のフィールド
  3. 参照

ブロック

CometBFT は Tendermint やその他のブロックチェーンと同様に合意の単位となるデータとしてブロックを用いる。この Block 構造体は Fig 1 に示すように 1) ヘッダ、2) 0 個以上のトランザクション、3) 0 個以上のエビデンス、4) 1 個以上の署名を伴うコミットによって構成される。

Fig 1.

Header 構造体は CometBFT のブロックヘッダを定義する。これにはブロックとコンセンサスのメタ情報、検証のための様々なハッシュ値が含まれている。各フィールドの詳細は CometBFT 仕様の Header を参照。

ブロックは提案ブロック作成時 MakeBlock() で作成される。

その他のフィールド

Block の mtx フィールドは 1) ブロックの検証、2) ブロックのハッシュ算出、3) ブロックのシリアライズのための部分化で排他制御を行うために用いられている。これらの処理は 2) で算出済みハッシュ値のメモ化を行っているものの、それ以外での更新処理での排他は行われていない。

Hash は何のハッシュで誰がいつ算出したものか。PartSetHeader とは何か。何で BlockID を修飾しているのか。提案ブロックとは何か。

参照

  1. CometBFT Specification: Data Structures