CompactBlock
【参考文献】
【問題】
ブロックを伝播するとき、ブロックに含まれるトランザクションをメモリプールに保存している。別のノードからもブロックを受け取りすでに保存済みのトランザクションも送られてくるため、無駄がある。
【目的】
ムダを省いてネットワークの帯域幅を確保し、さらにブロック伝播のレイテンシー(遅延)を減少させるための仕組み
【説明】
BIP0152で定義されている
高帯域幅モードと低帯域幅モードの二種類が存在する
高帯域幅モード…新しいブロックを受信したノードは、そのブロックが有効化検証する前であってもリモートノードに新しいブロックをアナウンスする
低帯域幅モード…新しいブロックを受信したノードは、そのブロックが有効であるか完全に検証したあとにリモートノードに新しいブロックをアナウンスする
接続先のノードにブロックをアナウンスする際にcompact blockを使ってアナウンスするようsendcmpctメッセージを送る。このメッセージを送る際の最初の引数に1をセットすると高帯域幅モードになり、0をセットすると低帯域幅モードになる。