mcpField
M
midnight-consensus

midnight-consensus

github.com/kali-decoder開発18123 回インストール1 日前に更新
リポジトリ

midnight-consensus について

Midnight NetworkのSubstrate改変版コンセンサスを解説するスキルです。AURAによるブロック生成、GRANDPAによるファイナリティ、Cardano SPOの委任と任意の許可型バリデーターを用いる選出方式を扱います。

主な機能

  1. 01AURAのラウンドロビン型ブロック生成
  2. 02GRANDPAの非同期ファイナリティ
  3. 03SPO委任を含むバリデーター選出
  4. 04任意の許可型バリデーター

活用シーン

  1. 01Midnightのブロック生成の理解
  2. 02ブロック確定方式の調査
  3. 03バリデーター資格モデルの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/kali-decoder/midnight-skills --skill midnight-consensus

インストール後、Claude Code で/midnight-consensusを入力して読み込まれたか確認します。

詳細

Midnight Consensus

Midnight Network は、改変された Substrate コンセンサススタックを使用します。ブロック生成には AURA、ファイナリティには GRANDPA を使用します。どちらも、Cardano Partnerchain としての Midnight 向けに拡張されています。

アーキテクチャの概要

flowchart TB
  subgraph Selection["Validator selection"]
    SPO["Cardano SPO stake delegation"]
    Perm["Optional permissioned validators"]
    VS["Custom validator set function"]
    SPO --> VS
    Perm --> VS
  end

  subgraph Production["Block production — AURA"]
    VS --> Slots["Round-robin slots + session keys"]
    Slots --> Block["New block proposed"]
  end

  subgraph Finality["Finality — GRANDPA"]
    Block --> Votes["Validator votes on chain"]
    Votes --> Final["Provable finality"]
  end

バリデーターの選定

標準的な Substrate チェーンとは異なり、Midnight では独自のバリデーターセット選定関数を使用し、次のことが可能です。

  • Cardano ステークプールオペレーター(SPO)からのステーク委任を考慮し、既存の Cardano バリデーターが Midnight のコンセンサスに参加できます。
  • ハイブリッド型のパブリック/プライベートネットワークを展開するために、許可型バリデーターを任意で追加できます。
モデル役割
SPO 委任Cardano のステークを Partnerchain のバリデーター適格性に反映します
許可型セット規制対象またはコンソーシアム型のネットワーク向けに、既知のオペレーターを追加します
独自の選定両方を組み合わせて、アクティブなセッションのバリデーターセットを構成します

AURA:ブロック生成

**AURA(Authority Round)**は、各ブロックを生成するバリデーターを決定するプルーフ・オブ・オーソリティ(PoA)アルゴリズムです。

  • バリデーターはラウンドロビン方式で順番に処理します。
  • スケジューリングには、事前定義されたスロットとセッションキーを使用します。
  • 特性:シンプル、高速、決定論的です。既知のバリデーターセットを持つ高スループットのチェーンに適しています。

AURA はMidnight 固有のものではありません。OpenEthereum で開発されました。Polkadot protocol glossary — AURAを参照してください。

sequenceDiagram
  participant V1 as Validator 1
  participant V2 as Validator 2
  participant V3 as Validator 3
  participant Chain as Chain

  Note over V1,V3: Slot N — Validator 1's turn
  V1->>Chain: Produce block N
  Note over V1,V3: Slot N+1 — Validator 2's turn
  V2->>Chain: Produce block N+1
  Note over V1,V3: Slot N+2 — Validator 3's turn
  V3->>Chain: Produce block N+2

**署名:**AURA のブロック生成者メッセージは sr25519 で署名されます(Cryptography スキルを参照)。


GRANDPA:ファイナリティ

**GRANDPA(GHOST-based Recursive ANcestor Deriving Prefix Agreement)**は、非同期で証明可能なファイナリティを提供します。

  • ブロック生成とは独立して動作します。
  • バリデーターがチェーンに投票し、十分な支持を得たブロックが確定します。
  • 汎用的な Polkadot コンポーネントです。正式な仕様とPolkadot の用語集を参照してください。
flowchart LR
  A["Blocks produced (AURA)"] --> B["GRANDPA voters observe chain"]
  B --> C{"≥ threshold support?"}
  C -->|Yes| D["Block finalized — irreversible"]
  C -->|No| E["Remains unfinalized / fork possible"]

**署名:**GRANDPA のファイナリティメッセージには Ed25519 を使用します。


AURA と GRANDPA の連携

レイヤー責務Midnight における拡張
AURA次のブロックを生成する主体Partnerchain バリデーターセットでの標準的な PoA
GRANDPA確定するブロック標準的な非同期ファイナリティガジェット
バリデーターセット参加できる主体SPO 委任+任意の許可型オペレーター

**重要なポイント:**GRANDPA が以前のブロックを非同期に確定している間も、ブロック生成は継続できます。これにより、スループットと安全性が切り離されます。


関連スキル

  • midnight-cryptography/ — AURA と GRANDPA で使用する署名方式
  • midnight-onchain-logic/ — ランタイムのパレット(pallet-aura、pallet-grandpa、セッション管理)
  • midnight-p2p-networking/ — バリデーターの検出と通信の仕組み

コメント