リリースノート - v0.70.0
v0.70.0
Section titled “v0.70.0”タイトル: 台帳検証、ノードの信頼性、運用者のセキュリティを強化
日付: Not provided
バージョン: v0.70.0
このリリースでは、Byronの検証とリプレイからの復旧を強化し、同期とシャットダウンの信頼性を高め、APIのセキュリティとクエリ機能を拡張します。また、運用ツール、依存関係、ドキュメントを更新します。
推奨ネットワーク互換性 ⚠️
Section titled “推奨ネットワーク互換性 ⚠️”| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
-
修正: 元のトランザクションデータからCBORタグ24でラップされた有効なredeem witnessを復元し、設定済みのByron protocol magicとドメインタグで署名を検証して、各witnessを正しい入力アドレスルートに対応付けることで、Byronのリプレイを修正しました。genesisからのmainnetリプレイで、カスタムprotocol magicを使用するプライベートネットワークの入力を含む有効なByron入力も受け付けるようになりました。
-
改善: 同期ロックを解放した後に
ChainsyncResyncイベントを公開してロールバックと再同期を改善しました。購読者のバックプレッシャーによってロールバックや再同期がデッドロックし、chainsyncが停止することはなくなりました。 -
保持: クリーンアップ中に観測したチェーンスナップショット、コンテナの状態、上限付きサービスログを、個別のシナリオ成果物ディレクトリに保存してDevNetの障害証拠を保持しました。間欠的なシナリオ障害でも、ティアダウン後に診断情報が残ります。
-
追加: Byron PBFTブロックの暗号学的検証とヘッダー検証に加え、発行者と委任の状態の再構築、キャッシュ、Mithrilの信頼境界処理を追加しました。これらの検証は無効な過去のヘッダーを拒否し、有効な処理は再起動とロールバックの後も一貫します。現在のスロットクロックエラーによってヘッダー復旧が開始されることもなくなりました。
-
更新:
github.com/klauspost/compressを1.19.2に更新し、上流のzstdおよびhuff0の修正と改善を取り込みました。 -
導入: 2つのワーカーを使用するオプトイン方式の並列ブロックデコードパイプラインを導入し、
blockPipelineEnabled、DINGO_BLOCK_PIPELINE_ENABLED、または--block-pipeline-enabledで設定できるようにしました。検証と適用はシリアル順序を維持し、起動時にはMusashiでこのオプションを拒否します。再試行処理は分離されたままで、この実験的なオプションはデフォルトで無効です。 -
刷新: ワークフローのcheckoutアクションのピンを
7.0.1に更新し、継続的インテグレーションに上流のcheckout安全性修正を取り込みました。 -
反映:
github.com/aws/smithy-goを1.27.7に更新し、AWS SDKのシリアライズ修正と再帰的なコレクションによるパニックの修正を反映しました。 -
拡張: 共有の
api.tlsおよびapi.authデフォルト、plugins.api.<name>.config以下のプロバイダー単位の上書き、Blockfrost、Mesh、UTxORPCのトークン認証によってAPIリスナーのセキュリティを拡張しました。不完全なTLSまたは認証設定はリスナーの起動前に拒否され、CORS preflightリクエストでは認証を迂回し、従来のUTxORPC TLS動作を維持します。 -
変更: PostgreSQLメタデータ接続のデフォルトを
sslmode=disableからsslmode=requireに変更しました。明示的な接続文字列は変わらず、平文接続が必要なデプロイではsslMode: disableを明示的に設定する必要があります。 -
解消: リクエスト処理の周囲でロックを解放し、接続ごとに以前の処理を排出し、古い世代を無視し、継続処理をワーカーへ移し、シャットダウンに上限を設けることで、blockfetchの停止を解消しました。コールバックやバックプレッシャーが相互作用しても同期とシャットダウンが停止することはなくなり、処理中のタイムアウトが繰り返される場合は
Warnでログに記録します。 -
確立: ステークのカバレッジに基づき決定的に選出した委員会を使って、オンチェーンのLeios BLSキーとproof of possessionの検証を確立しました。Dingoは派生したフォールバックキーを使用せず、設定した署名キーが登録済みのオンチェーンキーと一致することを要求します。この実験的な動作により、キーを持たない運用者や一致しないキーの運用者が検証済み投票に参加することを防ぎます。
-
是正:
LedgerView.RewardAccountBalanceを公開し、利用可能な残高を超える引き出しを拒否し、部分的な引き出し分を差し引くことで、報酬引き出しの会計を是正しました。ゼロ額の引き出しに対する検証も維持され、部分的な引き出し、リプレイ、ロールバックの間で残高が一貫するようになりました。 -
維持: ライブのrestoreおよびtruncate操作中も設定済みのGenesisフォーク選択を保持し、再起動なしで選択状態を維持できるようにしました。
-
分離:
debugBindAddr、DINGO_DEBUG_BIND_ADDR、--debug-bind-addrでpprofのバインドアドレスを分離しました。デバッグリスナーはpublic bindやprivate bindとは独立してloopbackをデフォルトにし、serveとMithrilの経路で同じ動作をします。ワイルドカードで公開する場合は明示的な設定が必要です。 -
対応:
UtxosByTxInクエリが、バッチ化、重複排除、チャンク化した検索によって複数のトランザクション入力を受け付けるようにしました。台帳クエリでは存在しないライブ入力を省略し、UTxORPCでは存在しないコントラクトに対するエラーを維持します。 -
整理: Google APIの依存関係を
google.golang.org/api0.292.0に更新し、gRPCとgenprotoの依存関係を整合させました。クライアント定義とチェックサムも更新しています。 -
完了: ピアが再提供した部分取得済みのLeios endorserブロックを、トランザクションの疎な進捗情報を保持して不足している末尾のエントリだけを要求することで完了できるようにしました。不完全なキャッシュエントリには有効期限を設け、無期限の保持を防ぎます。この実験的な動作により、チェーン先端付近のブロックは部分取得を最初からやり直さずに完了しやすくなります。
-
強化: raceを有効にしたチェック、タイムアウト、安全なシェル処理、マルチアーキテクチャのマニフェスト検証、アクションのピン留め、権限の削減によってリリース検証を強化しました。リリース自動化では、再実行時に公開済みリリースを削除または上書きしないよう保護します。
-
回復: 重複した入力を特定し、上限付きの巻き戻しと新しいインターセクション復旧を実行し、ラッチで繰り返しの試行を抑制することで、決定的なリプレイトランザクションの障害から回復できるようにしました。これらの障害によってピアのローテーションが無限に続いたり、リプレイが停止したりすることはなくなりました。
-
設定:
targetNumberOfRootPeers、DINGO_TARGET_ROOT_PEERS、または--target-root-peersでルートピアの選択を設定できるようにしました。Dingoの設定はCardanoの設定より優先され、デフォルトは60、-1は無制限を意味します。ライブ再初期化によって再起動なしで変更を適用し、ローカルルートを維持します。 -
保護: 宛先のシンボリックリンクとtime-of-check-to-time-of-useの競合を拒否し、ダイジェストを検証して検査済みのツリーをアトミックに公開することで、Mithrilアーカイブの展開を保護しました。
exclusive、merge、replaceの各ポリシーで展開方法を制御でき、空でない宛先へのexclusive展開ではreplaceポリシーが必要になりました。 -
防止: 台帳の排出処理が完了しない場合にデータベースとプラグインのシャットダウンをスキップし、明示的なエラーを返すことで、ストレージを保護しました。台帳処理がまだアクティブな状態でストレージを閉じることを避け、破損のリスクを低減します。
-
秘匿: 起動時ログに出力する機密情報を含む設定をマスキングし、トークン、キー、パスワード、DSN、未知のフィールドを構造化されたフェイルセーフ処理で扱いました。テキストログとJSONログは、機密情報を公開せずにトラブルシューティングの詳細を保持します。
-
文書化:
docs/README.mdとdocs/code-reference.mdによる標準化されたドキュメント探索を整備しました。リポジトリのガイダンスファイルからこれらのページにリンクし、読者とコーディングエージェントがバージョンに対応したドキュメントを見つけられるようにしました。 -
修正: ハードフォークとeraの境界でエポック予測を停止し、キャッシュ済みパラメータが確認済みまたは設定済みの境界を越えないようにしました。完全な台帳ロールオーバーでは後続eraのパラメータを適用し、遅延ヘッダー検証の分類を維持します。
-
拡張: MeshとRosettaのコントラクトカバレッジを拡張し、ブロック高とインデックスの変換を修正しました。履歴
/account/balanceリクエストは指定ブロックを使用し、解決できない場合はblock-not-foundを返し、履歴残高検索を通知します。 -
保護: メタデータ、稼働状態、識別情報を確認してUnixソケットパスを保護し、確認済みの古いソケットだけを削除するようにしました。起動時には通常ファイル、シンボリックリンク、ディレクトリ、稼働中のソケット、曖昧なパスを保持し、明確なエラーを報告します。
-
更新: Sundae Previewサンプルの
@sundaeswap/core依存関係を2.13.1に、推移依存する@sundaeswap/mathを0.3.0に更新しました。後者にはサンプルのビルド環境でTypeScript 5が必要です。 -
改善: Sundae Previewサンプルの開発およびビルドツールを整備し、
examples/dingo-sundae-previewの開発用vite依存関係を8.2.0から8.2.1へ更新するとともに、対応するロックファイルと依存関係グラフを刷新しました。 -
刷新: Blockfrost ExplorerサンプルのVite依存関係を
8.2.1に更新し、ロックファイルも更新して、上流の修正と改善を取り込みました。 -
改善: DevNetのクリーンアップをベストエフォートで実行しながら、元のテスト終了ステータスを上書きしないようにしました。一時的なstakeキーはホストのユーザーとグループの所有権を保持し、一時ディレクトリもより確実にクリーンアップされます。
-
検証: 共有プロトコルfixtureと副作用のないクライアント検索によって、ピア間で交換されるChainSyncの正確なメッセージを検証できるようにしました。実際のメッセージ動作によってプロトコルのリグレッションを検出できます。
-
強化: 報酬と引き出しのパリティテストにnil安全なヘルパーと最新のループ処理を導入し、プロダクション動作を変更せずに、コミット前の静的解析をクリーンに保ちます。
-
整合: デプロイ可能なBlockfrost Explorer、Gov Lens、Sundae PreviewのKubernetesサンプルを、Dingo
0.70.0のイメージピンと対応するREADMEのバージョンに整合させました。 -
有効化: APIモードでのCIP-26トークンレジストリ同期と、Blockfrostアセットレスポンスのメタデータローカルキャッシュをオプションで利用できるようにしました。YAML、環境変数、CLIフラグで、ソース、間隔、タイムアウト、サイズ制限、ロゴ保存、プライベートアドレス許可を設定できます。デフォルトでは無効で、mainnetレジストリは約
240 MBです。 -
復旧: Byron genesisのネットワークでgenesis同期を行う際、slot
0のByron時代の状態を維持し、Shelley形式のパラメータを使わず、該当しないByron報酬計算を省略するようにしました。既存の古いepochキャッシュ形状には警告を出し、空のデータベースでの再同期を要求します。Dingoが自動修復することはありません。 -
明確化: Windowsキーファイルの権限検証で、解決できないDACL trusteeと外部のtrusteeを区別するようにしました。
LAエイリアスはBuilt-in Administratorsが所有する場合だけ受け入れ、安全でない所有権は引き続き拒否します。 -
堅牢化: 事前検証、メタデータとblobのペアのロールバック用バックアップ、補償ロールバック、再試行可能な
RestoreRecoveryハンドルによって、リモート復元からの回復を強化しました。外部復元に失敗してもプロバイダー間の状態が混在せず、ロールバックが必要な間はノードを停止したままにします。 -
実装: UTxORPC v1betaの
QueryService.ReadStateでCardanoのGetStakePoolDistributionを実装しました。決定的な順序、一貫した台帳チップ、上限と検証のあるフィルター、構造化された利用不可エラーを提供し、このクエリでクライアントがUNIMPLEMENTEDを受け取ることはなくなりました。 -
解消: unsubscribeテストでEventBusを閉じて非同期ワーカーを終了させ、イベントパッケージのテストがワーカーを残さないようにしました。プロダクションの動作は変更していません。
-
改善: YAMLの解析およびデコードエラーに解決済み設定ファイルのパスを含め、同梱のサンプル設定ファイルを解析可能な状態に保ちました。起動エラーで修正が必要なファイルを特定できます。
-
更新: AWS SDKの認証情報と関連モジュールのバージョンおよびチェックサムを更新し、上流の保守更新とS3レスポンス処理の修正をビルドに取り込みました。
-
転送: Leios relayを介して承認済みのピア投票を転送し、ライブのライフサイクル再構築中も拡散キューを再利用して重複した拡散を避けるようにしました。この実験的な動作により、relayに接続したプロトタイプのブロック生成者が転送されたピア投票を受信できます。
-
調整: OpenTelemetry依存関係を更新し、パスのないOTLP HTTPエンドポイントに
/v1/tracesを追加しないようにしました。エンドポイント設定では/v1/tracesなどのシグナルパスを明示的に指定する必要がある場合があり、Retry-Afterの処理も変更されています。OTLP HTTPトレースエクスポートがattribute.MAPの値をサポートするようになりました。 -
改名: メタデータのトランザクションハンドルインターフェースを
metadata.TransactionStoreからmetadata.TxnStoreに改名し、より範囲を絞ったストレージインターフェースに分割しました。トランザクションハンドルにmetadata.TransactionStoreを使う下流コードはmetadata.TxnStoreへ変更する必要があります。 -
固定: Docker Buildxアクションの参照を
4.3.0に固定し、CIと公開処理で新しい固定済みアクションを使うようにしました。 -
制限: 消費済みUTxOのクリーンアップを上限付きのバッチに制限し、blockfetchの待機処理で台帳のキャンセルを監視するようにしました。キャッチアップとティアダウンの応答性を維持します。
-
追加: メタデータ処理向けにPostgreSQLの
statementTimeoutとlockTimeout、MySQLのstatementTimeout、lockTimeout、readTimeout、writeTimeoutを設定できるようにしました。SQLトランザクションはキャンセルを伝播し、タイムアウト値を検証します。すべてのフィールドのデフォルトは0で、明示的なDSNではこれらのプロバイダータイムアウトフィールドを無視します。 -
導入: スケジュール実行と手動実行のベンチマーク比較、永続的な実行履歴、統計的に有意な低下の報告、シンボリックリンクとパスの安全性を追加しました。ベンチマークの変動をマージのブロックなしで確認できます。
-
限定: インポートした報酬パラメータを関連する正のstakeスナップショットに限定し、不完全なプールのエラーを決定的に集約して、スキップ警告の対象を修正しました。Mithrilからインポートした報酬のシード処理で無関係なプールを避け、すべての不完全な入力を報告します。
-
任意化: mempoolのevictionをオプションにしました。
evictionWatermark: 0でFIFO evictionを無効にし、デフォルトをevictionWatermark: 0およびrejectionWatermark: 1.0(従来は0.90および0.95)に変更しました。正のeviction値はrejection watermark未満にする必要があり、トランザクション送信は利用可能なadmission headroomも考慮します。 -
提供: PostgreSQL、MySQL、S3、GCSのメタデータとデータを扱う、
dingo database snapshot、dingo database restore、dingo database truncateコマンドを提供します。破壊的なリセットの前にコマンドが検証を行い、クラウドバックアップはフレーム化データを使用し、snapshotDirには書き込み権限が必要です。データベース用Docker環境にはUID/GID1000:1000とデータベースクライアントツールも含まれます。 -
防止: イベント配信とnetwork-to-chainの停止、および遅延ヘッダーのliveness wedgeを解消し、ノードがチェーンの追従を静かに停止する問題を防ぎました。leader thresholdとパイプラインのテレメトリで進捗を確認でき、インポートした報酬ベースに初期状態を設定し、SQLite WALの起動も安定しました。
-
対応: Musashi
2026w32プロトタイプのrespinに対応し、genesis、protocol、topology、スナップショットのデータを更新しました。このrespinにはノード11.1.0-prototype-2026w32以上が必要で、更新されたスナップショットスキーマを使用します。 -
更新: SQLiteドライバーと組み込みエンジンの依存関係を更新しました。
-
延期: ノードが既知の上流チップから大きく遅れているキャッチアップ中は、消費済みUTxOのクリーンアップを延期し、クリーンアップ処理の重複実行を防ぎます。上流チップが不明な場合、クリーンアップはローカルチップを基準にします。
-
正規化: キャッシュパスを確認する前にMithrilスナップショットのメタデータを正規化し、ネットワークとダイジェストの識別情報を検証して、v1とv2で一貫したキャッシュおよび展開パスを適用します。
-
改善: 広告されたチップではなく、ピアから配信されたフロンティアを信頼してチェーン選択と復旧を行うようにしました。ロールバック後も履歴の安全性を維持します。
-
安定化: 一貫したシグナル動作、接続プールのヘルスチェック、UnixソケットDSN解析の修正により、データベーステレメトリを安定化しました。従来のシグナルとオプトイン設定は利用できなくなりました。
-
刷新: Blockfrost Explorerの開発用Node.js型定義を更新しました。
-
定義: カバレッジマトリックス、厳密なエポック一致、レポートでの明示的なパリティ対象外項目によって、Koiosパリティのカバレッジを定義しました。
-
強化: 更新されたアテステーションアクションによって継続的インテグレーションのアテステーションを強化しました。
-
拡張: ストリーミング処理するUTxO CBORマップが最大
100,000,000エントリに対応しました。汎用マップの上限は10,000,000エントリのままです。 -
限定: Conway機能の検証対象を必要なスクリプトに限定し、無関係なPlutus V1およびV2の参照スクリプトが利用可能でも、Conway機能の拒否を引き起こさないようにしました。
-
更新: OpenTelemetryの標準出力エクスポーター依存関係を更新しました。
-
抑制: Mithrilスナップショットの通常メッセージを抑制し、ファイルごとの同期詳細を
DEBUGに移しました。集約された進捗は引き続き表示します。 -
明確化: Leiosのピア投票拡散について、ピア投票がrelayを通じて1ホップのechoを受けることを明確にしました。
-
対応: 複数eraの境界ブロックで、認可された2つのera間の遷移を検証し、sourceの遷移をsuccessorの遷移より先に適用して、最終eraのprotocolバージョンをスナップショットに記録するようにしました。
-
無視: プライマリチェーンのリプレイ中に過去のプライマリチェーンヘッダーを無視し、フォーク解決を開始しないようにしました。ローカルのヘッダー検索がアーカイブストレージへフォールバックすることもありません。
-
保持: Alonzo以前の再構築されたShelleyおよびAllegraの更新トランザクションでwire sizeを保持し、手数料とサイズの検証に使用するようにしました。typed nilのprotocolパラメータは互換性エラーを返します。
-
同期: terminal recoveryのresync処理を同期し、復旧が決定的に最終状態へ到達するようにしました。
-
強化: Koios strict previewの検証で、パリティ失敗をfatal errorとして伝播し、staking開始前のアカウントスキャンを省略し、アカウント報酬履歴リクエスト本文のデフォルト上限を
4 KiBに設定し、台帳境界遷移の順序とタイミングを修正しました。 -
受付: ローカルでforgeしたブロックをEventBusのproposal matchingなしで同期的にadmitし、admission後にobserverを実行するようにしました。
-
拒否: ネットワーク到着時刻を記録し、必要に応じて2秒のクロックスキュー範囲内でslot開始まで待機して、範囲外のChainSync未来ヘッダーを状態変更やピアへのペナルティなしで破棄するようにしました。最も早く破棄したslotから接続ごとに集約した1回の再同期を開始し、接続の削除またはシャットダウン時には保留中のタイマーをキャンセルします。
-
更新: AWS SDK設定依存関係を
1.32.31から1.32.37へ更新し、S3レスポンスボディ処理に関する上流の保守も取り込みました。 -
導入:
blockPipelineValidateEnabled、--block-pipeline-validate-enabled、またはDINGO_BLOCK_PIPELINE_VALIDATE_ENABLEDで、実験的かつオプションのVRFおよびKES検証をブロック処理パイプラインで有効にしました。ブロック処理も有効にする必要があり、検証、復旧、メトリクスの改善はこのオプションを明示的に有効にした場合だけ適用されます。このオプションはデフォルトで無効です。 -
高速化: イベント駆動のDevNetシナリオを高速化し、テストのユーザーとグループの識別情報をホストと一致させ、保留中のpublishをロックで保護し、診断用に失敗時の成果物を保持するようにしました。
-
制限: Musashiの検証バイパスを明確なプロトタイププロファイルに限定し、矛盾するネットワーク識別情報の組み合わせを拒否することで、プロトタイプの互換性境界を明確にしました。
-
抽出: ChainSyncのstall recyclerをライフサイクル管理コンポーネントとして分離し、動作を維持しながらシャットダウン処理とテスト容易性を改善しました。
-
拡張:
GetUTxOByAddressが複数アドレスを受け付け、完全一致のフィルタリング、チャンク化した検索、重複排除を行うようにしました。 -
必須化: Mithril aggregatorとartifactのURLでデフォルトからHTTPSを必須にしました。ローカル開発とテストでは、デフォルトがfalseの
mithril.allowInsecureHttp設定、--mithril-allow-insecure-http、またはDINGO_MITHRIL_ALLOW_INSECURE_HTTPの例外指定を使用できます。 -
刷新: pgx PostgreSQLドライバーを
5.9.2から5.10.0へ更新し、decoder bounds、TLSCancelRequest、接続処理の修正を取り込みました。 -
整備: Sundae Previewの開発用
@types/node依存関係を26.1.2から26.2.0へ更新しました。 -
修正: slippageバッチでの最終Plutus ExUnits全体の会計処理を修正し、型付き検証のカバレッジを拡張しました。
-
変更: Ouroborosの構築で依存性注入を必須にし、ライブrestore中はインスタンスを安全にクローズして置き換え、ハンドラーを保持するようにしました。ライブラリの呼び出し側は、Ouroborosインスタンスの構築時に必要な依存関係を渡す必要があります。
-
追加: CIP-0163のdelegator inactivityによるwitness書き込みを、トップレベルの
delegatorInactivityEnabledおよびdelegatorInactivity設定と対応するCLIおよび環境バインディングで制御できるようにしました。このコンセンサスに影響する機能はデフォルトで無効で、Mithril bootstrapを有効にした構成では使用できません。 -
更新: Musashiプロトタイプのcardano-configsイメージを
20260817-1へ更新しました。プロトタイプのデプロイでは、このイメージで再ビルドと再デプロイが必要です。 -
制限: PeerGovernorのシャットダウンとledger peerのDNSおよびdiscoveryをcontextと共有シャットダウンタイムアウトで制限しました。
-
拡充: Mithrilの進捗とログにartifactおよびsnapshotの識別情報、フェーズ、アーカイブの集計ファイル数を追加し、並行するimmutableなダウンロードには1回のコールバックを使用するようにしました。
-
改善: 共有blobおよびメタデータストレージの準拠テストと移行テストを追加し、S3の空ページと
404レスポンスの処理を改善しました。 -
保持: 遅延したインデックス削除と再構築中にwitness cleanupで必要な
transaction_idインデックスを保持して修復し、APIモードのbackfill低下を防ぐようにしました。 -
更新: ルートのgouroboros依存関係を疑似バージョンからリリース済みの
v0.194.0へ変更し、protobufを更新しました。上流のdeep forkチェーン選択動作も取り込みました。 -
引き上げ: ネストされたモジュールのGoツールチェーン最低バージョンを
1.26.7へ引き上げ、govulncheckの継続的インテグレーションとpre-commit手順を追加し、スキャナーの呼び出し方針を更新しました。 -
強化: オプションかつ実験的なブロック処理パイプライン検証を強化し、リプレイで無効なOpCertおよびKESのケースを拒否し、エラーを伝播して永続化された失敗から復旧するようにしました。admissionの暗号処理はfail closedを維持し、有効にする組み合わせではShelleyの
slotsPerKESPeriodに0以外の値が必要です。このオプションはデフォルトで無効です。 -
段階化: 台帳のApplyイベントを永続的なcommitまで保留し、rollback前後のApplyとUndoの順序を直列化しました。失敗したトランザクションはApplyイベントを発行しなくなりました。
-
返却: read-onlyのstake distributionトランザクションクリーンアップエラーを返し、計算エラーと結合するようにしました。呼び出し側は、nilではないエラーと分布結果を同時に受け取る場合があります。
-
整理: アナライザーのクリーン性とテストおよびベンチマークの衛生状態を改善しました。プロダクション動作は変更していません。
-
保護: Mithril snapshotのダウンロードと展開で検証済みの
os.Rootハンドルを使い、検査と使用の間の競合によるシンボリックリンク脱出を防ぐようにしました。Goツールチェーン最低バージョンは1.26.7で、govulncheckがリリースのゲートになりました。 -
修正: Mithrilまたはgenesisからインポートしたアカウントのロールバック処理で、登録証明書を取得できない場合にもactive、pool、DRepの状態を復元するようにしました。既存のデータベースは自動的に更新され、アカウント状態とロールバック用の基準情報を一体で更新します。
-
停止: Mithrilのtrust window検証が許可された方法で復旧できない場合に、台帳処理を停止するようにしました。停止状態と復旧不能なtrust windowを示す永続的なシグナルおよびエラーの繰り返し通知により、新しいスナップショットまたはgenesisからの再同期が必要な状態を確認できます。
-
共有: 同一データのブロックとヘッダーのデコードをピア接続間で共有し、上限付きキャッシュとヒットおよびミスのメトリクスを使用するようにしました。デコードの重複処理を減らしながら、障害の影響を分離します。
-
検証: Dockerのビルド設定を検証し、イメージのビルド開始前にBuildKitチェックを通過するようにしました。未定義の環境変数展開がビルドに到達することもありません。
-
保持: genesisまたはbootstrap処理を再開する際にByron EBBの親状態を保持し、slot 0のEBB後に続く最初のByronブロックを正しく検証するようにしました。親の分類を利用できない場合でも、通常の検証を迂回しません。
-
制限: BlockFetchの購読者が保持するデコード済みブロックを1コミットバッチに、チェーンリプレイ中のデコードを50ブロックのバッチに制限しました。損失のないバックプレッシャーを維持しながら、保持するメモリを減らします。
-
拡張: Koiosの報酬アカウントパリティで、エポックごとにすべてのアカウントを正確に比較するようにしました。カバレッジを考慮した取得とキャッシュ、差分レポート、任意の単独アカウントチェック、負の猶予時間を拒否する検証を提供します。プロセス内observerのアカウントチェックはデフォルトで有効で、Koiosへのリクエスト量が増える場合があります。
-
改善: Bashの
idからDockerの想定ユーザーIDとグループIDを取得することでDevNetの移植性を高め、Linux、macOS、Windows Git Bashでクリーンアップのアサーションが動作するようにしました。 -
回復: 利用できない範囲の後にキューへ入ったblockfetch処理を、アクティブな最適ピアで再試行して復旧するようにしました。正常に開始した後だけ復旧を報告し、すべての試行に失敗した場合は古いピア選択を消去します。
-
省略: 開いたディレクトリの名前を変更できないプラットフォームではMithrilのディレクトリ交換リグレッションテストをスキップし、操作をサポートする環境ではカバレッジを維持します。
-
追加: リリース経路の外で、
mainへのpushと手動実行を対象にWindowsのビルドおよびテストを追加しました。ハングしたテストに対しては、ジョブの上限と診断情報を提供します。 -
解放: blobの同期失敗を含むすべてのトランザクション終了経路でコミットバリアを一度だけ解放し、後続の書き込みやスナップショット処理が停止しないようにしました。
-
更新: Antithesisの検証環境をgouroboros
v0.194.0、plutigov0.3.0、testifyv1.12.0へ更新し、間接依存関係も刷新しました。 -
復元: インポートしたキャプチャポイントを使ってMithril後のleaderチェックを復元し、エポック途中のbootstrap後に迎える最初の完全なエポックでstake threshold検証を適用するようにしました。従来の正確なanchorとの互換性は維持します。
-
削除: 利用できない
backbone.mainnet.emurgornd.com:3001エンドポイントをmainnetのトポロジーから削除し、再デプロイ後にノードがこのbootstrap peerを使用しようとしないようにしました。 -
引き上げ:
aws-sdk-go-v2を1.43.6から1.43.7へ更新し、S3のpresigningとHTTP 200エラー処理に関する上流の修正を取り込みました。 -
永続化: ShelleyとMusashiのextraConfigで有効なgenesis poolとdelegationをgenesisスナップショットの取得前に保存し、曖昧な重複pool割り当てを拒否するようにしました。スキーマ変更は必要ありません。
完全な変更履歴: v0.69.0…v0.70.0
Docs authored by Doc Holiday