I understand that there is a PoV size limitation for blocks produced by the chain, since they need to be imported, and validated by validator nodes. However, I'm curious about whether this limitation extends to the genesis block and the chain_spec file. Is there a specific constraint on the size of the chain_spec file?

Our intention is to include a substantial amount of data for balances and other pallets, and to minimize interference with the live chain, we're exploring the feasibility of incorporating part or all of this data within the chain spec file. Can you provide insights into any potential limitations or considerations for embedding such data in the chain spec file?

2 Answers 2


There is no real limitation on the amount of data in the chaispec. Nothing prevents you from putting there gigabytes of data. You will only get some sort of "usability" issue by requiring to send around these big chainspecs.


I don't know of limitation on the chain_spec except technical one. The thing is the full genesis state is loaded in memory, so this can be an issue with very big genesis. I think a streaming json reader with progressive state import would lift this limitation, yet I think it is a niche case. (a streaming json writer would also be necessary for state export, it can be directly feed by the triedbraw iterator over nodes which is not exposed directly and need custom code).

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.