midnight-consensus
Skill18 starsChanged 17 days agoMITView on GitHub
Midnight Network consensus — AURA block production, GRANDPA finality, Cardano Partnerchain validator selection, and hybrid permissioned deployments. Use when explaining how Midnight blocks are produced, finalized, or how SPO stake delegation affects validator sets.
In this repository36 other files it gives its agents.
- AGENTS.mdAGENTS.md
- 1am-walletSkill
- android-example-votingSkill
- ankr-midnightSkill
- compactSkill
- dynamic-midnight-walletSkill
- example-counterSkill
- example-hello-worldSkill
- example-leaderboard-dappSkill
- example-locker-dappSkill
- example-passport-dappSkill
- example-payment-dappSkill
- example-private-party-dappSkill
- example-private-reserve-auction-dappSkill
- example-zk-loan-applicationSkill
- gsap-coreSkill
- gsap-utilsSkill
- indexerSkill
- midnight-cryptographySkill
- midnight-environment-setupSkill
- midnight-jsSkill
- midnight-onchain-logicSkill
- midnight-p2p-networkingSkill
- midnight-passportSkill
- midnight-rpcSkill
- midnightskillSkill
- midnight-storageSkill
- midnight-transactionsSkill
- multinetworkSkill
- nftSkill
- react-wallet-connectorSkill
- midnight-securitySkill
- testingSkill
- token-transfersSkill
- why-midnightSkill
- zk-vs-fhe-vs-mpcSkill
The file
Files
Midnight Consensus
The Midnight Network uses a modified Substrate consensus stack: AURA for block production and GRANDPA for finality. Both are extended for Midnight as a Cardano Partnerchain.
Architecture overview
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"]
endValidator selection
Unlike standard Substrate chains, Midnight uses a custom validator set selection function that:
- Accounts for stake delegation from Cardano Stake Pool Operators (SPOs), letting existing Cardano validators participate in Midnight consensus.
- Supports optional permissioned validators for hybrid public/private network deployments.
| Model | Role |
| SPO delegation | Bridges Cardano stake into Partnerchain validator eligibility |
| Permissioned set | Adds known operators for regulated or consortium networks |
| Custom selection | Combines both into the active session validator set |
AURA: Block production
AURA (Authority Round) is a proof-of-authority (PoA) algorithm that determines which validator produces each block.
- Validators take turns in round-robin order.
- Scheduling uses predefined slots and session keys.
- Properties: simple, fast, deterministic — suited to high-throughput chains with known validator sets.
AURA is not Midnight-specific; it originated in OpenEthereum. See the 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+2Signing: Block authorship messages in AURA are signed with sr25519 (see the Cryptography skill).
GRANDPA: Finality
GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement) provides asynchronous, provable finality.
- Operates independently of block production.
- Validators vote on chains; blocks finalize when they receive sufficient support.
- General-purpose Polkadot component — formal specification and Polkadot glossary.
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"]Signing: GRANDPA finality messages use Ed25519.
How AURA and GRANDPA work together
| Layer | Responsibility | Midnight extension |
| AURA | Who builds the next block | Standard PoA over Partnerchain validator set |
| GRANDPA | Which blocks are final | Standard async finality gadget |
| Validator set | Who may participate | SPO delegation + optional permissioned operators |
Key insight: Block production can continue while GRANDPA finalizes earlier blocks asynchronously — throughput and safety are decoupled.
Related skills
midnight-cryptography/— signature schemes used by AURA and GRANDPAmidnight-onchain-logic/— runtime pallets (pallet-aura,pallet-grandpa, session management)midnight-p2p-networking/— how validators discover and communicate
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

