Cardano Node 1.31.0

ステークプールのアップグレード前に、内容をきちんと理解するためにまとめております。内容の保証はできかねるため、あくまで原文の補助としてお使いください。

Cardano node バージョン1.31.0では、以下のような新機能の追加やパフォーマンスの向上が図られています。 デフォルトのログ情報を減らし、メモリと時間の挙動を最適化しました。また、db-syncにおけるリワードロギングの改善、ステークプールを照会するための新しいCLIコマンドの追加、transaction buildCLIコマンドの強化、query tipの使用時に接続が切断される問題の修正、その他様々なCLIの機能強化が行われています。Plutus以前のタイムロック/マルチシグネチャスクリプトからの支出時にシグネチャを指定できるようになり、Plutusスクリプトのエラーログが改善され、新しいログモードが追加され、メモリプールのサイズを設定できるようになり、複数のバージョンのPlutusに対応し、ネットワークの動作と堅牢性が改善されました。すべてのユーザーがこの新しいバージョンにアップグレードすることをお勧めします。

変更のお知らせ

  • 最小 utxo 計算 cli コマンドのアップデート #3181 calculate-min-req-utxoは、Alonzo時代において必要最小のUTxOを計算するために、Valueの代わりにトランザクション出力(TxOut era)を必要とします。これはAlonzo時代に必要なことで、一貫性を保つためにすべての場所で変更されています。

技術仕様

最小システム要件

  • Intel or AMD x86 プロセッサ(2コア以上)、1.6GHz以上(ステークプール、リレーノードは2GHz以上)

  • 12GB RAM

  • 20GBディスク容量

プラットフォーム

  • Linux 64-bit (Ubuntu 18.04 LTS, 20.04 LTS; Mint 19.3, 20; Debian 10.3)

  • Windows 64-bit (8.1, 10, 11)

  • MacOS 10.13, 10.14, 10.15, 11

サポートされる役割

ダウンロード

ドキュメント

変更履歴

ノード

  • 設定ファイルの追加検証:

    • git の設定ファイルが nix のビルド時に生成されたものと一致しているかどうかを CI でチェックする機能を追加しました。 (#3222)

    • 設定ファイルが有効かどうかのテストを追加しました。 (#3236)

  • 各種ドキュメントの更新。 (#3060, #3120, #3142, #3191, #3243, #3265, #3284)

  • trace-dispatcherライブラリを導入。これは、既存のiohk-monitoring-frameworkを置き換えるために構築されています。(#3073)

  • Plutusスクリプトをstake credentialとして使用する例を追加。 (#3162)

  • ProtocolParametersの変換時にmaybeToStrictMaybeの呼び出しをインライン化しないようにしました。これはGHCのバグを誘発することが判明し、結果的にコンパイル時間が非常に長くなります。 (#3275)

  • mainnetの設定ファイルにYAML版を導入し、様々なオプションを説明するためにコメントをつけることができるようになりました。 (#3269)

  • 様々な追加メトリクスの追加:

    • ブロックプロパゲーションについて (#2476)

    • ノードが下流のピアに提供したチップの数を追跡する。(#3300)

    • 発生したフォークの数を数える。 (#3305)

  • mempool capacity override を設定する機能を追加しました。これにより、個々のノードオペレータは、様々な軸(サイズ、実行単位)に沿って、mempoolの最大サイズを変更することができます。 (#3273)

  • 一部のログメッセージの、ノードログに過剰な詳細情報が含まれる冗長性を修正しました。 (#3046)

コンセンサス

  • ドキュメントの改善 (#2957, #3279)

  • トレースの厳密性アノテーションを削除しました。(#3244)

  • 台帳のイベントロガーを公開する。(#3292)

  • アロンゾのプロトコルバージョンをサポート。(#3347)

  • db analyserツールをオーバーホールします。これによりledgerチームは、他のレイヤー(ネットワークなど)からのノイズを排除してマイクロベンチマークを実行できるようになります。(#3337)

  • db-analyserに機能を追加。(#3376, #3379, #3397, #3400, #3414, #3418)

  • ノードからクライアントへのプロトコルに新バージョン(10)を追加し、2つの新しいクエリを追加しました。GetChainBlockNoGetChainPointです。(#3346)

  • mempoolの容量をオーバーライドする機能を公開する。(#3413)

レジャー

  • イベントロガーの追加・修正。(#2441, #2487)

  • メモリの最適化。(#2442)

  • Alonzoの正式な仕様を更新しました。(#2418, #2448)

  • db-syncの統合に必要な追加のエクスポート。(#2450)

  • プロトコル関連の型を新しいモジュールであるcardano-protocol-tpraosに移動しました。(#2445)

  • 台帳の状態をディスクに保存するための準備作業。(#2449)

  • Shelley formal specのCHAINHEADルールを更新しました。(#2313)

  • 報酬の計算に関する詳細な情報を、報酬の実績の内部に提供する。(#2433)

  • RetiredPoolsイベントを追加しました。このイベントでは、引退するプールの詳細と、プールの保証金の返金の有無が確認できます。(#2487, #2495)

  • トランザクションのCDDL仕様を修正しました。(#2456, #2507, #2523)

  • インフラとドキュメントの改善 (#2499, #2500, #2508)

  • 移行期のPraosプロトコルの定義を因数分解し、元帳から分離するための様々な作業を行いました。これは、Babbageのリリースでコンセンサス・プロトコルの新バージョンを導入することを想定してのことです。(#2491, #2505, #2510, #2516, #2518)

  • アロンゾの最小値計算を文書化する。(#2486)

  • Cardano 台帳の状態のメモリ内表現をコンパクトにするための様々な変更:

    • TxIdをトランザクション入力で展開します。(#2501)

  • PlutusのV2(および一般的に複数のPlutusバージョン)のサポートを追加。 (#2485)

  • 報酬計算に関するより多くの情報をAPIで公開します。これは、ウォレットでのプールランキングの表示を改善するためのものです。(#2511)

  • 仕様書にValueTxInfoの両方を記載する。 (#2383, #2494)

  • 複数のPlutusバージョンがある場合のAlonzoトランザクション・ウィットネスのシリアル化を修正しました。(#2525, #2526)

  • 報酬を段階的に計算する際に、エポック終了から2k/fスロット以内の最初のブロックまでに計算が完了するようにしました。以前は、エポックの終わりまでに完了する必要がありました。これは、エポック終了前にdb-syncがこのエポックで配布された報酬(かなりの量になる可能性があります)をデータベースに挿入する時間を確保するためです。(#2521)

ネットワーク

  • トレースイベントに詳細な情報を追加 (#3333)

  • OS/XでIPv6ソケットのacceptを呼び出すバグの回避(#3368)

  • P2P機能の継続的で緩やかな統合。(#3369, #3370, #3371, #3372, #3373, #3374, #3377)

  • その他のドキュメントの変更. (#3383, #3399)

  • スレッドトラッキングセットの競合状態を修正しました。これにより、ノードが新規の接続を受け付けなくなることがあります。(#3398)

Cardano-cli

  • buildコマンドまたはbuild-rawコマンドを使用してmultisig/timelockスクリプトから支出する際に、必要に応じて署名を指定できるようにします。必要な署名者はwitnessの中に存在する必要があり、必要な署名者のみがPlutusスクリプトに表示されます。(#3123)

  • query tipコマンドに別の接続を使用するようになりました。これにより、時折発生するquery tipコマンドが失敗するバグが修正されました。(#3130)

  • tx buildコマンド使用時にTx料金をプリントします。(#3032)

  • tx buildコマンドは、入力を検証するようになりました(UTxOにあること、基本的なVKeyロックされた入力のみが担保として使用されていることを確認します)。(#3151)

  • 新しいコメントを追加して、ステークプールを照会します。 (#3152)

  • tx buildでは、既存のステークプールのセットを使用して、プールがすでに登録されているかどうか(したがって、デポジットを支払う必要があるかどうか)を判断するようになりました。(#3152)

  • calculate-min-req-utxo は以前のように単なる値ではなく、トランザクションの出力を要求するようになりました。これはAlonzo時代に要求されたもので、一貫性を保つためにすべての場所で変更されています。(#3181)

  • tx buildコマンドがUTxOの全体を費やしても、変更のない出力を作成できるようになりました。(#3188)

  • tx viewコマンドに引出しを追加。 (#2613)

  • 1.27.0以前のノードバージョンで構築されたトランザクションのデシリアライズのサポートを再開しました。 (#3226)

  • query tipコマンドで、新しいGetChainBlockNoGetChainPointクエリを使用します。full chain sync queryを使用する古い方法へのフォールバックがあります。(#3179)

  • CLIオプションの--tx-out-datum-embed-valueを使用して、トランザクションにオプションのデータを提供できるようになりました。このメカニズムは、例えば、出力をロックする実際のスクリプトを提供し、それを支出する際に使用することができます。(#3171)

  • transaction buildコマンドを使用した引き出しの使用を修正しました。(#3317)

  • 拡張されたpayment keysをPlutusで要求された署名者として指定できるようになりました。 (#3319)

Cardano-api

  • ledger state APIの改善。(#3143)

  • 単数クエリの使用を容易にする。(#3151)

  • getBlockHeaderをAlonzoに実装する。これは、APIにAlonzoを実装する際に見落とされた関数です。(#3158)

  • APIコンシューマーのためのいくつかの追加エクスポート。(#3156)

  • APIを介して台帳イベントを公開する。台帳イベントは、消費者が台帳内で起こっていることについての詳細を受け取る方法を提供し、db-syncなどのツールで使用されます。(#3085)

  • Plutusのスクリプトを使用して、Plutus以外のロックされた入力を使用しようとしたときに報告されるエラーメッセージが改善されました。(#3187)

廃止された機能

修正された問題

chainSyncServerHeaderTracerの設定を修正しました。これにより、ログが不必要に冗長になるバグが修正されました。(#3252)

  • 新規の接続に対してノードが反応しなくなることがあるバグを修正しました。(#3335)

Last updated