Wait a moment...

【NEM技術勉強会】7.2.2 トランザクション明細書【カタパルト白書】

nem33.50xem (7)
440
0
2020-03-06 09:48:11
【NEM技術勉強会】7.2.2 トランザクション明細書【カタパルト白書】

前回はイマイチ掴みどころのないレシートの説明で申し訳ありませんでした。読み進めるにつれ、少しずつこれまでの分も修正していきます。今回はレシートと関係の深いステートメントについてです。ちなみにステートメントは明細書という意味らしいですので、ここでは明細書と表現します。


7.2.2 トランザクション明細書

 

トランザクション明細書は、発行元が同じレシートを束ねて作られる。それぞれの明細にはレシート発行元と、ひとつかそれ以上のレシートが記述されている。その結果、それぞれの発行元ごとに、レシートを発行した場合には、必ず対応するトランザクション明細書を作ることになる。

図14:トランザクション明細のレイアウト(a; トランザクション明細の構成、b; レシートの構成)

同じ発行元(ReceiptSource;ブロック、トランザクション、アグリゲートトランザクションのどれか)から出たレシートの集まりがトランザクション明細書であることが分かります。また、前回表に出てきたレシート発行元を示すReceiptSourceがプライマリー4バイト、セカンダリー4バイトで構成されている事もわかります。これから、ブロック中やトランザクション内で、起点から何バイト目からデータが始まるかを示す位置情報であることが予想できました。

 

トランザクション明細書のデータは、パディング(桁揃え)されない。なぜなら、ブロックが処理されているプロセス中に書き込まれるだけで、読み取られる事はないからである(桁揃えは読み込みの効率は上げるけれども書き込みの効率はむしろ下げる)。つまり桁揃えをすることには、サーバーのパフォーマンス上のメリットが無い。トランザクション明細のハッシュは、計算可能なサイズフィールドを除いた部分(V, T以降)について計算される。


ブロックなどが発行するレシートを束ねて作るのが明細書(ステートメント)です。この明細書のハッシュを集めてマークル木を作り、そのルートハッシュをブロックに書き込むわけですが、パディングに関する記述を見る限りやや使い捨てっぽい雰囲気がありますね。

 

目指せ北海道

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