Implications of the Filecoin launch for IPFS #435
Description
I’m logging this as a note because it touches on a lot of areas that touch all implementations of IPFS.
lotus
can now create a new storage deal from any CID that is available in the IPFS network. It’ll pull the entire graph out of the network for the user and store that data through the normal dealflow. This is almost the only way you can load data into Filecoin that isn’t just passing a single file you have locally (there’s also a more complicated offline flow that I won’t get into). Some of the applications being built to store data in Filecoin you may have heard of are also using this feature, effectively leveraging IPFS as the transport for creating a new storage deal.
This has some implications I don’t think IPFS has had time to fully consider because it’s going to create some new incentives in the IPFS network that weren’t there before.
1. There’s now a substantial penalty for forking the DHT.
In the past, the main penalty of forking the DHT was losing some of the ease of use IPFS provides. But if you were doing anything other than the default IPFS data model you already couldn’t leverage a lot of the simpler DX that IPFS ships with, so we saw some notable users fork the DHT.
That’s unlikely to happen in the future. In fact, we may see some of those forks come back.
2. A lot more people are going to be loading data into IPFS in order to get it in to Filecoin
We probably already expected this, but it’s worth looking at in a little more detail. The easiest way, by far, to get data into Filecoin if it’s anything other than a single file will be to load it into IPFS. That means a lot of new people using the default IPFS configuration will be loading data into IPFS just to get it into Filecoin.
We have a lot of non-default options that we push people towards when they hit a particular scale. I think it’s worth looking at these and making sure that we default to what is best for large scale data sets because many more new IPFS users will be almost immediately loading large amounts of data.
For example:
- We still don’t default to
raw
leaves (lotus turns this on by default when it imports the file but that’s not default in ipfs). - We still put the CID for every block we import into the DHT and not just the CID’s we’ve pinned.
For the launch we prepared a bunch of CAR files with Bitcoin data. It’s only about 400GB of data, but it’s enough CID’s to overwhelm the DHT. The easiest way someone would have to setup a deal with this data would also insert millions of unnecessary records into the DHT.