I have made the rococo relay chain and parachain network successfully following this tutorial, and was also able to generate the network with custom keys on relay chain and parachain with rococo-local spec file. But the problem arises when I make a network with rococo-staging and westend-staging everything works fine but the blocks on parachain are not generating, I got the error Collation wasn't advertised to any validator and after sometime the error changes to State Database error: Too many sibling blocks inserted.

What I have done is:

  • Created chainSpec for relay chain with 3 validators using rococo-staging and westend-staging and added my accounts in it.
  • Created chainSpecRaw and started the relay chain.
  • After successfully starting relay chain, I made the chainSpec for parachain with one collator and added my accounts.
  • Then I made the chainSpecRaw of parachain and started it with collation:yes.
  • After running both relay chain and parachain, I registered a paraId on relay chain.
  • Then added the wasm runtime and genesis state of parachain on relay chain.
  • After this I was able to see the parachain registered on relay chain.
  • After completing these steps I faced the above mentioned errors.

1 Answer 1


The reason for your parachain not producing blocks after registration with rococo-staging relaychain is the parameter session_length_in_blocks. This parameter is set as None for rococo-staging and Some(10) for rococo-local.

That's why when you register your parachain with rococo-local, you can see your parachain producing blocks in the next epoch after registration. You can verify its value Developer >> Chain State >> Constants. When you run with rococo-local, you will find its value as 10.

session_length_in_blocks sets epochDuration in pallet_babe.

enter image description here

When you run your chain with rococo-staging, you may find its value as 600 because it is set as None and picks default value.

enter image description here

I tried this scenario on my local and it worked. I followed below steps:

  1. I changed here from Live to Local

  2. Replaced with my validators and created chain-spec with rococo-staging.

  3. Started relaychain with raw chain spec

  4. On parachain-side, I replaced rococo-local with rococo-staging in chain-spec. Started parachain with raw chain spec.

  5. For staring relaychain, parachain and parachain registration, I followed all steps, which are mentioned in this tutorial.

  6. After registration, it was just showing as onboarding enter image description here

  7. I waited for 600 blocks.

  8. After 600 blocks, it started onboarding `successfully.

enter image description here

As you can see in my screenshot, onboarding will complete in around 1 hour after it starts. I can see my parachain producing blocks with rococo-staging.

enter image description here

With default parameters, you have to wait. You are free to update values in your runtime for testing.

If this works for you, please mark this answer as acceptable.

  • It is working fine now, but still I don't understand why it is not working on "live". If you know please do tell. Commented Jan 6, 2023 at 11:17
  • Because you are running on local machine. github.com/paritytech/substrate/blob/… Commented Jan 6, 2023 at 17:37
  • What is the difference between a local and live machine? Commented Jan 22 at 12:55

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.