gossamer
gossamer copied to clipboard
feat(dot/parachain): create skeleton for bitfield distribution subsystem
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
- only one possible value, with the same content as
-
- Create a struct called
BitfieldDistribution
and implement theSubsystem
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