星际文件系统IPFS(Inter-Planetary File System)是一个面向全球的、点对点的分布式版本文件系统,目标是为了补充(甚至是取代)目前统治互联网的超文本传输协议(HTTP),将所有具有相同文件系统的计算设备连接在一起。原理用基于内容的地址替代基于域名的地址,也就是用户寻找的不是某个地址而是储存在某个地方的内容,不需要验证发送者的身份,而只需要验证内容的哈希,通过这样可以让网页的速度更快、更安全、更健壮、更持久。
IPFS is a global, versioned, peer-to-peer filesystem. It combines good ideas from previous systems such as Git, BitTorrent, Kademlia, SFS, and the Web. It is like a single BitTorrent swarm, exchanging git objects. IPFS provides an interface as simple as the HTTP web, but with permanence built-in. You can also mount the world at /ipfs.
IPFS 云成为一个新的、重要的网络子系统,如果构建得当,可以完善或者替换 HTTP,或者更多。
IPFS 结合了 Git,BitTorrent,Kademlia,SFS 和 Web 的优势,提供跟 HTTP web 一样简单的接口。
IPFS 分为 3 个代码库:
-
github.com/ipfs/ipfs - IPFS 规范
-
github.com/ipfs/go-ipfs - Go 实现
-
github.com/protocol/ipfs-webui - Web 工作台
USAGE: ipfs - global p2p merkle-dag filesystem ipfs [<flags>] <command> [<arg>] ... BASIC COMMANDS init Initialize ipfs local configuration add <path> Add an object to ipfs cat <ref> Show ipfs object data get <ref> Download ipfs objects ls <ref> List links from an object refs <ref> List hashes of links from an object DATA STRUCTURE COMMANDS block Interact with raw blocks in the datastore object Interact with raw dag nodes file Interact with Unix filesystem objects ADVANCED COMMANDS daemon Start a long-running daemon process mount Mount an ipfs read-only mountpoint resolve Resolve any type of name name Publish or resolve IPNS names dns Resolve DNS links pin Pin objects to local storage repo gc Garbage collect unpinned objects NETWORK COMMANDS id Show info about ipfs peers bootstrap Add or remove bootstrap peers swarm Manage connections to the p2p network dht Query the dht for values or peers ping Measure the latency of a connection diag Print diagnostics TOOL COMMANDS config Manage configuration version Show ipfs version information update Download and apply go-ipfs updates commands List all available commands Use 'ipfs <command> --help' to learn more about each command.