Wait a moment...

【NEM技術勉強会】10.1 未承認トランザクションキャッシュ【Symbol白書】

nem30.10xem (3)
476
0
2020-04-09 10:43:38
【NEM技術勉強会】10.1 未承認トランザクションキャッシュ【Symbol白書】

ネム財団の立て直しに尽力されたアレックスさんがトップを退くことになりましたね。彼女のおかげで、Symbol立ち上げへの道筋が見えてきました。6ヶ月間の休暇を取られるそうです。本当にお疲れ様でした。ShizuiNetはプライベートチェーンmijin v.2で予備稼働中です。4月から3ヶ月間のPoC期間を経て、こちらも今年後半からの本格稼働を目指しています。まずはサーバー代を稼がねば。


10.1 未承認トランザクションキャッシュ

 

未承認トランザクションはピアノードによる検証を受けた後、ハーベストによってブロック登録ができる状態になる。その際、ノードはその検証済みのトランザクションを未承認トランザクションキャッシュに入れようと試みる。この時、2つの関門がある:

 

  1. node:unconfirmedTransactionsCacheMaxSizeによって規定された、キャッシュの最大値を超えないこと。
  2. 1つのブロックに包含されるに十分な数(1以上?)の未承認トランザクションがキャッシュに存在し、かつ、スパム関門によって拒絶されていないこと。

 

ブロックチェーンに新しいブロックが付け加えられる時、ブロックチェーン状態(state)が変更され、未承認トランザクションキャッシュがそれによって影響を受ける(ブロックへの書き込み許可が下りる?)。しかし、キャッシュ内に存在するすべての検証済みトランザクションが、その後も永久に検証済みとして取り扱われるわけではない。たとえば、そのトランザクションはすでに他のノードによってハーベストされてブロックに書き込まれてしまっているかもしれないし、他のトランザクションとの間でコンフリクトが起きているかもしれない。つまり、キャッシュにあるトランザクションは過去には完全に有効であったけれども、ブロックチェーンの状態変化の後に問題が見つかることがある。さらに、トランザクションを含んだブロックが巻き戻された場合にも、そこに含まれていた承認済みトランザクションが新しいチェーンにも含まれるという保証はない。これらの巻き戻されたトランザクションもまた、一旦キャッシュに差し戻される。

 

これらのことを考慮すると、未承認トランザクションキャッシュは、ブロック状態が変化するごとに完全に再構築されなければならない。そのとき、個々のトランザクションは状態依存の検証を再び受け、その結果が不良であったり、すでに他のチェーンのブロックに書き込まれているなら破棄される。また、そうでなくても一度キャッシュに戻されるのである。


ブロックチェーンは書き込まれたら終わりというわけではなく、フォークした時には巻き戻されたりもします。その場合に、中に入っていたトランザクションも一旦未承認状態に戻り、無効化されたり再び検証を受けて別なチェーンのブロックに取り込まれたりするわけです。このあたりの処理がうまくできるかどうかも、ブロックチェーンの性能と密接に関係しているのですね。

 

目指せ北海道

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