I have a machine running a sync node and , for sync nodes, we have to pass in the rpc-cors all option to allow websocket connections from any origin for interfacing through the apps UI. Now this machine has resources that could support another node, probably as a validator, and it had me thinking, what if I started a validator on the same machine, on different ports, but then the chainstate would be duplicated on the machine effectively doubling the storage requirement of the chain.

My question was, would it be possible to share the same chainstate among two nodes running on the same machine in order to avoid data duplication?

1 Answer 1


This is not possible, since both nodes will be trying to read / write from the same database, and they won't behave well together.

In this case, I don't see a difference having your validator act as also the node that which exposes the RPC. It should practically behave the same, and it is not like the syncing node and the validator node will have different data.

That being said, generally we would never suggest doing this, since your RPC would be publicly accessible, it would be easy for a malicious user to spam your node with queries, and then affect the performance of your validator, which could cause you to miss blocks, get slashed, etc...

Block producer nodes should really be isolated and treated as a first class application on dedicated hardware, since ultimately you are putting a lot of money behind these nodes behaving well.

Your Answer

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

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