gossamer icon indicating copy to clipboard operation
gossamer copied to clipboard

feat(dot/parachain): create skeleton for bitfield distribution subsystem

Open haikoschol opened this issue 4 months ago • 0 comments

Issue summary

  • Create a new package called bitfielddistribution
  • Define overseer messages
    • DistributeBitfield
      • relay parent hash
      • parachaintypes.UncheckedSignedAvailabilityBitfield
  • Define network protocol messages (in the case of multiple versions, only handle the latest for now)
    • BitfieldProtocolMessage
      • only one possible value, with the same content as DistributeBitfield overseer message
  • Create a struct called BitfieldDistribution and implement the Subsystem interface on it
  • Register bitfield distribution subsystem with overseer
  • Create (empty) methods to handle the following messages:
    • DistributeBitfield
    • network bridge events
      • PeerConnected
      • PeerDisconnected
      • NewGossipTopology
      • PeerViewChanged
      • OurViewChanged
      • PeerMessage (payload: parachaintypes.UncheckedSignedAvailabilityBitfield)
      • UpdatedAuthorityIds
    • overseer signals
      • ActiveLeavesUpdate
  • Forward the above messages to the bitfield distribution subsystem from overseer
  • Add tests

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

  • https://github.com/ChainSafe/gossamer/pull/3497
  • https://github.com/ChainSafe/gossamer/pull/3521
  • https://github.com/ChainSafe/gossamer/pull/3512

haikoschol avatar Oct 08 '24 07:10 haikoschol