コンテンツにスキップ

リリースノート - v0.204.2

タイトル: ピア処理とプロトコル検証を改善

バージョン: v0.204.2

v0.204.2 では、LocalStateQuery の応答処理を改善し、CBOR と Point の検証を強化し、不完全なアドレスに対する接続の形式を安全にし、無効なトランザクション確認が状態を進めることを防ぎます。

  • 拡張 LocalStateQuery の応答処理: アプリケーションは ouroboros.WithMuxerSegmentReadTimeout または muxer.NewWithSegmentReadTimeout を使用して muxer セグメントの読み取りタイムアウトを上書きできます。値が <= 0 の場合、期限は無効になります。また、ProtocolConfig.MaxReadBufferSize または localstatequery.WithMaxReadBufferSize を使用して、デフォルトの 16 MB の再構成上限を上書きできます。実装はキューに入ったセグメントを状況に応じて排出し、バッファーの増加を制限し、シャットダウンを監視し、競合状態なしで現在の era のデータを読み取ります。信頼できる低速なピアは、早期切断なしで長時間実行する応答や大きな複数セグメントの応答をサポートできます。

  • 更新 Plutus の一般コンストラクターエンコーディング: 一般コンストラクターは [constructor_number, fields] を含む CBOR タグ 102 を使用するようになりました。デコーダーは従来のタグ 101 と、プラットフォームの uint の範囲を超えるコンストラクター番号を拒否し、コンパクトな代替形式は維持します。アプリケーションでは、タグ 101 のコンストラクターをタグ 102 として再エンコードする必要があります。

  • 強化 Cardano Point の検証: デコーダーは、要素数が 0 または 2 の確定配列のみを受け入れます。2 要素の値には uint64 のスロットと、正確に 32 バイトのハッシュが含まれている必要があります。デコーダーは、後続データ、非確定配列、タグ付きの値、形式が不正な入力を拒否し、検証に失敗しても Point の値を変更しません。

  • 安全化 接続の形式: ConnectionId.String() は、ローカルまたはリモートのアドレスがない場合に <nil> と表示し、local<->remote の形式を維持するようになりました。一部だけ設定された接続 ID も、パニックを起こさずに形式化されます。

  • 防止 トランザクション確認の水増し: プロトコルは、要求した数を超える識別子を含む ReplyTxIds 応答を、ackCount を進める前に protocol.ErrProtocolViolationRequestExceeded で拒否します。ゼロ件、要求数と一致する応答、部分的な応答は引き続きサポートされます。

ネットワーク互換性
mainnet
preprod-testnet
preview-testnet
musashi

リリース: v0.204.2

比較: v0.204.1…v0.204.2


Doc Holiday logo

Docs authored by Doc Holiday

ページを編集

最終更新日: