1
0
mirror of https://github.com/ipfs/ipfs synced 2024-09-20 04:01:46 +02:00
ipfs/README.md
Juan Batiz-Benet 131630548a readme features
2014-02-19 00:24:58 -08:00

1.8 KiB

GFS - the Galactic File System

The Galactic File System (GFS) is a distributed file system that seeks to connect all computing devices with the same system of files. In some ways, this is similar to the original aims of the Web, but GFS is actually more similar to a single bittorrent swarm exchanging files.

A note on the name: the original GFS acronym stood for the Global File System. But that exact name is already taken. So I switched Global for Galactic, in an homage to Licklider's Intergalactic Computer Network, and because peer-to-peer systems look like galaxies to me.

Features

GFS is modular:

  • uses a DHT (kademlia)
  • uses a path-based naming service
  • uses file chunking
  • uses bittorrent-inspired peer-to-peer block exchanges

GFS is a filesystem:

  • has directories and files
  • mountable filesystem (via FUSE)

GFS uses crypto:

  • cryptographic-hash content addressing
  • file deduplication
  • file versioning
  • filesystem-level encryption + signing support

GFS is p2p:

  • worldwide peer-to-peer file transfers
  • completely decentralized architecture
  • no central point of failure

GFS is a cdn:

  • add a file to the filesystem locally, and it's now available to the world
  • caching-friendly (content-hash naming)
  • bittorrent-based bandwidth distribution

GFS is a web:

  • can be used to view documents like the web
  • files accessible via HTTP at http://gfs.io/<path>
  • browsers or extensions can learn to use gfs:// directly
  • hash-addressed content guarantees authenticity

Design

See the paper.

Submodules

  • kademlia
  • coral
  • bitswap

BitSwap to implement:

  • PropShare
  • BEP0026
  • BEP0040
  • BEP0042