Awesome
IPFS是分布式Web
一种点对点超媒体协议,使网络更快,更安全,更开放.
欢迎来到IPFS!为什么不观看视频演示开始?请发布问题和想法https://discuss.ipfs.io
校对 ✅
<!-- doc-templite START generated --> <!-- time = '2018 7.3' --> <!-- repo = 'ipfs/ipfs' --> <!-- commit = '26c0494a02e062f751928c9d423e5c64f2a183a7' -->翻译的原文 | 与日期 | 最新更新 | 更多 |
---|---|---|---|
commit | ⏰ 2018 7.3 | 中文翻译 |
-
⏰ 2018 7.12 开始 github source commit
-
⏰ 2018 7.13 结束
贡献
欢迎 👏 勘误/校对/更新贡献 😊 具体贡献请看
生活
If help, buy me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰
目录
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> <!-- END doctoc generated TOC please keep comment here to allow auto update -->概观
IPFS (星际文件系统) 是一种新的超媒体分发协议,由内容和身份定义地址. IPFS 支持创建完全分布式应用程序. 它旨在使网络更快,更安全,更开放.
IPFS是一种分布式文件系统,旨在将所有计算设备与 相同的 文件系统连接起来. 在某些方面,这类似于Web的原始目标,但 IPFS 实际上更类似于交换 git对象 的单个 bittorrent 节点 . 您可以在论文中阅读有关其起源的 白皮书IPFS - 内容寻址,版本化,P2P文件系统.
IPFS正在成为互联网的一个新的主要子系统. 如果构建正确,它可以补充或替换HTTP. 它可以补充或替代更多. 听起来很疯狂. 没错它是疯狂的.
想看更多?查看Juan Benet在Sourcegraph的演讲 -IPFS: 永久网络.
快速摘要
IPFS是一个协议:
- 定义内容寻址文件系统
- 协调内容交付
- 结合 Kademlia + BitTorrent + Git
IPFS是一个文件系统:
- 有目录和文件
- 可安装的文件系统 (通过FUSE)
IPFS是一个网站:
- 可用于查看Web等文档
- 可通过HTTP访问的文件
https://ipfs.io/<path>
- 浏览器或扩展程序可以学习直接使用
ipfs://
网址或dweb:/ipfs/
URI方案 - 哈希寻址内容保证真实性
IPFS是模块化的:
- 任何网络协议上的连接层
- 路由层
- 使用路由层DHT (kademlia/coral)
- 使用基于路径的命名服务
- 使用 bittorrent 启发的块交换
IPFS使用加密:
- 加密哈希内容寻址
- 块级重复数据删除
- 文件完整性+版本控制
- 文件系统级加密+签名支持
IPFS是p2p:
- 全球对等文件传输
- 完全分散的架构
- 没有中心点
IPFS是一个cdn:
- 在本地向文件系统添加一个文件,它现在可供全世界使用
- 缓存友好 (内容哈希命名)
- 基于bittorrent的带宽分配
IPFS有一个名称服务:
- IPNS,一个受 SFS 启发的名称系统
- 基于PKI的全局命名空间
- 有助于建立信任链
- 与其他 NSes 兼容
- 可以将 DNS, .onion, .bit 等映射到IPNS
IPFS如何运作
要了解有关IPFS如何工作的更多信息,请查看相关论文要么演讲. 你也可以探索 ipfs相关规范.
IPFS论文
- 白皮书IPFS - 内容寻址,版本化,P2P文件系统 (草案3)
- 产品规格 (工作正在进行中)
- 也可以看看: https://github.com/ipfs/papers
IPFS会谈
这是一个简短的介绍性会谈选择. 我们会在这里收集更多.
- 2014-07-21 -IPFS: 永久网络在Sourcegraph (第一次公开演讲)
- 2015-02-20 -IPFS Alpha演示
- 2015-06-03 -IPFS动手介绍在Ethereum SV Meetup
- 2015-10-22 -IPFS: 分布式永久Web斯坦福大学研讨会 (项目最佳概述)
- 2016-09-14 -带IPFS的分布式应用程序
- 2016-10-22 -分散网络,IPFS和Filecoin
更多关于IPFS
IPFS项目旨在发展互联网和网络的基础设施,我们从成功的系统中学到了很多东西,比如git,BitTorrent,Kademlia,比特币还有很多很多. 这是在另一个时代 - 就像ARPA/DARPA/IETF/BellLabs 会产生的那种情况. IPFS是一个免费开源项目,有数百个贡献者.
IPFS的现状
IPFS正在进行中!
请注意,IPFS正在进行中. 这是一项雄心勃勃的计划,旨在让互联网更加自由,开放,安全,高效. 它建立在众多经过实战考验的分布式系统的好主意之上.
今天,有一个主要的IPFS协议实现 (在go-ipfs) 更多的语言实现在路上 (JavaScript,和python) .
Alpha分布
2015年2月,go-ipfs实现作为"Alpha分发"发布. 从那以后,go-ipfs一直在向Beta发布定期版本. 都JS-ipfs和PY-ipfs正在进行中.
有关深入的教程,请参阅a动手介绍.
安全问题和披露
IPFS协议及其实现仍处于重大发展阶段. 这意味着我们的协议可能存在问题,或者我们的实现可能存在错误. 而且 - 虽然IPFS还没有生产就绪 - 许多人已经在他们的机器上运行节点. 因此,我们非常重视安全漏洞. 如果您发现安全问题,请立即引起我们的注意!
如果您发现可能影响实时部署的漏洞 (例如,远程执行漏洞) ,请将您的报告私下发送至 security@ipfs.io. 请不要提交公共问题.
如果问题是 无法立即利用的协议弱点 或尚未部署的问题,请公开讨论.
项目和社区
IPFS项目现在非常庞大,我们社区有数百名贡献者. 你被邀请加入吧!以下是我们沟通渠道的一些链接:
您还可以找到我们的社区:
- IRC: chat.freenode.net上的#ipfs现场帮助和一些开发讨论 (日志)
- 谷歌集团: ipfs-users@groups.google.com (低流量)
- 推特: @IPFSbot一些新闻.
项目链接
IPFS项目很大 - 有许多子项目和相关工作. 我们将在这里记录核心文件,但你应该环顾四周. 这个空间正在爆炸,许多新项目一直在涌现.
对于使用IPFS的社区策划的令人敬畏的项目列表,请查看真棒,ipfs!
协议实现
语言 | 项目 | 完整性 |
---|---|---|
Go | https://github.com/ipfs/go-ipfs | 参考 |
JavaScript | https://github.com/ipfs/js-ipfs | 残缺 |
python | https://github.com/ipfs/py-ipfs | 开始 |
C | https://github.com/Agorise/c-ipfs | 开始 |
如果您想开始自己的IPFS语言实现,请查看IPFS实现指南,和产品规格. 规范仍在不断发展,但核心格式是稳定的,可以构建. 如果您想开始努力,请确保发布问题,因为许多人表示有兴趣为新实现做出贡献.
API客户端库
请通过贡献上述客户端库之一,来提供帮助. 如果您想创建另一个,请参阅IPFS API客户端实现指南,和告诉我们所以我们可以帮忙!
项目目录
这旨在成为所有各种回购中的目录IPFS Github组织和其他密切相关的事情.
我们有一个状态板,可以检查所有IPFS存储库的CI,自述文件,测试覆盖率等,这里: http://project-repos.ipfs.io/
项目组织
得到帮助!
寻求帮助的最佳地点是IPFS社区论坛或者在IRC (freenode) 中#ipfs
渠道.
有两个已弃用的存储库包含常问问题和支持. 使用这些作为参考,但发布任何新的问题或请求帮助https://discuss.ipfs.io.
文件
讨论
规格讨论
- archive-format- DAG存档格式.
- research-bitswap- Repo讨论Bitswap研究
- bitswap-ml- Bitswap和机器学习.
- research-crdt- 回购讨论crdt研究
- research-pubsub- 回购讨论pubsub研究
- blockchain-data- 使用IPFS存储区块链应用程序的数据.
- POST- 人类通信的数据结构.
协议实现
API客户端实现
- http-api-spec- 蜂房IPFS HTTP API描述http://docs.ipfs.apiary.io
- js-ipfs-api- 在Javascript中实现.
- java-ipfs-api- 用Java实现.
- go-ipfs-api- 在Go中实现.
- python-ipfs-apI- 在Python中实现.
- py-ipfs-api- 用于IPFS API的python客户端库
- scala-ipfs-api- 在Scala中实现.
- swift-ipfs-api- 在Swift中实现.
- net-ipfs-apI- 在C#中实现.
IPFS GUI
- ipfs-companion- Web浏览器扩展
- ipfs-desktop- 菜单栏/托盘桌面应用程序
- ipfs-webui- IPFS WebUI应用程序
- pm-ipfs-gui- 协调GUI应用程序的开发和维护
IPFS上的应用程序
- astralboot- 直接从IPFS (TFTP,PXE Boot) 部署的低级引导服务器.
- ipget- wget for IPFS: 通过IPFS检索文件并在本地保存.
- 容器演示- 演示如何从IPFS启动docker镜像和VM.
- ipfs,geoip- 通过ipfs进行Geoip.
- npm在ipfs上- 关于IPFS的npm.
社区基础设施
- 博客- IPFS博客
- 社区论坛
- 分布- 用于构建/ install html页面的脚本.
- 基础设施- 社区的工具和系统.
- 通讯- 准备和存储IPFS通讯综述
- OPS-请求- 有关基础设施运营的请求
- 项目回购CI状态和其他健康指标
- 网站- IPFS社区网站的来源http://ipfs.io.
参考清单
- 裁判- 用于发布IPFS引用列表的工具.
- 裁判-denylists,DMCA- 针对IPFS公共网关的DMCA删除通知.
- 裁判-solarnet存储- 在Solarnet存储主机上存档的内容清单.
其他社区资源
- 例子- 关于如何使用go-ipfs的示例.
- 真棒,ipfs- 有用的资源,用于使用IPFS并在其上构建内容.
- ipfs,自述标准- 标准化所有IPFS Readme.md和其他markdown文件.
- ipld-例子- 与IPLD一起使用的数据结构示例,IPLD的新数据格式.
- 商标- IPFS的标志.
- 翻译项目- IPFS WebUI和ipfs.io网站的众包翻译.
IPFS聚会
我们鼓励并支持IPFS Meetup,如果您想开始,请告诉我们. 随意组织自己社区讨论和在主存储库中公布事件.
工具
安装
- install-go-ipfs- 安装go-ipfs shell脚本.
- install-js-ipfs- 通过npm或脚本标记安装js-ipfs.
- ipfs-update- IPFS的更新工具.
- fs-repo-migrations- 这些是迁移IPFS fs-repo版本.
- npm-go-ipfs- 从npm安装go-ipfs.
其他
- connections-globe- 用于查看所有IPFS对等方的交互式globe.
- dataviz- IPFS数据可视化.
- dir-index-html- 目录列表html.
- dnslink-deploy- 在Digital Ocean上自动设置DNS记录.
- file-browser- 通用IPFS文件浏览器UI
- fs-stress-test- 压力测试IPFS文件系统功能.
- js-ipfsd-ctl- 从JavaScript控制IPFS守护进程.
- ipfs-hubot- 用于IPFS的Hubot.
- ipfs-blob-store- 购买blob的地方.
Forks
- go-datastore (fork) - 键值数据存储接口
- golang-build (fork) - 持续构建和发布基础架构
- pinbot-irc (fork) - 用于ipfs irc频道的机器人,用于处理事物 (以及其他琐碎的任务)
实现子模块
还有更多,但我们会努力找到它们并在这里添加它们.
- go-blocks- 弃用,继续在go-ipfs内
- go-commands- 弃用,继续在go-ipfs内
- go-ipfs-util- go-ipfs和其他相关go包使用的常用实用程序.
- go-ipld- 实现IPLD规范在Go.
- go-iprs- Go-ipfs记录.
- go-libp2p- libp2p是一个网络堆栈和库模块化的IPFS项目,并单独捆绑供其他工具使用.
- go-log- go-ipfs使用的日志库.
- js-ipfs- 浏览器上的IPFS.
- js-ipfs-bitswap- IPFS使用的Bitswap'数据交换'协议的JavaScript实现 (https://github.com/ipfs/js-ipfs-block-service)- Block和BlockService的JavaScript实现 (https://github.com/ipfs/js-ipfs-unixfs-engine)- IPFS使用的布局和分块机制的JavaScript实现
- js-ipfs-repo- 实现IPFS回购规范在Javascript中.
- js-ipfs-unixfs- IPFS'unixfs (MerkleDAG顶部的Unix文件系统表示) 的JavaScript实现.
- js-libp2p- 在JavaScript中实现libp2p.
执照
MIT