http://www.xiaoyenzi.com

IPFS是分布式Web

IPFS是分布式Web

目录

  • 概观
    • 快速摘要
  • IPFS的工作原理
    • IPFS论文
    • IPFS会谈
  • 更多关于IPFS
    • IPFS的现状
    • Alpha分布
    • 安全问题和披露
  • 项目和社区
  • 项目链接
    • 协议实现
    • HTTP客户端库
    • 项目目录
    • 其他社区资源
  • 执照

概观

IPFS(InterPlanetary文件系统)是一种新的超媒体分发协议,由内容和身份来处理。IPFS支持创建完全分布式应用程序。它旨在使网络更快,更安全,更开放。

IPFS是一种分布式文件系统,旨在将所有计算设备与相同的文件系统连接起来。在某些方面,这类似于Web的原始目标,但IPFS实际上更类似于交换git对象的单个bittorrent swarm。您可以在论文IPFS - 内容寻址,版本化,P2P文件系统中阅读有关其起源的更多信息

IPFS正在成为互联网的一个新的主要子系统。如果构建正确,它可以补充或替换HTTP。它可以补充或替代更多。听起来很疯狂。疯狂的。

 

想看更多?查看Juan Benet在Sourcegraph的演讲 - IPFS:The Permanent Web

快速摘要

IPFS是一个协议:

  • 定义内容寻址文件系统
  • 协调内容交付
  • 结合了Kademlia + BitTorrent + Git

IPFS是一个文件系统:

  • 有目录和文件
  • 可安装的文件系统(通过FUSE)

IPFS是一个网站:

  • 可用于查看Web等文档
  • 可通过HTTP访问的文件 https://ipfs.io/<path>
  • 浏览器或扩展可以学习直接使用ipfs://URL或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 - 内容寻址,版本化,P2P文件系统(草案3)
  • 规格(在制品)
  • 另见:https//github.com/ipfs/papers

IPFS会谈

这是一个简短的介绍性会谈选择。我们会在这里收集更多。

  • 2014年7月21日- IPFS:常驻网络Sourcegraph(首次公开谈话)
  • 2015-02-20 - IPFS Alpha演示
  • 2015-06-03 - IPhere 动手介绍以太坊SV Meetup
  • 2015-10-22 - IPFS:斯坦福研讨会的分布式永久网络(项目最佳概述)
  • 2016-09-14 - 使用IPFS的分布式应用程序
  • 2016-10-22 - 分散式网络,IPFS和Filecoin

请参阅IPFS Media的完整列表

更多关于IPFS

IPFS项目旨在发展互联网和网络的基础设施,我们从成功的系统中学到了很多东西,比如GitBitTorrentKademlia比特币以及许多其他系统。这是在另一个时代ARPA / DARPA / IETF / BellLabs会产生的那种情况。IPFS是一个免费开源项目,有数百个贡献者。

IPFS的现状

IPFS正在进行中!

请注意,IPFS正在进行中。这是一项雄心勃勃的计划,旨在让互联网更加自由,开放,安全,高效。它建立在众多经过实战考验的分布式系统的好主意之上。

今天,有一个主要的IPFS协议实现(在Go中),其中包含更多内容JavaScriptPython)。

Alpha分布

2015年2月,go-ipfs实现作为“Alpha发布”发布。从那时起,go-ipfs一直在向Beta发布定期版本。无论JS-IPF问题PY-IPF问题正在进行中。

  • 安装IPFS Alpha Distribution
  • 设置IPFS和入门
  • 上网
  • 更多例子

有关深入的教程,请参阅动手介绍

安全问题和披露

IPFS协议及其实现仍处于重大发展阶段。这意味着我们的协议可能存在问题,或者我们的实现可能存在错误。而且 - 尽管IPFS还没有生产就绪 - 许多人已经在他们的机器上运行节点。因此,我们非常重视安全漏洞。如果您发现安全问题,请立即引起我们的注意!

如果您发现可能影响实时部署的漏洞(例如,通过公开远程执行漏洞利用),请将您的报告私下发送至security@ipfs.io请不要提交公共问题。

如果问题是无法立即利用的协议弱点或尚未部署的问题,请公开讨论。

项目和社区

IPFS项目现在规模很大,我们社区有数百名贡献者。你被邀请加入!以下是我们沟通渠道的一些链接:

  • IPFS社区论坛讨论和支持
  • Sprint和项目管理
  • 贡献指南

您还可以找到我们的社区:

  • IRC:chat.freenode.net上的#ipfs用于实时帮助和一些开发讨论(日志
  • Google Group:ipfs-users@groups.google.com(流量低)
  • Twitter:@IPFSbot获取新闻。

项目链接

IPFS项目很大 - 有许多子项目和相关工作。我们将在这里记录核心内容,但您应该环顾四周。这个空间正在爆炸,许多新项目一直在涌现。

对于使用IPFS的社区策划的令人敬畏的项目列表,请查看awesome-ipfs

协议实现

语言 项目 完整性
https://github.com/ipfs/go-ipfs 参考
JavaScript的 https://github.com/ipfs/js-ipfs α
蟒蛇 https://github.com/ipfs/py-ipfs 开始
C https://github.com/Agorise/c-ipfs 开始

如果您想要开始自己的IPFS语言实现,请查看“ IPFS实施指南”和“ 规范”规格仍在不断发展,但核心格式稳定,可以构建。如果您想开始努力,请务必发布问题,因为许多人表示有兴趣为新实施做出贡献。

HTTP客户端库

IPFS http客户端lib徽标

语言 客户端库 完整性
https://github.com/ipfs/go-ipfs-api ??
Java的 https://github.com/ipfs/java-ipfs-api ??
JavaScript的 https://github.com/ipfs/js-ipfs-api 100%
蟒蛇 https://github.com/ipfs/py-ipfs-api ??
斯卡拉 https://github.com/ipfs/scala-ipfs-api ??
Clojure的 https://github.com/keorn/clj-ipfs-api ??
Clojurescript https://github.com/district0x/cljs-ipfs-http-client 100%
哈斯克尔 https://github.com/davidar/hs-ipfs-api ??
迅速 https://github.com/ipfs/swift-ipfs-api ??
CommonLisp https://github.com/WeMeetAgain/cl-ipfs-api ??
https://github.com/ferristseng/rust-ipfs-api ??
  https://github.com/gkbrk/rust-ipfs-api ??
  https://github.com/rmnoff/rust-ipfs-api ??
  https://github.com/rschulman/rust-ipfs-api ??
红宝石 https://github.com/Fryie/ipfs-ruby ??
Mac Automator https://github.com/NeoTeo/ipfs-osx-service ??
PHP https://github.com/cloutier/php-ipfs-api ??
  https://github.com/digitalkaoz/php-ipfs-api ??
C# https://github.com/jeremy-ellis-tech/net-ipfs-http-client ??
  https://github.com/richardschneider/net-ipfs-api ??
C ++ https://github.com/vasild/cpp-ipfs-api ??
二郎神 https://github.com/hendry19901990/erlang-ipfs-http-client ??
目标C. 还没有 ??
朱莉娅 联系方式:@rened ??
LUA 联系方式:@seclorum ??

请通过贡献上述客户端库之一来提供帮助。如果您想创建另一个,请参阅IPFS HTTP客户端实施指南,并告诉我们,以便我们提供帮助!

项目目录

这旨在成为IPFS Github组织中所有各种存储库的目录,以及其他密切相关的事物。

我们有一个状态板,可以检查所有IPFS存储库的CI,自述文件,测试覆盖率等,这里:http//project-repos.ipfs.io/

项目组织

  • ipfs - 主要回购,介绍和新闻。
  • 话语 - 社区讨论和支持论坛。
  • tm - 项目的IPFS团队规划和管理

得到帮助!

寻求帮助的最佳地点是IPFS社区论坛#ipfs渠道中的IRC(freenode)

有两个已弃用的存储库包含常见问题解答支持使用这些作为参考,但在https://discuss.ipfs.io上发布任何新的问题或帮助请求

文件

  • 论文 - 关于IPFS的学术论文。
  • 规范 - IPFS协议的规范。
  • 笔记 - 各种相关的注释和讨论(不适合其他地方)。
  • 阅读列表 - 阅读理解IPFS的论文。

讨论

  • 档案 - 与IPFS协调档案工作。
  • archive-format - DAG存档格式。
  • research-bitswap - Repo讨论Bitswap研究。
  • bitswap-ml - Bitswap和机器学习。
  • research-crdt - Repo讨论crdt研究。
  • research-pubsub - Repo讨论pubsub研究。
  • blockchain-data - 使用IPFS存储区块链应用程序的数据。
  • POST - 人类交流的数据结构。

协议实现

  • go-ipfs - Go中的实现。
  • js-ipfs - 在Javascript中实现。
  • py-ipfs - 在Python中实现。

IPFS DSL

  • fsharp-ipfs-dsl - 嵌入式声明F#DSL over net-ipfs-api

IPFS GUI

  • ipfs-companion - Web浏览器扩展。
  • ipfs-desktop - 菜单栏/托盘桌面应用程序。
  • ipfs-webui - IPFS WebUI应用程序。
  • i18n - IPFS翻译项目:IPFS GUI和网站的众包翻译。
  • pm-ipfs-gui - 协调GUI应用程序的开发和维护。

IPFS上的应用程序

您可以在Awesome IPFS上找到一个不断增长的列表

社区基础设施

  • 博客 - IPFS博客。
  • 社区论坛
  • 发行版 - 构建/安装html页面的脚本。
  • 时事通讯 - 准备和存储IPFS通讯综述。在这里订阅。
  • 基础设施 - 社区的工具和系统。
  • ops-requests - 有关基础架构操作的请求。
  • project-repos CI状态和其他健康指标。
  • 网站 - IPFS社区网站http://ipfs.io的来源

参考清单

  • refs - 用于发布IPFS引用列表的工具。
  • refs-denylists-dmca - 针对IPFS公共网关的DMCA删除通知。
  • refs-solarnet-storage - 在Solarnet存储主机上存档的内容清单。

其他社区资源

  • 示例 - 有关如何使用go-ipfs的示例。
  • awesome-ipfs - 使用IPFS并在其上构建内容的有用资源。
  • logo - IPFS的徽标。

IPFS聚会

现在全世界都有大量的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的地方。
  • 在Awesome IPFS上查找不断增长的列表
文章来源:https://github.com/ipfs/ipfs

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。