完全用JavaScript编写的完整P2P协议

P2P JavaScript协议

js-ipfs 为浏览器实现IPFS协议铺平了道路。它完全用JavaScript编写,可以运行在浏览器、Service Worker、Web扩展和Node.js中,打开了通向无限可能世界的大门。

js-ipfs 运行在浏览器、Service Worker、Web扩展和Node.js中,打开了通向无限可能世界的大门!

关闭动画
js-ipfs库当前为Alpha版本。代码库未经安全专家审核,请勿用于存储、共享或者发布敏感信息。

功能特性

js-ipfs实现你所了解和喜爱的IPFS的全部功能。同时,还专门为浏览器开发了特有功能,js-ipfs为分布式web应用开发提供了强大的工具支持。

运行在Node.js和浏览器中

js-ipfs在Node.js,Electron和任何现代浏览器上开箱即用。 同时,它可以通过定制化设计满足您的个性化使用需求。

实现完整的IPFS技术栈

js-ipfs不是一个轻量级的客户端,它完整的实现了IPFS协议的全部功能,没有任何功能被遗漏。

利用PubSub功能与其它节点进行实时通信

IPFS节点基于兴趣主题创建网络拓扑结构,以实时广播相关事件。

从IPFS网络中的任何位置添加和检索文件

IPFS被设计用来通过内容寻址能力去从网络中寻找有你想要内容的节点。其它节点也能通过同样的方式找到你添加的数据。

利用DAG API遍历任意哈希链数据结构

IPFS使用IPLD(星际链接数据模型)使您能够与多种数据源(如git,区块链等)的数据进行交互。

内建libp2p功能

libp2p是一个模块化网络栈。它是为IPFS所开发的网络层功能,现在您可以通过IPFS在应用程序中直接使用。

作为守护程序运行

js-ipfs也可以作为守护进程运行,以便您可以使用已经熟悉的HTTP API(源自于go-ipfs)与其进行交互。

为可变数据创建固定地址

利用IPNS(星际命名系统),在身份验证和认证的基础上,通过创建可变指针(记录)的方式来发布内容更新。

入门指南

IPFS 为您在DWeb上的所有数据提供原始内容寻址。您可以向网络添加数据,也可以通过内容标识符CID获取数据。试试以下内容,或者浏览我们的ProtoSchool 教程!

添加数据到IPFS

输出结果

从IPFS获取数据

在浏览器或者Node.js中使用JavaScript

输出结果

使用CLI

使用HTTP网关

https://ipfs.io/ipfs/
了解更多

Service Worker网关

无需借助任何服务器,也无需使用HTTP从IPFS网络获取内容即可将此页面转换为完整的IPFS网关! 是的,你没看错,带有js-ipfs的Service Worker网关可以直接连接到IPFS网络。

启用Service Worker

看看大家正在使用它做什么

去中心化的Internet Archive。支持访问分布式Web中超过四千万份的存档文件。使用内容种子网关和JavaScript编写用户界面,同时支持Firefox和Chrome。

Project Preview

你能通过js-ipfs做什么

你有很多种方式来使用js-ipfs。下面的示例给您提供了一个你能通过js-ipfs做什么的想法,试试吧!

Stream Video through IPFS
Upload and send files

您有什么好的想法或建议吗?分享一下!

内容发布和专题演讲

查看IPFS社区关于JavaScript项目的最近更新,观看演示和其它演讲视频。更多关于IPFS开发者会与的精彩演讲内容会陆续在这里发布。

IPFS on the Brave Browser, Alan Shaw

CRDTs as the foundation for Distributed Web Apps, Pedro Teixeira

A Regular JS Core Dev Call, join us!

社区

js-ipfs是来自于IPFS社区的开源项目,使用MIT许可协议。您可以通过多种方式为项目作出贡献:撰写使用文档、编写应用和工具、创建示例和教程,加入我们的团队(https://github.com/ipfs/team-mgmt#synchronous-communication)与我们一起讨论IPFS。

来吧,快来加入我们!