note_stalled

Call v101 → v148, v149 → current #2

Signals that GRANDPA finality has stalled and schedules a forced authority set change.

View calls on chain

Click items to navigate. Pan and zoom to explore.

Used by: developers

The Big Picture

Sometimes GRANDPA gets stuck - validators might go offline, network partitions happen, or bugs cause finality to stop. This root call is the emergency recovery mechanism. It schedules a forced transition to a new validator set, allowing the network to resume finality after a safety delay.

Use Cases

  • Recover from GRANDPA consensus failures
  • Transition to a new validator set when current set is unresponsive
  • Emergency recovery when finality has stopped progressing

From Chain Metadata

See [`Pallet::note_stalled`].

Input Parameters

#NameTypeDescription
0
delay
u32 BlockNumberFor<T>delay: Block number
1
best_finalized_block_number
u32 BlockNumberFor<T>best_finalized_block_number: Block number

Permissions

Origin
Unknown
Required Role

Permission data inferred from metadata. May be incomplete.

Requirements

  • Caller has root/sudo privileges
  • GRANDPA has actually stalled (finality is not progressing)
  • Delay parameter is high enough to prevent reorgs (e.g., 1000 blocks)

Effects

Postconditions

  • Forced authority set change is scheduled for the next session
  • New validators will start voting from best_finalized_block_number

Side Effects

  • May disrupt ongoing finality if called prematurely
  • Network transitions to new authority set after delay

Code Examples

import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443

const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);

// Build note_stalled call (typed, named args)
const delay = 0;
const best_finalized_block_number = 0;

const tx = api.tx.Grandpa.note_stalled({
  delay,
  best_finalized_block_number,
});

Version History

v101 block 1 2 args
v149 block 3,014,339 2 args Current

Runtime Info

Pallet Index
4
Call Index
2
First Version
v101
Current Version
v411