Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Enable collation with external relay chain full node #989

Closed
skunert opened this issue Feb 15, 2022 · 5 comments · Fixed by #1585
Closed

Enable collation with external relay chain full node #989

skunert opened this issue Feb 15, 2022 · 5 comments · Fixed by #1585
Assignees
Labels
J0-enhancement An additional feature request.

Comments

@skunert
Copy link
Contributor

skunert commented Feb 15, 2022

As discussed in #545 we want to support running the collator relay chain node as its own process.
After #963 lands, we are in a position to run a parachain full node without running a relay chain full node internally. To run a proper parachain collator, we miss some of the subsystems usually running inside the full node. They do not offer an RPC interface, so I plan to start the relevant subsystems inside the collator.

Relevant Subsystems

CleanShot 2022-02-15 at 12 18 53
After checking the code, I found that the following subsystems are involved:

  • Availability Recovery
  • Collation Generation
  • Collator Protocol
  • Network Bridge
  • Runtime API
  • Availability Store
  • Chain API

The Availability store should be optional for now since the data we request from it will not be available inside the collator anyway and will then be requested from the Network Bridge.

Implementation Plan

  • Implement a custom OverseerGen that will replace unused Subsystem with dummies that drain channels
  • Feed a client to the Runtime API subsystem that will use the RPC Client introduced in Introduce rpc client for relay chain full node #963 to perform runtime calls

Related discussion in paritytech/polkadot#4763

@bkchr
Copy link
Member

bkchr commented Feb 15, 2022

CC @drahnr maybe you have some input on the OverseerGen stuff :)

@drahnr
Copy link
Contributor

drahnr commented Feb 15, 2022

I think implementing OverseerGen for your implementation of that is really all you need to do, besides assuring to overseer_enable_ anyways. Make sure to consume messages in the dummy subsystems or assert none are sent there. Ping me as needed.

@gregzaitsev
Copy link

Hi, Sebastian! Is there any way to contribute to this issue? Looks like collators are almost finished, is that right?

@skunert
Copy link
Contributor Author

skunert commented Aug 3, 2022

Hey @gregzaitsev, I have a branch where this works, some refactorings and polish needs to be done still.
So currently there is not much to contribute here, the feature will land soon.

@drahnr
Copy link
Contributor

drahnr commented Aug 3, 2022

@skunert I assume you are aware, a few weeks ago a change landed that splits the network bridge into two, incoming and outgoing messages, so the initial diagram might need some adjustments :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
J0-enhancement An additional feature request.
Projects
Status: Done
Status: done
Development

Successfully merging a pull request may close this issue.

5 participants