filecoin-project / specs

The Filecoin protocol specification
https://spec.filecoin.io
Other
367 stars 171 forks source link

Clarify bitswap, graphsync, blocksync usage #871

Closed mishmosh closed 3 years ago

mishmosh commented 4 years ago

Filecoin nodes send & receive block data from each other at 3 different stages:

  1. Chain sync - the initial sync of all blocks in the chain, from genesis until now (data size: moderate, ~mb-gb)
  2. Chain updates - ongoing updates of new blocks as they are added to the chain (data size: small, ~kb)
  3. Data transfer - the sending & receiving of client data, per storage and retrieval markets (data size: large, gb+)

Currently the spec & implementations each use different permutations of 3 protocols for these stages.

After verbal discussions with @jbenet @anorth @whyrusleeping @ZenGround0 @hannahhoward we agreed on this:

Spec documentation changes

Impl changes

Related: #782, #461, #442

yiannisbot commented 3 years ago

The updated chainsync section now details the operation of the gossipsub, graphsync, bitswap and blocksync protocols