Cardano Node 1.35.0
Vasil HFCイベント前の大型アップデートです。ステークプールのアップグレード前に、内容をきちんと理解するためにまとめております。内容の保証はできかねるため、あくまで原文の補助としてお使いください。
Last updated
Was this helpful?
Vasil HFCイベント前の大型アップデートです。ステークプールのアップグレード前に、内容をきちんと理解するためにまとめております。内容の保証はできかねるため、あくまで原文の補助としてお使いください。
Last updated
Was this helpful?
Node 1.35.0は、Vasilハードフォーク後のPlutusの新機能の使用を可能にする重要な機能を追加し、以下のノードとCLIのサポートを含みます。
入力の参照
インライン・データム
スクリプトの参照
担保の出力
Plutus v2プリミティブと関連する新しいコストモデル
また、ロギング/モニタリング、ネットワーキングのコードベースが大幅に改良されたほか、拡散パイプラインの初実装、VRFチェックの低減など、メモリと時間のパフォーマンスが大幅に向上し、さらに台帳にもいくつかの改良が加えられています。
本バージョンでは、特にCLI操作上の運用証明書に関して、以下のような重要な変更が行われていますので、ご注意ください。この変更に対応するために、Stake poolのオペレータは、管理スクリプトを更新する必要があるかもしれません。
このバージョンでは、元帳の状態を最初のブロックから再生する必要があり、最初の同期に時間がかかる可能性があります。ユーザーはノードをデプロイする際にこれを考慮する必要があります。
バベッジの時点で、運用証明書(op cert)のカウントアップ番号を制限しています。以前は、op certの発行番号は、以前使われていた番号より大きければ、何でもよかったです。現在、op certカウンタは、以前に使用されたop certより正確に1つ多くなければいけません。
更新可能な分散化プロトコルパラメータ('d')は、Babbageから削除されました。現在の設定から変更できなくなります。(完全分散)
バグフィックス:Babbageから、トランザクションの有効間隔が実際に制限されるようになります。
▼最小システム要件
2コア以上のIntel / AMD x86 プロセッサ, 1.6GHz 以上, (ステークプール、リレー向けには2GHz以上)
16GB のRAM
75GB のストレージ空き容量 (将来向けには100GBを推奨)
▼プラットフォーム
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
▼サポートされる役割
Linux
✔️
✔️
✔️
Windows
❌
❌
✔️
MacOS
❌
❌
✔️
▼ダウンロード
以下、ノード開発情報ではないため略
既知の問題点についてはをご覧ください。
⚠️ 同期に関する問題のため、Windowsユーザーはこのリリースにアップグレードしないでください。
SIGTERMをSIGINTに変換するRTSワークアラウンド ()
非 p2p モード用のダミー SIGHUP ハンドラをインストールする ()
Shutdown-on-slot-syncedテストを追加し、ExitSuccessを確保する ()
cardano-node: --shutdown-on-block-synced を実装する ()
依存関係やピンを更新する ()
ブロックタイプでプロトコルを伝搬する ()
正しい権限で VRF 署名用キーファイルを作成する ()
ChainDBトレーサーの省略を修正 ()
コンフィギュレーション構造の見直しによるUXの向上 ()
実装のリワークをしトレース定義からプロトタイプを削除する ()
新しいトレースシステムを選択できるようにトレース設定を修正 ()
GC メトリクスを登録 ()
メトリクスは、重大度と頻度制限の影響を受けなくなりました ()
ekg-direct のメトリクスを new-tracing に移植する ()
ノード状態データポイントの拡張と修正 (, )
新しいトレースで古いピアのトレースが誤って呼び出されていた ()
TraceConstraintsから未使用の制約を削除する ()
必要に応じてトレース転送の適切な開始 ()
転送されるトレースのフォーマット修正 (, , , ).
テスト修正 ()
シンボリックリンクの削除、ログの切断の修正 ()
空行のバグを修正 ()
cardano-tracerの一部としてRTView, ウェブパフォーマンスダッシュボード ()
RTView: CPU使用率(GC + App) (パーセント)、https (デフォルト)、エラーエクスポート ()
Haskell のインストール方法の更新と libsecp256k1 への言及 ()
cardano-node-cli-reference.md を更新 ()
新しいトレースに関するドキュメントを改善(, )
推奨システム要件 ()
libsodium
のインストールについてさらに詳しく説明()
ワークベンチ、ビルド、テスト、ベンチマークの各種インフラの改善(, , , , , , , )
ブロック拡散パイプライン (, , , )
バベッジ時点で、2つのVRFチェックから1つに移動 ()
バベッジ時点で、op cert発行番号のインクリメントを制限 ()
新しい関数 getOpCertCounters ()
バグフィックス: バベッジ時点で、トランザクションの有効間隔が実際に制限されるようにした。 ()
簡略化: dが0のままなので、BabbageはTransitional Praosではなく、本来のPraosプロトコルを実行する。()
プロトコル: PraosProtocolSupportsNode
クラスの追加()
帳尻合わせに失敗することもあるEpochInfo
の提供 ()
FallingEdge
パターンの同義語に COMPLETE
プラグマを追加 ()
簡略化:古くなったハンドシェイクのバージョンを削除 (, )
バベッジ時代の実装 (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )
テイラー級数近似による指数関数の計算のバグを修正しました。 このバグがコードに現れることはなかったが、この修正は将来の耐障害性のために有用である。 ()
Alonzo CDDL仕様に不足しているプロトコルパラメータを追加 ()
台帳とTPraosプロトコルの分離に取り組む。 (, , , , , , , )
Plutus V2で、固定長リストを使って整合性ハッシュのコストモデルをエンコードする。 ()
全時代にわたる追加テスト(, , , , , , , , , , , , )
様々な内部リファクタリングと小さな修正 (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , )
MIRの証明書において、正しい転送のみ許可されるようにチェックを追加する。 ()
実行中の台帳のメモリ使用量を削減するためのさまざまな作業 (, , , , , , , , , )
台帳の性能を上げるためのさまざまな作業 (, , , , , , , , , , , , )
Alonzo genesis用のJSONシリアライザー/デシリアライザーを追加しました。これは台帳では使われませんが、ノードでは使われるかもしれません。()
報酬に関連する2つの新規イベントを追加 - DeltaRewardEvent
と
TotalRewardEvent
です。前者は計算中に増分報酬を与え、後者は計算が終了した時点で結果を報告する。 (, , , )
リワードイベント、RestrainedRewards
を追加。登録解除などの理由でその後支払われなかったリワードの詳細が含まれます。 ()
スナップショットされた時刻のステーク分布が得られるイベントを追加する。()
Plutusスクリプト実行に関連する2つの新規イベントを追加.
IsValid
がtrueでエラーがない場合、SuccessfulPlutusScriptsEvent
が放出される。 このイベントには、トランザクション内のすべてのスクリプトをリターンするために必要なすべての情報が含まれています。IsValid
が false であり、かつエラーが存在する場合、2つのイベントが発行されます。成功したスクリプトを含む先行イベントと、失敗したスクリプト詳細とFailedPlutusScriptsEvent
です。()
エポック境界で発行されるイベントTotalAdaPotEvent
を追加。 様々なADAポット(リザーブ、トレジャリー、リワードポットなど)の大きさを報告するイベントです。
()
トランザクションにおいて、バイロン出力と、Plutus V2のロックされた出力を使うのをできないようにする。PlutusV1スクリプトは、バイロン出力と同じトランザクションで使用することができます。しかしByronの出力は、Plutusでは見えません。()
テストにおけるメモリーリークを修正 ()
コストモデルキーのリファレンスを追加する ()
シェリー仕様の中で、シードの計算方法、およびスロットからシードへの変換方法を指定する()
ベンチマーク・スイートの大幅な改良 (, , )
報酬の増分計算に使用されるパルスサイズのフィックス。その結果、エポック内の負荷がより均等になるはずです()
未使用のcardano-ledger-example-shelley
パッケージをプルーニングしました()
STSのルールに、まだ失敗が蓄積されていない場合にのみ、特定の処理を実行するロジックを追加。これは、例えば、トランザクションが壊れている場所でPlutusスクリプトを評価するのを避けるのに便利である(, )
CostModel
コンストラクタを隠す。適切なCostModel
の構築方法は costModelParamsToCostModel
を使うことです(, )
ブロックの処理に必要なUTxOエントリーのセットを問い合わせることをサポートします。これは、UTxOをディスク上に移動する際に必要となる重要な機能である。 ()
Byron/Shelley トランジションでの AVVM アドレスのスタッシュのサポートを追加。ディスク上のUTxOを有効にするのは少し面倒な作業です。AVVM アドレスはShelleyとAllegraの境界で削除されなければならない一方で、UTxOがディスク上にある時点では (Shelley以降)、UTxOに対する完全なクエリを禁止しているためです。 ()
Datum
の台帳ベースのバリデーションを削除する。これは現在、完全にPlutusによって行われます ()
すべての元帳イベントに関するドキュメントを追加します。これは以下の場所で見ることができます。 ()
アロンゾの時代において、Plutusから提供されたエポック情報を拡張し、未来への時間変換を任意に行えるようにする。これは、コンセンサス のバグに関連するもので、前時代にのみ任意に離れた翻訳を可能にしていました。このバグは修正されましたが、台帳は既存の時代の以前の挙動を維持しなければなりません。()
JSONデシリアライザーでレガシーコストモードパラメーター名を翻訳するようにしました。 デシリアライザは名前を気にせず、パラメータの順序だけを気にするようになりました。これは、更新提案におけるコストモデルパラメータの扱い方と一貫しています。 ()
純粋なEpochInfo
が過剰に使用されないようにする。 ()
空のtxbodyフィールドをシリアライズしない()
空のSuccessfulPlutusScriptsEvent
イベントを取り除く ()
ステーキングの Ptr最適化の無効化 ()
整合性ハッシュはすべてのrefスクリプトで必要ありません ()
多ノード拡散シミュレーション ()
inboundGovernorLoop により出力されるトレースの例外 ()
prop_timeouts_enforced を追加 ()
IOSimPORを使ったコネクションマネージャーのテスト ()
localrootpeers のルックアップ結果を上書きしない ()
muxのtcpベアラのtcp_infoを抽出 ()
IOSim MonadFixのインスタンス ()
io-classes: traceTVar と traceTMVar の 厳格なバージョンを追加 ()
プラットフォームに依存しないTCPInfoトレース ()
IOSimPORを用いたコネクションマネージャ移行順序テスト ()
IOSimPORからST効果を削除しました ()
RootPeersDNS: DNSの結果をガベージコレクトし、真実の単一ソースをテスト ()
net-simテストでのaccept errorsを有効にする ()
cardano-pingの対応プロトコルバージョンの更新 ()
yield
を MonadFork
に追加()
拡散試験 (, , , , , , , )
cardano-ping: unless quiet
の誤植を修正。()
FFI経由ではなく、ベースからgetMonotonicNSec
をインポート()
connection-manager: ミニプロトコル・パラメータ ()
TxSubmission V1およびNodeToNodeV_6より小さいか等しいすべてのノード間バージョンを削除 ()
NodeToClientV_8以下を削除 ()
既知の無効なブロックに対する厳しすぎる切断ルールの緩和 ()
io-simとtyped-protocolを新しいリポジトリに移動()
BabbageとP2PのNodeToNodeVersionを修正 ()
各種変更 ()
chain-syncのドキュメントを更新 ()
network-muxのタイプミスを修正()
ドキュメントリンクに最近のnixビルドの変更を反映 ()
タイプミスを修正 ()
cardano-api と cardano-cli に Vasil ハードフォークを追加 ()
リファレンススクリプトの統合 ()
Plutusv2リファレンススクリプトの残りのタイプをつなげる ()
署名付きトランザクション(エンベロープ)のフレンドリーな出力表示を追加 ()
cardano-cliのトランザクションビュー: フレンドリーな証明書出力表示の追加 ()
cardano-cliのクエリ kes-period-info: 常にメトリクスを表示 ()
リーダーシップスケジュールのJSON形式()
Vasil cardano-cli のアップデート ()
担保のリターンにリファレンススクリプトやデータムが含まれないようにする。 ()
kes-period-info のプロパティテスト ()
deserialiseFromRawBytesHex を拡張し、エラーの説明を生成するようにしました ()
genesis create-cardano コマンドを追加します。 ()
ブロックタイプでプロトコルを伝搬する ()
kes period infoコマンドの修正 ()
正しい権限で VRF 署名用キーファイルを作成 ()
cardano-cliでローカルエンコードをUTF-8に設定 ()
example-reference-script-usage.shを更新し、インラインデータムも使用できるようにした ()
cardano-cliで簡単なリファレンススクリプトを組む()
cardano-api と cardano-cli に Vasil ハードフォークを追加 ()
リファレンススクリプトの統合 ()
Plutusv2リファレンススクリプトの残りのタイプを追加 ()
IsString
(ハッシュ ブロックヘッダ)の追加 ()
LedgerStateEvents
型のエイリアスにする ()
プロトコルエポックステートデコードエラーを伝搬 ()
cardano-apiでtx mempool monitoring ミニプロトコルを公開する ()
カルダノAPIにおけるバベッジ機能統合 その1 ()
未使用のパッケージを削除する ()
BlockInModeにIsCardanoEra
制約を追加 ()
cardano-api の TxOut をインラインデータで更新 ()
cardano-apiのtxoutをリファレンススクリプトで更新 ()
カルダノAPIでリターンと総担保を実装 ()
cardano-api に参照トランザクション入力を追加 ()
Txおよびレファレンススクリプトのデータを修正 ()
API機能 cddlTypeToEra
をバベッジ時代に対応()
TxWitness BabbageEraのタイプミスを修正 ()
KES-period-info プロパティテスト ()
deserialiseFromRawBytesHex を拡張し、エラーの説明を生成するようにしました ()
genesis create-cardano コマンドを追加 ()
ブロックタイプでプロトコルを伝搬 ()
正しい権限で VRF 署名用キーファイルを作成 ()
example-reference-script-usage.shを更新し、インラインデータムも使用できるようにした ()
削除されたコメントの復元 ()
プロトコルパラメータに分散化パラメータを要求しない ()
submit-apiのためのBabbageトランザクション ()
ChainDBトレーサーの省略を修正 ()
KES期間情報コマンドの修正 ()
Txおよびレファレンススクリプトのデータを修正 ()
バグフィックス: トランザクションの有効期限は、Babbageのように、実際には制限されま ()
テイラー級数近似による指数関数の計算のバグを修正しました。このバグはコードで表示されることはありませんでしたが、この修正は将来の弾力性に有用です ()
報酬の増分計算に使用されるパルス状のサイズを修正。その結果、エポック内の負荷がより均等になるはずです ()