I am attempting to run a Rococo node from scratch. The command I am using is ./target/release/polkadot --chain=rococo --base-path /hdd/work/fat-db/rococo-actual --enable-offchain-indexing true --sync fast-unsafe --blocks-pruning 300. The node syncs upto the lastest block just fine, but then it starts to log several messages such as 🥩 Marking block 7480842 as BEEFY Mandatory.. When it comes down to block 5920792 the node crashes with the following error

2023-10-15 13:59:14 🥩 Marking block 5920792 as BEEFY Mandatory.    
2023-10-15 13:59:14 Error: Backend("Could not find initial validator set"). Terminating.    
2023-10-15 13:59:14 Essential task `beefy-gadget` failed. Shutting down service.    
   0: Other: Essential task failed.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.

I want to just run a Rococo node with beefy running so that I can log out the beefy justifications that are currently unavailable in the rpc Beefy justification subscription is not working

Any help is much appreciated.
Please and Thank you.

1 Answer 1


The issue you're having comes from doing the initial sync using fast-unsafe combined with --blocks-pruning 300. What happens is:

  • you start with empty DB -> no BEEFY state/info whatsoever,
  • fast syncing takes you straight to latest state (so no old state), AND --blocks-pruning 300 means when reaching HEAD you only have last 300 headers,
  • BEEFY cannot initialize because your node doesn't have any info on block 5920792 (which is BEEFY genesis on Rococo).


  1. Run your initial sync without --blocks-pruning (defaults to archive-canonical).
  2. Once node is synced to HEAD of chain and BEEFY is initialized (you can see BEEFY finalized blocks happening in logs or RPC), BEEFY state will be saved to DB and can be reused for subsequent runs
  3. At this point you can stop the node, and restart it with --blocks-pruning 300 or whatever.
  • Thank you @adrian. I am trying this now... Commented Oct 16, 2023 at 10:58
  • Also, on a related note, I was wondering if there is any way to get my node to ask for and download a particular block from its peers. This would save me the 100gb of disk space :) Commented Oct 16, 2023 at 11:02
  • If that still doesn't work, do a --sync full at least until block 5920792 then it should be fine.
    – adrian
    Commented Oct 16, 2023 at 12:19
  • 1
    Issue is still present even without --blocks-pruning - only workaround right now is using --sync full. Opened github.com/paritytech/polkadot-sdk/issues/1885 to track the fix for --sync fast(-unsafe).
    – adrian
    Commented Oct 16, 2023 at 12:57
  • 1
    Run without --blocks-pruning 100 initially, once it is synced and BEEFY initialized, you can restart node with --blocks-pruning 100 (and continuing from where it left off).
    – adrian
    Commented Oct 19, 2023 at 8:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.