リリースノート - v0.70.13
v0.70.13
Section titled “v0.70.13”タイトル: ストレージの耐障害性、ネットワーク互換性、ノードの可観測性を改善
日付: Not provided
バージョン: v0.70.13
リリース: v0.70.13
このリリースでは、SQLiteストレージの保守、bootstrapの検証、ガバナンス互換性、プロトコル処理、ネットワーク設定、ヘルスモニタリング、運用診断を改善しました。また、Cardano nodeの互換性要件を更新し、trusted Mithril importの性能を向上させました。
推奨ネットワーク互換性 ⚠️
Section titled “推奨ネットワーク互換性 ⚠️”| Network | Compatible |
|---|---|
| mainnet | ⛔ |
| preprod-testnet | ✅ |
| preview-testnet | ✅ |
| musashi | ✅ |
重要: mainnet設定ではGenesisModeを使用するようになり、Cardano node 11.1.0以降が必要になりました。
✨ ハイライト
Section titled “✨ ハイライト”-
改善: SQLite WALの保守を強化し、専用connectionと
250 msのtimeoutを使用する定期的なbest effortのTRUNCATEcheckpointを実行するようにしました。lifecycle変更中は安全に停止します。 -
記録: importしたreward snapshotに現在の
RewardStakeCalculationVersionを記録し、新しいMithril bootstrapでaccounting-version validationを通過できるようにしました。 -
保護: consumed UTxOのretention floorより前にcore storageをtruncateしないようにし、valid queryに必要な履歴を保持するようにしました。
-
更新:
GetGenesisConfigをcompactなNtC 21+layoutに更新し、古いcallerまたは直接呼び出すcallerにはlegacy encodingを引き続き使用するようにしました。 -
保持: typed DRep credential identityを保持し、metadata migration v16でnullableなgovernance proposal anchorを追加しました。SQLite migration expansionをatomicにし、conformance、replay state、peer trace selectionも改善しました。
-
拒否: rollback後にoriginの途中から始まるfirst blockを拒否し、無効なchain restartをノードが受け入れないようにしました。
-
設定: Koiosに明示的なdial、TLS、response header、client timeoutを設定し、外部リクエストが定義済みの制限時間内に失敗するようにしました。
-
効率化: reward live stakeのprepared statementを各transaction内でbounded retention付きでcacheし、statementの繰り返し準備を減らしながら、無期限に保持しないようにしました。
-
受け入れ: valueがzeroのByron outputを受け入れつつ、
OutputNegativeByronErrorによるnegative valueの拒否を継続するようにしました。 -
修正: Dijkstraでcaptured slotのVRF keyをelectするように修正し、既存のConwayの動作を維持しました。
-
分離: BlockFetch endpointのtest fixtureを分離し、endpointの動作が各テスト間で独立するようにしました。
-
更新:
gouroborosをv0.205.2へアップグレードし、関連するaddress handling、keepaliveの動作、local transaction submissionを更新しました。 -
同期: mainnet、preprod、previewのnetwork configuration、topology、snapshot、およびMusashiのloggingを更新しました。
-
集約: 共有Koios reward accountを集約し、各poolのdiscrepancyを正確に報告するようにしました。
-
拡張: optional block pipelineのdecodeおよびvalidation workerを、サポート範囲
2から8内のGOMAXPROCSに合わせて拡張し、continuation auditとrecovery rewindの処理を修正しました。 -
制限: hard fork summaryのdurationに上限を設け、summaryがサポート上限を超えることを許可せず、overflow errorを報告するようにしました。
-
検出: classic quorum based hard forkを事前に検出し、successor horizonをlive chain tipに固定するようにしました。
-
可視化: query duration histogramによってSQL observabilityを拡張し、disk metricのscrapeがSQLite writeをブロックしないようにしました。
-
公開: 専用の設定可能なlistenerで
/health、/healthz、/readyzを公開し、DockerおよびMithrilのhealth checkと統合しました。 -
維持: confirmed historyがwall clockに遅れている場合に限り、startup operational certificate KES plausibility checkを遅延させ、runtime enforcementは維持するようにしました。
-
無効化: CIでpersisted checkout credentialを無効にし、benchmark publishingに明示的なauthenticationを要求するようにしました。
-
緩和: unregistered DRepによるvote delegationについてのみ、Conway protocol version 9 checkを緩和しました。
-
引き上げ: SQLiteの
wal_autocheckpointを10000pagesに引き上げ、SQL operation、WAL activity、disk usageのmetricを追加しました。 -
同期:
cardano-configscontainer imageを、埋め込まれたconfiguration fileと同期させました。 -
並列化: trusted Mithril block decodingをordered batchでparallelizeしました。
-
キャッシュ: SQLiteおよびPostgreSQLで
insertUtxoModelのUTxO INSERT operationとasset ID lookupのcacheを追加し、dialect-aware handlingによってMySQLのRETURNING動作を維持しました。関連するBenchmarkInsertUtxoModelbenchmarkでは、cached pathのns/opがlegacy one-shot pathより約15–30%低くなりました。ただし、この結果はこのbenchmarkにのみ適用され、普遍的なperformance guaranteeを示すものではありません。 -
強化: chain selectionに
2-secondのswitch-back cooldownを追加し、restartによってforkが延長された場合もhealthyなin-flight block fetch batchを維持し、回復不能なrestart failure後にresynchronizeするようにしました。 -
集約: reward live stake refreshを統合し、各unique stake credentialをtransactionごとに一度だけrefreshするようにしました。
-
置換: local DMQ phase 2 authenticatorを
gouroborosのMessageAuthenticatorに置き換え、dmq.AuthenticatorとNewAuthenticatorを削除しました。node wiringは将来の更新用に予約しました。 -
明記: PreprodおよびPreviewについて、environmentごとのMithril API mode bootstrap measurementをREADMEに記載し、その値はcapacity guaranteeではなくplanning baselineであると明示しました。
-
検証: UTxO parsing中にShelley pointer address payloadを検証し、不正なpointerを拒否するようにしました。
-
拡張: deterministic Leios fetchのregression coverageを拡張し、deadline boundaryをテストするようにしました。
-
更新: Antithesis scriptを更新し、
cardano-cli latest stake-address key-hashでstake address key hashを取得するようにしました。 -
制御: API listenerのstartをgateし、context monitorに上限を設け、restart後もlifecycle stateが保持されないようにしました。
-
固定: 利用可能な場合はstable chain tipを基準にforging header encodingとKES signingを行い、live tipより後にならないnon-genesis candidate slotを拒否するようにしました。
-
増強: test genesisの
maxLovelaceSupplyを引き上げ、preflight validationを追加し、key ownershipとBash compatibilityを修正して、MinIO imageをQuayへ移動しました。 -
再利用: batch API transaction writeでtransaction-scoped prepared statementを再利用し、MySQLの
LastInsertIdhandlingを使用するようにしました。 -
予約: claimをpublishする前にLeios fetch capacityを予約し、manifest claimとtransaction claimを分離して、claimを正しく解放するようにしました。
-
適用: active Byron fee policyを使用してByronのminimum implicit transaction feeを適用し、transactionがminimumを下回った場合に
FeeTooLowByronErrorを報告するようにしました。
Docs authored by Doc Holiday