Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(parachain): create skeleton for availability distribution subsystem #4485

Open
10 tasks
Tracked by #3598
haikoschol opened this issue Jan 21, 2025 · 1 comment
Open
10 tasks
Tracked by #3598
Assignees
Labels
C-simple Minor changes changes, no additional research needed. Good first issue/review. S-subsystems-availability issues related to polkadot host availability subsystem functionality. T-implementation this issue/pr is a new feature or functionality.

Comments

@haikoschol
Copy link
Contributor

haikoschol commented Jan 21, 2025

Issue summary

Create skeleton code for the implementation of the Availability Distribution subsystem which is described in the Host Implementers' Guide, utilizing the subsystem pattern that has been used in other Gossamer subsystems.

  • Create a new package called availabilitydistribution in dot/parachain/availability-distribution
  • Create a struct called AvailabilityDistribution and implement the Subsystem interface on it
  • Create empty handlers for
  • Register availability distribution subsystem with overseer
  • Forward the above messages to the availability distribution subsystem from overseer
  • Define BlockState interface and add it to subsystem state (see section below for details)
  • Add tests

Subsystem State

Most of the subsystem state should probably be covered when implementing message handling logic instead of in the skeleton. One exception is defining an interface for accessing runtime instances and ancestors of active leaves in the block state.

package availabilitydistribution

type BlockState interface {
    GetHeader(hash common.Hash) (*types.Header, error)
    GetRuntime(hash common.Hash) (instance runtime.Instance, err error)
}

type AvailabilityDistribution struct {
    blockState BlockState
    // ...
}

Other information and links

Look at other skeleton PRs to get an idea of what to code and what will become and TODO and a new issue

@haikoschol haikoschol added C-simple Minor changes changes, no additional research needed. Good first issue/review. S-subsystems-availability issues related to polkadot host availability subsystem functionality. T-implementation this issue/pr is a new feature or functionality. labels Jan 21, 2025
@haikoschol haikoschol changed the title feat(dot/parachain): create skeleton for availability distribution subsystem feat(parachain): create skeleton for availability distribution subsystem Jan 21, 2025
@ramiroJCB
Copy link
Contributor

Hello guys I will be doing this one :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-simple Minor changes changes, no additional research needed. Good first issue/review. S-subsystems-availability issues related to polkadot host availability subsystem functionality. T-implementation this issue/pr is a new feature or functionality.
Projects
None yet
Development

No branches or pull requests

2 participants