ResNetLab was delighted to accept an invitation to talk about Bitswap and the outcomes of our Beyond Bitswap project at the Spanish Edition of the Codemotion conference. The invitation was then extended to the English edition of the conference, which took place at the end of May. These great events gave us the chance to introduce IPFS, and discuss Bitswap – the IPFS content exchange protocol– in detail with a broad audience. You can view our slide deck here.
The conference gathered speakers and attendees from diverse backgrounds: from web developers to quantum computing researchers to blockchain specialists. It was great to share our work with such a diverse audience! We received great questions in both events, and we wanted to share the answers here for future reference:
Q: What projects are currently using Bitswap?
A: Bitswap is the content exchange protocol in IPFS. It is also used in Filecoin to request and receive blocks when a node is synchronized (“caught up”) but GossipSub has failed to deliver some blocks to a node. But Bitswap is a protocol in itself and can be used in other use cases, independently of IPFS and Filecoin: a good example of this is our collaboration with Netflix where we tested how Bitswap could be used to improve Continuous Integration (CI) in distributed cloud environments. You can find a detailed description of Bitswap in our technical report here.
Q: Is there any other way of exchanging content in the IPFS network?
A: IPFS includes a protocol called Graphsync that can also be used to exchange data between peers. Unlike Bitswap, which is a message-based protocol, Graphsync is a request-response protocol to perform 1:1 exchanges of data. It currently doesn’t include any content routing capabilities or integration with providing subsystems, so if we want to retrieve specific data from a peer we need to be sure that the other peer is already storing it. If it doesn’t, the request will fail. Furthermore, in Graphsync requested data is sent as a stream of blocks, instead of having to exchange blocks one-by-one as is the case with Bitswap.
Q: Do you have any plans to improve Bitswap further?
A: As the Beyond Bitswap project evolved, we developed a number of RFCs containing ideas to improve and optimise the performance of the protocol. To date at ResNetLab we have prototyped the use of compression over Bitswap, a scheme to gather additional knowledge about where content may be stored through the inspection of other peers' requests, and the use of a TTL field to increase the range of discovery of Bitswap; and teams both at Protocol Labs and elsewhere are working on prototypes for some of the other RFCs. You can read all of the RFCs and related discussions in this repo. For additional context, this post shares a good overview of the development of the project. We are always open to collaborations and have funding allocated for these activities, so if you are working in this field, get in touch! Our repository is a great place to brainstorm and kickstart discussions!
The RFC that I am personally most excited about is this one (also discussed in this issue), where we propose merging certain Graphsync capabilities into Bitswap requests to improve the synchronization of content between peers.
Q: Can you share some sample use cases of projects being built over IPFS?
A: There are tons of projects already built over IPFS: decentralized virtual reality, video hosting, storage of large datasets, web hosting, parallelization of big data analysis, P2P video streaming, databases, and much more. You can find a detailed list of projects using IPFS here.
Q: What are some good resources to start learning about IPFS and Web3.0?
A: We recently released our brand new ResNetLab on Tour program, which is a one-stop-shop for all things IPFS and Web 3.0. In the ResNetLab on Tour site you’ll find five Core Modules and several Elective Modules (with more coming soon!) as ~25 min video tutorials. The modules introduce many of the concepts and protocols behind IPFS and the Web 3.0 and go into details of important systems such as content addressing, content routing and content exchange, among others.
If you are new to IPFS and Web 3.0 concepts, at proto.school you will find a set of self-guided, interactive tutorials designed to introduce you into decentralized web concepts, protocols, and tools. This is the “go-to” resource for developers that want to start hacking with Web 3.0 technologies. ProtoSchool not only gives you theoretical knowledge, but also includes a set of code challenges to start getting a grasp of how it looks like to build over Web 3.0.
Q: You mentioned that the Beyond Bitswap project was an open research project, and that this is the way you approach research and development at PL. What does “open research” look like?
A: The research problems we are working on are not easy and generally require multidisciplinary talent. By making our open problems public, and inviting other teams and research groups to collaborate with us, we boost the flow of ideas and benefit from being able to explore different lines of work in parallel. Under this setup, everyone benefits from the contributions of others. We are transparent about what we perceive as problems, and we engage with the community in order to better define and eventually solve them. You can read more about this at PL Research Website. And of course, if you are interested in this way of doing research, do not hesitate to reach out – we’re hiring!.