Skip to content

Cancel ongoing sent IWANTs with a corresponding IDONTWANT #618

@cortze

Description

@cortze

This issue comes from the work that ProbeLab has recently done analysing the performance of the IDONTWANT messages in the Ethereum network using hermes, which is also related to the contribution done to #611 and could benefit from such a multi-stream refactoring on GossipSub.

One of the issues of the current implementation is that we are not keeping track of the ongoing RPCs. This includes the IWANT messages that we are sending for the same message ID, which leads to multiple redundant requests per message ID (check the ongoing discussion at #606 ). Whether we should limit or not the number of messages that we send should be discussed in the other Issue. However, we should enable the IDONTWANT messages to cancel ongoing IWANT requests as well.

The following graphs, taken from that same study (the report will be public soon), show:

  • The CDF of the elapsed time between when we sent the IWANT message, and the first arrival of the same message ID

Image

  • The CDF of the elapsed time between the sent IWANT message to a peer and the arrival of the duplicate from that peer on the same message ID.

Image

We can appreciate from both figures that 60% of the IWANTs are getting requested 10 or fewer milliseconds before the message arrival, which then takes over 500ms till we download the message from the remote peer. This indicates that we could clearly prevent receiving those duplicates caused by IWANTs sent slightly sooner than the message mesh propagation.

CC: @MarcoPolo @raulk @ppopth @cskiraly

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions