-
Notifications
You must be signed in to change notification settings - Fork 378
Support running the relay chain node as an extra process #545
Comments
This should also make it possible to share a relaychain node between multiple parachain nodes? Will this make it possible to allow relaychain part and parachain part using different versions of Substrate? |
Would you be able to have remote relay-nodes that collators could connect to? If so, what requirements (latency, bandwidth, etc.) should be outlined? |
Yes, as written above. However, I don't see this as an initial requirement for this issue.
This is the whole point or better, make parachains collators not required to update when the relay chain requires a node update. |
As written in the issue, maybe. As this is not an initial requirement, I don't think we need to outline anything of that. |
I also just realized that this will probably be a little bit more complicated for collators, as the connection collators not only read data from the relay chain. They also get called by the overseer when they need to produce a new pov and give it back to the overseer. This would be a little bit more time critical, but should also be solvable. |
After #963 was merged, it is now possible to start a parachain full node by passing the address to a relay chain full node. The parachain node will not internally create a relay-chain node but fetch all needed data via RPC. Be aware that we are viewing this as an experimental feature currently. Example command (assumes relay chain full node running locally on ws-port 9944): |
I know this is not directly the target of this change, but in the case of the |
Similar to @crystalin 's feedback - the two main use cases we are interested in are:
|
Thanks @crystalin and @purestaketdb for the feedback. Having multiple relay chain nodes to connect to is something I have thought about. I can look into it once the collation over RPC feature is ready. |
Experimental support for relay chain collators is now merged. You can try this by passing the Next phase is additional testing to discover potential problems. Road forward:
|
The points of the last comment have been addressed in #1880. Future enhancements can have their separate issues. |
The Vision
Currently every parachain node includes a relay chain node. This relay chain node is required to get certain information about the relay chain that are important for the parachain, for example to query what is the best parachain block currently etc. While this makes it relative easy to run a parachain node, it also brings some problems like the high compilation time as we need to compile the parachain node and the relay chain node. Another, a more bigger problem is that parachain developers are required to update their collators when there is a new relay chain release that requires a timely update, because a new host function is added or something in the client code of the relay chain is fixed. So, it would be nice to have the relay chain node running as an extra process. Collator operators would just run an extra relay chain node (that could maybe even shared between multiple parachain nodes, but this is no real initial requirement!) and can freely update the relay chain node. The relay chain node itself could maybe directly bring the functionality required by Cumulus to connect to it or we provide some sort of wrapper (probably the best way for the first implementation).
The Plan
This feature would be implemented in the following order:
polkadot-service
orpolkadot-client
in any of the "low-level" functionality of Cumulus. It should only use these interfaces to talk to the relay chain.Open Questions
If you want to help us out and contribute to this issue, in this section you can find open questions and tasks where we would appreciate any input.
Here you can find the board with specific sub-tasks to this milestone:
https://github.com/orgs/paritytech/projects/18/views/8
The text was updated successfully, but these errors were encountered: