Cardano Node 1.29.0

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

馴染みのコマンドや構成ファイルに変更があるため、注意が必要です。

(以下の記事は元のページを自動翻訳も使って訳したものです)

本リリースは、Alonzoハードフォーク後に必要となる機能を提供するノードの重要なアップデートです。 ステークプール運営者を含むすべてのユーザーは、ノードを本バージョン(またはそれ以降のバージョン)にアップグレードする必要があります。

このリリースには、Alonzo期のノードの使用を可能にする機能が含まれており、Plutusスクリプトのオンチェーン実行が可能になります。 Plutusスクリプト、データ、リディーマーを含むトランザクションの構築をサポートする拡張CLIコマンドを含みます。 これには、取引手数料とPlutusスクリプトの実行単位を計算する新しいtransaction buildや、ノード同期の進捗状況などの追加情報を提供する新バージョンのquery tipコマンドなど、いくつかの改良が加えられています。transaction buildコマンドでは、Plutusスクリプトの有効性をチェックし、手数料の計算に使用する情報を提供するために、ノードのローカルインスタンスが必要になります。シェリーの仕様も報酬計算に関して更新されました。

このリリースでは、TraceChainSyncHeaderServerおよびTraceChainSyncClientで設定されたトレースのログフォーマットが変更されることに注意してください。詳細は#2746を参照してください。

  • 1.29.0に移行する場合、SPOは以下の変更を行う必要があります。

    • mainnet-alonzo-genesis.jsonファイルのダウンロード

    • mainnet-config.jsonファイルを更新し、以下の2行を含める。

"AlonzoGenesisFile": "mainnet-alonzo-genesis.json",
"AlonzoGenesisHash": "7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874",

Node changes

  • Alonzoノードの実行をサポートするようになりました。( (#2642, #2649, #2657, #2738, #2759)

  • Alonzo用に別のgenesisファイルを追加しました。これは、Alonzo期にフォークする際に存在する必要があります。これは、Plutusスクリプトのコストモデルや価格設定など、Alonzoで必要となる新しいパラメータの初期設定を行います。(#2743, #2765)

  • Alonzo の genesis hash mismatch エラーを更新しました。 (#3003)

  • cardano-tx-generator を追加しました。これはテスト用のユーティリティです。 (#2603)

  • txジェネレータに追加機能を追加。

  • ロギングインフラの置き換えの一部である、trace-forwardライブラリを導入(#2960)

  • AddedToCurrentChainSwitchedToAFork のトレースにチェーンの長さの違いを追加 (#2678)

  • TraceBlockFetchServerSendBlockTraceForgedBlockCompletedBlockFetchイベントにブロックハッシュを追加しました (#2710)

  • 様々なChainSyncサーバのトレースに、デバッグに役立つ追加のフィールドを提供します。これはログフォーマットの変更を伴うことに注意してください (#2710)

  • 様々なドキュメントを更新しました (#2681, #2689, #2713, #2837, #2857, #2860, #2870, #2874, #2914, #2933)

  • 様々なビルド、テスト、ベンチマークのインフラを改善しました (#2672, #2676, #2682, #2705, #2719, #2722, #2730, #2737, #2748, #2766, #2768, #2777, #2796, #2812, #2813, #2826, #2827, #2831, #2832, #2833, #2849, #2855, #2861, #2864, #2865, #2866, #2879, #2887, #2888, #2894, #2900, #2902, #2909, #2912)

Consensus changes

  • Alonzo期を追加 (#3131, #3138)

  • デフォルトでAlonzo期を有効にする (#3295)

  • Alonzoアロンゾ期の追加テスト (#3191, #3210)

  • 元帳に提供されるEpochInfoが失敗することを許容する。これは、台帳が予測ウィンドウ外の時間変換を問い合わせる場合に必要です (#3098)

  • 新しいブロックを作成する際に、メモリプールが許容される実行ユニットの容量の制限をチェックするようになりました。これは、Alonzoで無効なブロックを作成しようとするのを避けるために必要です(#3224)

  • ノードがメモリプールの最大容量を、様々な要素(サイズ、実行ユニット)の観点から、ノード毎に変更できるようにしました(#3238, #3246, #3261, #3266)

  • Alonzoとの互換性のためにメモプールの設計を更新しました。これは2 段階の検証に対応するためにいくつかの追加ロジックを必要とします (#3066)

  • コンセンサスのドキュメントを更新 (#3071, #3155, #3195)

  • io-sim のテストインフラの更新(#3076, #3172, #3196, #3222)

  • ノードからクライアントへのクエリは、新しいクエリをノードに追加することに備えて、トップレベルのバージョンのあるQueryタイプでラップされるようになりました (#3106)

  • API/CLIで公開される追加のクエリをサポートしました (#3220)

  • ドキュメントの更新 (#3269, #3273)

  • ローカルウォレットからの無効なスクリプトを拒否するようにしました。これは、ノードがユーザーの担保を誤って失うことを防ぐためのフォールバック措置です (#3230)

Ledger changes

  • Alonzoデータ型のCDDLを定義しました (#2281, #2315, #2337, #2362)

  • Alonzo期のテスト作業 (#2259, #2261, #2263, #2272, #2275, #2279, #2280, #2293, #2311, #2334, #2340, #2361)

  • コンセンサスに依存している型のシリアル化のテストを追加しました (#2298, #2323)

  • CLIで使用されるようになった、TxInによるUTxOへの問い合わせ機能を追加しました (#2331)

  • Alonzoの正式な仕様の更新 (#2353, #2258, #2271, #2341)

  • AlonzoのIsValidatingフィールドの名前をIsValidに変更しました。(#2396)

  • Alonzo期のテスト (#2348, #2380, #2390)

  • AlonzoのTxを更新し、クライアントや他のノードから渡される有効性フラグを含むようにした(#2379)

  • 予測ウィンドウ内で、スロットタイムからUTCタイムへの変換機能を追加しました。これはPlutusのスクリプトで必要になります (#2297)

  • リリースで使用されるPlutusのバージョンを修正しました (#2369, #2372, #2384, #2420, #2425)

  • Plutusスクリプトに提示されるプロトコルパラメータのサブセットを正規にエンコード。これはユーザが提供するものではなく、ノードが生成するものなので、ここでは正規のエンコーディングを使用する必要があります(#2357)

  • CLIで使用するために、取引手数料を計算するユーティリティを追加しました (#2376)

  • 担保が失敗したときのエラーメッセージを改善しました (#2409)

  • Plutusのスクリプトが失敗したときに、その失敗をローカルに再現できるような報告を追加しました (#2386, #2430)

  • パフォーマンスクリティカルな機能のベンチマークを拡張しました (#2262)

  • イベントロガーを導入しました。これにより、下流のコンポーネントで使用するために、台帳が通常の動作中に追加の情報を発信できるようになります。最初の使用目的は、db-sync が報酬の計算を検証することです (#2373, #2405, #2417, #2431)

  • ブロックレベルの制限をコンセンサスで適用できるようにするため、ExUnitsを測定するユーティリティを追加しました(#2391)

  • ウィットネスセットに余分なリディーマーを入れないようにした (#2392, #2393)

  • リワードを獲得するためのスクリプトのステーククレデンシャルを許可 (#2400)

  • Shelley の仕様書を更新し、リワードのプロセスと様々な段階を描いた画像を掲載した (#2282)

  • 下記を解決するために、シェリー仕様にエラッタを追加しました。

    • リワードの計算とステークアドレスの登録タイミング。

    • バイロンのリディームアドレスがリザーブに戻されることについての注意を追加

    • リワードアグリゲーションの仕組みを正確に定義する

    • 仕様書と実装の間に安定性ウィンドウの使用に関する矛盾があります

    • 報酬の更新を行う際に、誤ったリザーブポットを使用している。 (#2323)

  • Shelleyの仕様とコードを一致させる (#2339)

  • プールのメタデータのハッシュを、そのようなハッシュに適したサイズに制限する(#2358)

Network changes

  • network-mux に取り組みました (#2999, #3100, #3121, #3160, #3166, #3193, #3204)

  • BlockFetch プロトコルに追加のトレーサーを追加 (#3190)

  • acceptループで発生する例外を監視するようになりました。これにより、acceptループが停止してノードが接続を受け付けなくなる問題が解決されます (#3299, #3305)

  • 仕様書の更新を行いました (#3257)

  • ネットワークドキュメントを更新 (#2887, #3071, #3089, #3126, #3217)

Cardano-cli changes

  • query tipのコマンドがより整然としたものになり(#2885)、追加情報を表示するようになりました。

    • バイロンの期にエポック番号を表示するようになりました。これまではシェリー期以降のでのみ動作していました (#2688)

  • IPv6/IPv4 アドレスを使用しようとしたときに、他方のアドレスを使用することが望ましい場合に、より親切なエラーメッセージを表示するようになりました。(#2691)

  • Alonzo期にクエリが動作するようになりました (#2727, #2755)

  • Alonzo期にトランザクションを送信することをサポートしました。(#2774, #2798, #2806, #2811, #2823, #2863, #2848)

  • cardano-cli genesis create は、新しい Alonzo genesis ファイルも作成するようになりました (#2743)

  • UTxO の CLI クエリに --tx-in フラグを追加することで、TxIn で UTxO をフィルタリングできるようになりました。また、完全な UTxO セットを返すには --whole-utxo フラグを追加する必要があります (これは以前のデフォルトでした)。全体のUTxOセットを返すのは、小規模なテストネットでしか使えない高価な操作なので、デフォルトのオプションとしては使いたくありません (#2843, #2854)

  • 有理単位(実行単価などに使われる)のパーサーが有理構文(例:1/2)をサポートしました (#2922)

  • CLIに "tx build "コマンドを追加しました。このコマンドは、取引に適した手数料を計算し、取引を適切にバランスさせることを行います。このコマンドは手数料のための入力選択を行わないため、計算された手数料を支払うためには入力に十分な残高が必要であり、Phase-2検証スクリプトが使用されている場合には十分な担保も必要となります。tx buildコマンドは、トランザクションサイズから必要な手数料と、スクリプトの実行によって発生する手数料の両方を計算することができます。 (#2921, #2953, #2995, #3025)

    プロトコルパラメータやgenesisの有理フィールドの出力フォーマットを改善しました。これらが単純な場合、10進数形式に変換するようにしました (#2992)

  • CLIのヘルプテキストのフォーマットを改善しました (#2945)

  • -script-valid および -script-invalid フラグを導入しました。後者はスクリプトが無効であることを示すために使用され、ノードはその スクリプトの送信を許可します(通常の運用では担保の損失を避けるためにそのような 取引を拒否します)。このフラグは、テスト時にのみ使用されます。デフォルトでは-script-validフラグが設定されています (#3050, #3091, #3093)

  • CLIの出力に色を追加しました (#3023)

Cardano-api changes

  • プロトコルパラメータ、Plutusスクリプト、副次的な入力を含む、Alonzo期のサポート (#2784, #2798, #2808, #2810, #2815, #2818, #2823, #2828)

  • Alonzoの元帳の状態を照会する機能を追加しました (#2974)

  • 関数 'getTransactionBodyContent' を追加しました。これは、時代別のボディからTxBodyの全体像を抽出するものです (#2663)

  • 新しいノードクエリのAPIサポートを追加しました。

    • QuerySystemStartは、システムの開始時間を取得します。

    • QueryStakePoolsQueryStakePoolParametersは、現在知られているステークプールの詳細を取得するために使用できます。

    • QueryUTxOFilterは、UTxO のフィルタリングされたサブセットを問い合わせる様々な方法を提供します (#2843)

  • 自動化されたトランザクション構築を支援するために、APIに関数を追加しました。

    • evaluateTransactionBalanceは、(部分的な)トランザクションの現在のバランスを計算します。これは、バランスを正しく取るために何をすべきかを判断するのに役立ちます(生産された価値と消費された価値が同じになるように)。

    • evaluateTransactionExecutionUnits は、(部分)トランザクション内のすべてのスクリプトで必要とされるExUnitsの数を計算します。

    • evaluateTransactionFee 与えられた数の VKey witnesses (入力に対応) を想定して、(部分的) トランザクションの手数料を計算します。

    • estimateTransactionKeyWitnessCount は必要な VKey witnesses の数を推定しようとします。

    • makeTransactionBodyAutoBalanceは、上記のツールを使ってトランザクションボディを作成し、自動的にバランスを取ろうとします。 (#2906)

  • 自動化されたTx構築のサポート (#2953)

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

  • ブロック折りたたみインターフェースが、ネットワークIDを台帳の設定から自動的に導き出すようになりました。 (#2955, #2975)

  • Tx出力がUTxOの最小値を満たしていない場合に発生するエラーを改善 (#3027)

  • APIドキュメントを更新しました。

Deprecated Features

Fixed Issues

  • Witnessのデシリアル化のバグを修正。これにより、トランザクション本体以外の署名を含めることができるようになり、その署名はデシリアライズされないため、チェーン上に残ってしまう可能性があります。残念ながら公開テストネットで観測されているため、Alonzo期以前もこの問題を許容し続けなければなりません。 (#2419, #2432)

Known Issues

  • 同期時間が 1.27.0 よりも 10%-20% 悪くなる可能性があります。

  • [FR] - txInfoSignatories用のplutusスクリプトに必要な署名者(reqSignerHashes)を渡す(#3106)

  • トランザクションの有効な時間範囲がScriptContextに渡されない (#3090)

  • Alonzo期のトランザクションで transaction viewが機能しない (#3039)

  • transaction buildコマンドで出金が機能しない (#3074)

  • [FR] - ネイティブトークンの出力先アドレスが変更先アドレスと同じ場合にラブレス出力が必要 (#3057)

  • Plutus トランザクションの txins がビルドコマンドで正しく検証されない (#3018)

  • 証明書が既に提出されている場合、transaction buildが正しくバランスしない (#3040)

  • transaction buildで、0 lovelaceのUTxOを変更として作成しようとする (#3041)

  • [FR] - キーロックされていない担保入力を拒否する (#3112)

  • [FR] - transaction buildでマルチアセットも自動的にバランスするようにする (#3068)

  • [FR] - トランザクションビルドコマンドに入力utxoの検証を追加 (#2996)

  • [FR] - Plutusスクリプトの失敗時に提供される追加情報のフォーマットを改善 (#3126)

  • [FR] - transaction buildコマンドの実行時に、トランザクション料金を返す (#3024)

Documentation

Platforms

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

  • Windows 64-bit (8.1, 10)

  • MacOS 10.13, 10.14, 10.15

Supported roles

  • An Intel or AMD x86 processor with two or more cores, at 1.6GHz or faster (2GHz or faster for a stake pool or relay)

  • 8GB of RAM

  • 10GB of free storage (20GB for a stake pool)

Minimum System Requirements

Platform

Block Production

Relay

Client (Desktop)

Linux

✔️

✔️

✔️

Windows

✔️

MacOS

✔️

Last updated