Description of the concept of pushing blobs to peers.
Some peers, especially pubs, don’t automatically request blobs which are referenced by messages they replicated. This is problematic as initially only the author of a message referencing a blob will have that blob.
The goal of blob pushing is to encourage connected peers to replicate blobs before their author goes offline. This is usually done only for the blobs that are referenced by messages from the feed of the peer performing blob pushing.
Blob pushing uses the want and have mechanism to effectively trick connected peers into replicating a blob.
In this scenario peer Alice wishes to push a blob to peer Bob. In order to do so peer Alice sends a “want” with distance set to
-1 to peer Bob. This makes peer Bob ask all their connected peers for this blob and replicate it in order to give it to peer Alice. If peer Bob uses a naive implementation of the blob replication mechanism he will ask peer Alice for the blob that she herself asked for. This makes peer Alice send the blob to peer Bob.