The current client-serve model of the Internet, though it has many benefits, also has a number of problems. Accessing data by location only means the client does not know exactly what data they get until they receive it. Servers themselves are a centralized construct, and the data would not be accessible if the server was down. Access to a server may be blocked, or a server may become overrun by requests. A user who wants to put data on the Internet will probably need to pay a company to host it, unless they have their own server. Hosting could also be revoked at any time. One possible solution to these problems is the InterPlanetary File System (IPFS). IPFS is a system whose goal is to give the ability to provide, manage, and access data without central servers. It is a peer-to-peer content delivery protocol with a variety of different software implementations.
As the Internet continues to grow, it has been a trend for certain organizations and providers to become near monopolies. However, their systems could fail due to hardware issues, or more likely, be damaged by some external event. The company itself, or another organization, may decide to limit user access to the server, or stop servers from serving certain clients.
Since it's release in 2015, there have been several instances of research done on IPFS, or papers written about it. Some have analyzed and evaluated this system specifically, or done it in the context of a comparison with other decentralized or peer-to-peer network.
The purpose of this research into IPFS is to provide an introductory technical overview of the features and capabilities, assess aspects of its performance to compare it with traditional client-server systems, and consider improvement and the future of the system.
The documentation for IPFS will be read, as well as other research papers when applicable. Experiments will be done where files will be hosted on IPFS and data will be collected about details like retrieval time, availability, etc. Analyses will also be done on existing IPFS nodes and data which can be accessed. Some measurements and/or analyses will also be done on traditional client-server systems so comparisons can be made.