vac:p2p:ift:2026q1-nimlibp2p-gossipsub-extensions

Description

This commitment focuses on implementing Gossipsub v1.3 - Extensions control message, a set of features that would allow gossipsub peers to describe characteristics to each other without requiring a new protocol ID per extension, and creating the partial messages extension, which would allow users to transmit only a small part of a message rather than a full message.

Task List

Implement Gossipsub Extensions support

  • fully qualified name: vac:p2p:ift:2026q1-nimlibp2p-gossipsub-extensions:extensions
  • owner: not assigned yet
  • status: not started
  • start-date: 2026/01/01
  • end-date: 2026/03/31

Description

  • Modify RPC protobuffer to be aware of the existence of ControlExtensions control message
  • Send extensions message as the first message on a stream
  • Test interoperability by implementing Test Extension

Deliverables

  • Gossipsub extensions supported
  • Test Extension implemented (optionally enabled via compile time flag)

Implement Gossipsub Partial Messages Extension

  • fully qualified name: vac:p2p:ift:2026q1-nimlibp2p-gossipsub-extensions:partial-messages
  • owner: not assigned yet
  • status: not started
  • start-date: 2026/01/01
  • end-date: 2026/03/31

Description

  • Partial Messages Extensions allow users to transmit only a small part of a message rather than a full message.
  • This is especially useful in cases where there is a large messages and a peer is missing only a small part of the message.

Deliverables

  • Partial messages extension implemented
  • Set of unit tests to test this extension

Change Gossipsub 1.4 to an extension

  • fully qualified name: vac:p2p:ift:2026q1-nimlibp2p-gossipsub-extensions:1-4-extension
  • owner: not assigned yet
  • status: not started
  • start-date: 2026/01/01
  • end-date: 2026/03/31

Description

Modify gossipsub 1.4 so it uses extensions instead of a new protocol Id. This task has low priority and should only be implemented if time allows it.

Deliverables

  • Gossipsub 1.4 implemented as a gossipsub extension