Add a dedicated pool registration certificate creation command to register or update a pool’s BLS key using existing pool parameters

オープン
#1,479 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@carbolymer がすでに取り組んでいます。

2026年10月28日 から。

  • #1490 @carbolymer による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
52/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
haskell
領域
blockchain, cli

調査の方向性

Start by reading the existing stake-pool certificate creation commands and the code that queries or reads pool parameters and validates BLS keys and proofs of possession. Trace how pool-registration certificates are serialized and how transaction witnesses are assembled. Done means the new command supports all three parameter sources, preserves unrelated parameters, validates the BLS inputs, and its documentation shows collecting owner witnesses and assembling the signed transaction.

索引モデルが issue の本文から書いたものです。

説明

Problem

Registering or rotating a pool’s BLS key currently uses a pool-registration certificate, which includes the pool’s other parameters. Operators should be able to change the BLS key without manually supplying every unrelated parameter again or risking accidental changes.

Related: https://github.com/input-output-hk/ouroboros-leios/issues/1093

Proposed command

Add a dedicated command under stake-pool to generate a pool-registration certificate that changes only the BLS key and its proof of possession.

The command should accept exactly one source of existing pool parameters:

  • Pool ID: query a node for the pool parameters.
  • Pool parameters file: read explicitly supplied parameters, supporting offline use.
  • Existing pool-registration certificate: extract the parameters from that certificate, supporting offline use.

The command should also accept the new BLS verification key and proof of possession, and an output file for the generated certificate.

The output should use the existing pool-registration certificate type.

Expected behavior

  • Accept exactly one source of existing pool parameters.
  • For file inputs, use the supplied values and validate the file type.
  • When querying by pool ID, let the caller choose current or pending parameters.
  • Preserve all selected parameters except the BLS key and proof of possession.
  • Support both initial BLS registration for an existing pool and subsequent BLS key rotation.
  • Validate the supplied BLS key and proof of possession.
  • Clearly report the pool identity and the BLS change being made.

Signing workflow

The generated certificate can be included in a transaction using existing commands. The transaction body can then be distributed to pool owners, who independently create witnesses and return them for assembly.

Document the required authorizations:

  • Pool cold key.
  • Every owner stake key listed in the generated certificate.
  • Authorization for the transaction’s spending inputs.

All witnesses must refer to the same unchanged transaction body.

Acceptance criteria

  • Operators can produce a BLS registration/update certificate using any of the three parameter sources.
  • File-based inputs work without a node connection.
  • All unrelated pool parameters are preserved.
  • Documentation includes an example of collecting owner witnesses and assembling the signed transaction.

This simplifies certificate preparation without changing ledger authorization requirements.

主要言語
Haskell
スター
72
フォーク
26
平均マージ
2日 2時間
マージ済み PR(30日)
21

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

IntersectMBO/cardano-cli のほかの issue

IntersectMBO/cardano-cli の issue をすべて見る

似ている issue

Haskell の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。