Adding the next million peers to IPFS

We have big hopes for IPFS, Filecoin, and decentralized file storage in general. While fixing a brittle internet isn’t our core mission, we do believe that decentralized storage of personal data is a key ingredient to a future where we fully own and control our digital selves. IPFS is a great solution for personal data given that most of your data is only created (not modified) and because most of that data is only important to you (so proximity matters). Like most networks, IPFS grows in value, staying power, and in many ways, utility, by adding more nodes to the network. We plan to bring 1,000,000 more IPFS peers online, so let’s talk how we will do it.

First, what is a peer?

From a technology perspective, IPFS is a collection of tools to help build a decentralized, peer-to-peer distribution system — it helps you find or move data around without a centralized server. Instead IPFS relies on peers, the decentralized computers that manage data storage and discovery.

You can turn your own computer into a peer on IPFS fairly quickly. Alternatively, you can run IPFS as a Firefox Add-on or simply visit any webpage running IPFS-JS. In each of those cases, you’ll become a peer on the IPFS network, but in each case your peer may take on slightly different responsibilities. While there are many functions an IPFS peer can perform, let’s focus on four broad areas for today’s post:

  • Storage: The first responsibility a peer may choose to take on is data storage. No peer is forced to store any data, instead, a peer must actively pin data to store it long-term in the network.
  • Caching: A peer may also choose to help cache files being requested by other peers in the network. The simplest analogy most readers will be familiar with is the CDN. While not exactly the same, a peer on IPFS that makes space available for caching files helps achieve file storage and quick retrieval for their connected peers.
  • Routing: When a peer wants to retrieve a file, there is no single server or database from which to request that file. Therefore, the request goes out over the network, in the form of an IPFS hash sent out over some routing tables. A peer that receives the request can help the originator by returning the requested data or identifying another peer who can.
  • Requesting: If a peer wants to retrieve an HTML file to view a webpage over IPFS, instead of over HTTP, it can make that request to all it’s connected peers who respond (as in the Routing step above)

With those basics in place, let’s talk about how Textile plans to enhance this network by adding the next 1,000,000 peers.

If you haven’t already, now is the time to hop on the Textile Photos waiting list — help us build the future of the internet.

Adding peers at the edge

The first stop in our strategy to grow the IPFS network is on the edge. What we mean by the edge is, mobile devices. They are called the edge because if you viewed the topology of the network, most of these devices would have very few connections so would naturally sit at the extents, or edges, of the network. This is where Textile Photos runs and so we need to build ways for it to connect to a decentralized system for media storage and retrieval.

Today, almost every app you use is connected to a given company’s fully centralized system. Requests happen over some REST API, and is stored in some central database controlled by that company. In Textile, we are flipping that model and putting greater amounts of that system back into the hands of the user. The Textile Photos mobile app doesn’t use HTTP requests for users to view their remotely stored photos or those shared with them by others, it uses IPFS. We achieve this by embedding a fully functional IPFS peer right into the mobile app. The user’s IPFS peer handles storing and retrieving of their encrypted photos and those that are shared to them via Threads.

These IPFS installations are limited though. Most people are pretty sensitive about how much battery and bandwidth their mobile devices consume, so we can’t run IPFS on their devices and allow for either caching of other people’s requests or routing of general network traffic. So these peers are almost entirely about consuming data through IPFS. In the torrent world, they look a lot like leeches… but we think they will ultimately add critical value to the network. Specifically for the future of Filecoin, we think these peers can help prime the demand side of the market before the protocol is even live.

Adding peers for pipes and routing

We only have to take one step in from the edge to find the next stop in our strategy toward the next 1,000,000 peers, user’s personal computers. Many people have some abundance of storage space on their personal computers and a fraction of those live on high-speed internet. Textile Photos offers free, secure and encrypted photo syncing between the mobile app and a user’s laptop, desktop, and other devices. To achieve this sync, the Textile Photos Desktop app, like the mobile app, is an IPFS peer.

The desktop peer performs a limited set of IPFS functions. For Storage, it only stores the owners data (at least until we can compensate users for their extra space, *cough filecoin*). For Caching, if a user requests to view a photo that is only stored on a remote peer, the desktop peer can help with both routing and cache to make it very fast. Similarly for Routing, these peers can help any Textile user find their content faster, helping to add value to the network.

Creating demand and adding capacity at the core

The Filecoin protocols help take IPFS a step further than the network alone. They will help put new peers online that can store and serve arbitrary data for network users. For Textile Photos, this is our long-term plan for providing fully decentralized data storage for users. We see all our edge peers as priming the pump with hosting demand even before the Filecoin protocol goes live. This demand is critical to bringing those servers to the market, but it isn’t the only way we think we can help build the core.

Not only do we think we can queue up demand for remote storage, we think Textile itself may be a valuable mechanism for bringing more storage space to the network. Getting individuals to add storage space from personal computers to the Filecoin marketplace may prove difficult, with too small of a reward to incentivize the initial steps. The Textile Photos desktop app could provide indirect incentives for users to become data hosting providers. The first and most obvious, is the low friction exchange of a user’s space storage capacity in return for free remote backup of a user’s own data. Textile, and consumer apps like it, can build these exchanges directly into the system so users never have to think about coin exchanges, but instead just get the direct benefit they value.

1,000,000 sounds like a lot!

And it is. By improving the IPFS network this way, we think we can improve the features and functionality of the Textile technology for all our users. There are a number of ways you can help out, including running your own IPFS node, building new projects that use the IPFS protocol, or even simply trying out Textile Photos and our mobile IPFS instance when it’s ready. Do it!