• dirkmc's avatar
    feat: bitswap protocol extensions · b3a47bcf
    dirkmc authored
    This commit extends the bitswap protocol with two additional wantlist properties:
    
    * WANT_HAVE/HAVE: Instead of asking for a block, a node can specify that they
      want to know if any peers "have" the block.
    * WANT_HAVE_NOT/HAVE_NOT: Instead of waiting for a timeout, a node can explicitly
      request to be told immediately if their peers don't currently have the given
      block.
    
    Additionally, nodes now tell their peers how much data they have queued to send
    them when sending messages. This allows peers to better distribute requests,
    keeping all peers busy but not overloaded.
    
    Changes in this PR are described in: https://github.com/ipfs/go-bitswap/issues/186
    b3a47bcf
bitswap.go 15.8 KB