IPFS = InterPlanetary File System
IPFS 简介
IPFS 是分布式文件系统,寻求连接所有计算机设备的相同文件系统。IPFS 结合了 Git, BitTorrent, Kademlia, SFS 和 Web 的优势,提供跟 HTTP web 一样简单的接口。IPFS 云成为一个新的,重要的网络子系统,如果构建得当,那么可以完善或者替换 HTTP,或者说可以完善或者替代更多。在某些方面,这很类似于原始的 Web 目标,但是 IPFS 最终会更像单个比特流群交换的 git 对象。
IPFS 资源
IPFS 分为 3 个代码库:
- IPFS 规范:https://github.com/ipfs/ipfs
- Go 实现:https://github.com/ipfs/go-ipfs
- Web 工作台:https://github.com/protocol/ipfs-webui
IPFS 使用
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.
IPFS 项目和社区
The IPFS Project is now very large, with hundreds of contributors in our community. You are invited to join it! Here are some links to our communication channels:
- FAQs: Frequently Asked Questions
- Support and Getting Help!
- Sprints and Project Management
- Contributing Guidelines
You can also find our community on:
- IRC: #ipfs on chat.freenode.net for live help and some dev discussions (Logs)
- Google Group: ipfs-users@groups.google.com (low traffic)
- Twitter: @IPFSbot for some news.
IPFS 项目链接
The IPFS Project is big -- there are many subprojects and related efforts. We will document the core ones here, though you should look around. The space is exploding and lots of new projects are springing up all the time.
For a community-curated lists of awesome projects using IPFS, check out awesome-ipfs!
IPFS 协议实现
Language | Project | Completeness |
---|---|---|
Go | https://github.com/ipfs/go-ipfs | reference |
Javascript | https://github.com/ipfs/js-ipfs | incomplete |
Python | https://github.com/ipfs/py-ipfs | starting |
If you would you like to start your own language implementation of IPFS, check out the IPFS Implementation Guide, and the Specifications. The specs are still evolving, but the core formats are stable and can be built on. Make sure to post an issue if you would like to start an effort, as many people have expressed interest in contributing to new implementations.
IPFS 客户端SDK
Language | Client Library | Completeness |
---|---|---|
Go | https://github.com/ipfs/go-ipfs-api | |
Java | https://github.com/ipfs/java-ipfs-api | |
Javascript | https://github.com/ipfs/js-ipfs-api | |
Python | https://github.com/ipfs/py-ipfs-api | |
Scala | https://github.com/ipfs/scala-ipfs-api | |
Haskell | https://github.com/davidar/hs-ipfs-api | |
Swift | https://github.com/ipfs/swift-ipfs-api | |
CommonLisp | https://github.com/WeMeetAgain/cl-ipfs-api | |
Rust | https://github.com/rschulman/rust-ipfs-api | |
Ruby | https://github.com/Fryie/ipfs-ruby | |
Swift | https://github.com/NeoTeo/ipfs-osx-service | |
PHP | https://github.com/cloutier/php-ipfs-api | |
C# | https://github.com/TrekDev/net-ipfs-api | |
https://github.com/richardschneider/net-ipfs-api | ||
C/C++ | contact: @PayasR | 0% |
Julia | contact: @rened | 0% |
Lua | contact: @seclorum | 0% |
Erlang | ! | 0% |
Objective C | ! | 0% |
Please help by contributing to one of the above client libraries. If you would like to create another, please see the IPFS API Client Implementation Guide, and tell us so we can help!
IPFS 项目列表
This aims to be a directory of all the various repos in the IPFS Github Organization, and other closely related things.
We have a status board that checks all IPFS repositories for CI, Readmes, test coverage, and so on, here: http://project-repos.ipfs.io/
项目组织
- ipfs - Master repo, intro, and news.
- community - Community Discussions and documentation on community practices.
- pm - Community Sprints and Project Management.
得到帮助
- FAQ - Frequently Asked Questions, and answers. All questions are posed as GitHub issues.
- support - Support and Help with running IPFS. Post an Issue and we will help there or route you.
文档
- papers - Academic papers on IPFS.
- specs - Specifications on the IPFS protocol.
- notes - Various relevant notes and discussions (that do not fit elsewhere).
- reading-list - Papers to read to understand IPFS.
研究讨论
规格讨论
- archive-format - A DAG Archive format.
- bitswap-ml - Bitswap and Machine Learning.
- blockchain-data - Using IPFS for storing data for Blockchain apps.
- POST - A datastructure for human communication.
协议实现
- go-ipfs - Implementation in Go.
- js-ipfs - Implementation in Javascript.
- py-ipfs - Implementation in Python.
API 客户端实现
- http-api-spec - Apiary IPFS HTTP API description http://docs.ipfs.apiary.io
- java-ipfs-api - Implementation in Java.
- js-ipfs-api - Implementation in Javascript.
- go-ipfs-api - Implementation in Go.
- python-ipfs-api - Implementation in Python.
- py-ipfs-api - A python client library for the IPFS API
- scala-ipfs-api - Implementation in Scala.
- swift-ipfs-api - Implementation in Swift.
- net-ipfs-api - Implementation in C#.
IPFS 节点应用
基于IPFS发布Apps
- astralboot - Low level boot server that deploys directly out of IPFS (TFTP, PXE Boot).
- ipfs-web-app - IPFS web app interfaces.
- ipget - wget for IPFS: retrieve files over IPFS and save them locally.
- starlog - Blog posts in IPFS.
- container-demos - Demos on how to boot docker images and VMs from IPFS.
- ipfs-geoip - Geoip over ipfs.
- ipfs-npm - npm on IPFS.
社区架构
- blog - The IPFS Blog
- community - Community Discussions and documentation on community practices.
- distributions - Scripts to build the /install html page.
- infrastructure - Tools and systems for the community.
- newsletter - Prepare and store IPFS Newsletter roundups
- ops-requests - Requests about infrastructure operations
- project-repos CI status and other health metrics
- website - The source to the IPFS community website at http://ipfs.io.
引用列表
- refs - Tools for publishing lists of IPFS ref heads.
- refs-denylists-dmca - DMCA takedown notices for the IPFS Public Gateway.
- refs-solarnet-storage - Inventory of content archived on Solarnet storage hosts.
其它社区资源
- examples - Examples on how to use go-ipfs.
- awesome-ipfs - Useful resources for using IPFS and building things on top of it.
- ipfs-readme-standard - Standardize all IPFS Readme.md's and other markdown files.
- ipld-examples - Datastructure examples to use with IPLD, the new data format for IPFS.
- logo - The logo for IPFS.
- translation project - Crowdsourced translation of IPFS WebUI and the ipfs.io website.
IPFS 会议
- ipfs/lisbon - The IPFS meetup in Lisbon.
- ipfs/london - The IPFS meetup in London.
- More repos coming here. Check the community discussions for other meetups. (There's many now!)
We encourage and support IPFS Meetups, please let us know if you would like to start one. Feel free to organize yourself through the Community discussions and to advertise events in the main repository.
工具
安装
- install-go-ipfs - Install go-ipfs shell script.
- ipfs-update - An updater tool for IPFS.
- fs-repo-migrations - These are migrations for IPFS fs-repo versions.
- npm-go-ipfs - Install go-ipfs from npm.
其它
- connections-globe - An interactive globe to view all your IPFS peers.
- dataviz - IPFS data visualizations.
- dir-index-html - Directory listing html.
- dnslink-deploy - Automatically set DNS records on Digital Ocean.
- file-browser - Generic IPFS file browser UI
- fs-stress-test - Stress testing IPFS filesystem capabilities.
- ipfs-js-defaults - Sane defaults for IPFS node configurations.
- js-ipfsd-ctl - Control IPFS daemons from JavaScript.
- ipfs-hubot - Hubot for IPFS uses.
复制库
- go-datastore (fork) - key-value datastore interfaces
- golang-build (fork) - Continuous build and release infrastructure
- pinbot-irc (fork) - a bot for the ipfs irc channel that pins things (among other menial tasks)
实现子模块
Many more exist, but we will endeavor to find them and add them here.
- go-blocks - Deprecated, continued within go-ipfs
- go-commands - Deprecated, continued within go-ipfs
- go-ipfs-util - Common utilities used by go-ipfs and other related go packages.
- go-ipld - Implementation of the IPLD spec in Go.
- go-iprs - Go-ipfs records.
- go-libp2p - libp2p is a networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to use.
- go-log - A logging library used by go-ipfs.
- ipfs-blob-store - A place to buy blobs.
- ipfs.js - IPFS on the Browser.
- js-ipfs-bitswap - JavaScript implementation of the Bitswap 'data exchange' protocol used by IPFS
- js-ipfs-blocks - JavaScript Implementation of Block and BlockService
- js-ipfs-data-importing - JavaScript implementation of the layout and chunking mechanisms used by IPFS
- js-ipfs-path - Javascript helper functions for IPFS path handling.
- js-ipfs-repo - Implementation of the IPFS repo spec in Javascript.
- js-ipfs-unixfs - JavaScript implementation of IPFS' unixfs (a Unix FileSystem representation on top of a MerkleDAG)
- js-libp2p-ipfs-browser - libp2p build (module) used in js-ipfs when running it on the browser
- js-libp2p-ipfs - libp2p build (module) used in js-ipfs