コンテンツにスキップ

リリースノート - v0.70.1

タイトル: 復旧、APIの安全性、台帳の信頼性を強化

日付: 2026年8月26日

バージョン: v0.70.1

このリリースでは、ロールバック、ストレージ、ピア検出、台帳、ガバナンス、トランザクション処理を強化し、APIの安全性、ネットワーク公開の制御、relayの動作、ビルド依存関係を改善します。

NetworkCompatible
mainnet
preprod-testnet
preview-testnet
musashi
  • 改善: ロールバック変換の失敗を抑制し、WatchTxが変換時のpanicを公開せずにストリームエラーを報告するようにしました。深いロールバックは同期的に取得し、各ストリームのカーソルを保持して、連続するUndoレスポンスを飛ばさないようにしました。

  • 制限: ストレージのシャットダウン待機時間に上限を設け、ストレージの排出を確認できない場合に、ライブのrestoreまたはtruncateリクエストが監視対象の再起動を開始するようにしました。

  • 保護: 検証済みのディレクトリハンドルをrename、unlink、ディレクトリ削除に使用し、検証後のパス置換を防ぐことで、Windowsの展開クリーンアップを保護しました。

  • 検証: Leios endorserブロックのトランザクションを、キャッシュまたは保存する前にマニフェストの順序、body hash、エンコード済みサイズ、CBORの消費量に対して検証するようにしました。古くなった永続エントリは破棄して再取得します。

  • 更新: Blockfrost explorerのサンプルをVite 8.2.2に更新し、上流のVite修正と依存関係の更新を取り込みました。

  • 刷新: releaseとAntithesisのワークフローをDocker login action 4.6.0で実行するように更新し、上流の強化と、より明確なOIDCエラーを取り込みました。

  • 拒否: S3またはGCSをプライマリに設定した自動スナップショットを有効にする起動設定を拒否するようにしました。手動のCLIおよびBarkスナップショットは引き続き利用できます。

  • 確認: ByronからShelleyへの境界での復旧を検証し、最初のShelleyブロックでShelleyパラメータを表示し、ロールバックでByronに戻ったときに消去するようにしました。

  • 引き上げ: AWS credentials SDKを1.19.37へアップグレードし、依存関係セットに現在のcredentialsコンポーネントを含めました。

  • 拡張: AWS S3サポートをバージョン1.107.3へ更新し、presigningのチェックサムヘッダー修正と、エラーを含むHTTP 200レスポンスの処理改善を取り込みました。

  • 解消: コミット済みのチップ進行後に同一障害の復旧状態をクリアし、ノードが同じチップを再生するときは状態を保持するようにしました。

  • 低減: ledger discoveryのログ量とDNS churnを、negative DNSキャッシュ、DNSを解決する前にdenyリストおよび既知ピアを確認する処理、ホスト名重複排除の正規化、緊急更新のバックオフ、想定内エラーログの抑制によって低減しました。

  • 必須化: Midnight gRPCトラフィックを提供する前にmidnight.serverEnabled設定を明示的に有効化するよう求め、reflectionをオプトインにしました。デフォルトはloopbackのままとし、リモートの平文アクセスにはallowInsecureRemoteまたはTLSを必須にしました。

  • 保持: Buildx releaseマニフェストを組み立てる際にprovenanceとattestation descriptorを保持しました。

  • 強化: genesis overlay slot以外でstakeから導出したVRF thresholdを適用し、overlay slot専用の検証も維持しました。

  • 明確化: Byron eraのプロトコルパラメータレスポンスを明確にしました。Blockfrostはパラメータがない場合に404を返し、UTxORPCはFailedPreconditionを返し、Meshはパラメータの代替値を使用せず、設定済みのdrep_activity=0は有効なままです。

  • 同期: ledger recoveryテストのterminal resync観測をバッファ付きイベント配信と同期し、raceに強いアサーションを決定的にしました。

  • 停止: 削除されたmempool consumerをキャンセルし、ブロッキング中のNextTx待機が接続のクリーンアップ時に終了してnilを返すようにしました。

  • 完了: governance state adapterを完成させ、Conway purpose rootの公開、active parameterによる永続化アクションのデコード、期限切れ・enacted・pendingアクションの正しいフィルタリング、inclusive expiry slotの導出に対応しました。

  • 直列化: ledger discoveryの更新ラウンドを直列化して同時に1つだけ実行し、ラウンドが中断、失敗、またはpanicした後の再試行スケジュールを復元しました。

  • 確定: コミット後にトランザクションを確認し、WaitForTxがコミット後のactive-chainイベントだけを受け入れるようにしました。ロールバックとblock-fetchイベントを無視し、重複した確認を除去して、購読を安全に終了します。

  • 更新: Sundae previewのサンプルをVite 8.2.2に更新し、上流のHMRおよびsourcemap修正を取り込みました。

  • 制限: 圧縮前後の両方のサイズについて、デコードと認証の前に単項Connectリクエストメッセージを1 MiBに制限し、サイズ超過のリクエストにはHTTP 429を返すようにしました。

  • 分離: 受け入れた各peer voteの送信元接続をrelayから除外し、relayカーソルを正しく進めるようにしました。

  • 返還: ShelleyからAllegraへの移行時に削除されたByron AVVMの値を、オーバーフロー保護とロールバックおよびリプレイの安全性を備えた原子的な処理でreservesへ返還しました。

  • 適用: phase 2の制限付きPlutus実行を、Alonzo、Babbage、Conwayそれぞれのプロトコルパラメータセットが持つトランザクション単位のMaxTxExUnitsに制限しました。宣言されたredeemer budgetの比較と、後続のslippage batchの計上は継続します。

  • 復旧: Mithrilのledger state復旧で、現行および直前のepochに対応するプロトコルパラメータをインポートするようにしました。報酬のseed処理前に利用可能性を検証し、暫定的な報酬状態をトランザクションで消去し、パラメータが利用できない場合は影響を受ける報酬epochだけをスキップします。

  • 解放: すべてのブロック検索の戻り経路でimmutable chunk readerを閉じ、Windowsのクリーンアップを可能にするとともに、解放されないファイルハンドルを防ぎました。

  • 判定: 適用済み台帳チップをcontinuation auditの基準にしました。ロールバックウィンドウはロールバック地点が適用済みチップと一致する場合だけ有効になり、catch-upによって適用済み台帳が遅れた場合は古いウィンドウを消去します。

  • 安定化: 注入可能なクロックを使ってテストでChainSyncの到着順序を決定的にし、本番環境ではtime.Nowを使用するようにしました。

  • 延長: BarkのTLSおよび平文サーバーから30秒のHTTP WriteTimeoutを削除し、read headerおよびidle timeoutは維持して、長時間実行するストリーミングレスポンスを可能にしました。

  • 防止: 1ラウンドに1トランザクションを送信し、genesis slot長に基づいて出力を600 slot隔離し、健全なプロファイルノードを待機することで、未確認のDevNet txpump batchを防ぎました。

  • 拒絶: 型付きnetwork-magic handshakeの不一致による誤ったネットワークのピアを、メモリ上のPeerGovernorの存続期間中は恒久的に拒否し、再起動まで再検出を抑制するようにしました。同一ネットワーク内の不一致は一時的なままです。

  • 整合: committee voting setを整合させ、着席中で期限切れでなく辞任しておらず、active hot-key authorizationを持つメンバーだけを集計するようにしました。ExpiresEpochは包括的に扱い、認証されていない投票は集計から除外します。

  • 保全: Koios parity mismatchの検査失敗時または不一致の置換失敗時に、以前の不一致証拠を保持するようにしました。必要な読み取りが成功してから、不一致を原子的に置換します。

  • 解放: 認証されていない受信handshakeに、accept loop外で10秒の絶対期限を設けました。シャットダウン時には保留中の接続を閉じ、失敗時にはcapacity reservationを解放します。

  • 更新: golang.org/x/net0.57.0から0.58.0へ更新しました。

  • 検査: 取得したMithril gap rangeが空でなく連続しており、ハッシュで連結され、要求した開始点と終了点に一致することを永続化前に検証するようにしました。ピアのレスポンスが一致しない場合は別のピアへ切り替えます。

  • 継続: トランザクション単位のデコードまたは終端以外のadmission失敗が発生しても、ログを記録して該当トランザクションをスキップし、トランザクション取り込みを継続するようにしました。終端のシャットダウンエラーは引き続きpeer intake pumpを停止します。

  • 軽量化: dingo_live_lifecycle_integration build tagがある場合だけライブ2ノードライフサイクルテストを実行するようにし、実行コマンドmake test-live-lifecycleを追加しました。冗長なGoキャッシュと価値の低いオーバーヘッドも削減しました。

  • 保持: 後続の進化ステップが失敗しても、最後に正常に進化したKES keyを保持し、署名を継続できるようにしました。

  • 拒否: 不正または未対応のimmutable index version、offset、alignment、orderingを検出し、無効な読み取りやpanicではなくエラーを返すようにしました。

  • 制限: Midnight indexerの起動時backfillを適用済み台帳チップで制限し、重複スキャンを避け、進捗ゲージを公開するようにしました。適用済みチップの解決に失敗した場合は即座に失敗します。

完全な変更履歴: v0.70.0…v0.70.1


Doc Holiday logo

Docs authored by Doc Holiday

ページを編集

最終更新日: