1. IPFS点滴资讯首页
  2. 实战操作

在浏览器和其他IPFS节点间交换文件数据

这是一篇关于如何在浏览器节点、go-ipfs 节点或 js-ipfs 节点间交换数据的教程。

注: 由于js-ipfs@0.29.0 目前并不支持 DHT 寻址,获取数据的节点应该在浏览器节点的可连接(局域网或公网IP)的范围之内。

未来一旦限制解除,我们也将更新教程。

应用图示

本教程的目标是使用IPFS节点创建一个简单的应用程序,该节点使用WebRTC拨号到其他实例,同时使用WebSockets作为传输从浏览器IPFS节点拨号和传输文件。

在浏览器和其他IPFS节点间交换文件数据

教程目标

本教程的目标是让你最终得到如下页面:

在浏览器和其他IPFS节点间交换文件数据

分步说明

以下是我们将要做的事情:

  1. 在您的计算机上安装go-ipfsjs-ipfs节点
  2. 让系统进程实例(daemon)监听WebSockets
  3. 启动应用程序
  4. 使用WebSockets(桌面设备)拨号到节点
  5. 在所有节点之间传输文件!

只需按照下面的说明操作即可立即启动并运行!

1. 安装go-ipfs 或 js-ipfs

如果您已在计算机中安装了go-ipfsjs-ipfs,则可以跳过此步骤。 否则,请继续阅读。

本教程适用于go-ipfsjs-ipfs,所以你只需要选择安装其中的一个。

go-ipfs可以通过 这里 的文件安装。 或者,您可以按照 ipfs/go-ipfs 中的安装说明进行操作。

js-ipfs要求你安装 node 和 npm。 然后,您只需运行:

> npm install --global ipfs

这将在您的机器上为jsipfs添加别名; 避免因为go-ipfs被称为ipfs而引起的问题。

此时,就可以运行js-ipfsgo-ipfs了。 现在,初始化它:

> ipfs init

> jsipfs init

这将在您的主目录中设置IPFS存储库。

2. 让系统进程实例(daemon)监听WebSockets

现在您需要编辑配置config文件,即刚刚使用{js}ipfs init设置的配置文件。 它应该在~/.jsipfs/config 或 ~/.ipfs/config中,具体取决于你使用的是JS还是Go。

注:js-ipfs 默认情况下已经设置了WebSockets侦听器,因此如果您正在使用JS实现,则可以跳过此操作并启动实例(daemon)。

由于默认情况下Webflow支持当前未启用,因此您需要手动添加WebSockets地址。 查看您的配置文件以查找Addresses 部分:

"Addresses": {
  "Swarm": [
    "/ip4/0.0.0.0/tcp/4002"
  ],
  "API": "/ip4/127.0.0.1/tcp/5002",
  "Gateway": "/ip4/127.0.0.1/tcp/9090"
}

/ip4/127.0.0.1/tcp/9999/ws条目添加到Swarm数组中。 现在看起来应该是这样的:

"Addresses": {
  "Swarm": [
    "/ip4/0.0.0.0/tcp/4002",
    "/ip4/127.0.0.1/tcp/9999/ws"
  ],
  "API": "/ip4/127.0.0.1/tcp/5002",
  "Gateway": "/ip4/127.0.0.1/tcp/9090"
}

保存文件,它应该能够侦听Websockets。 我们已经准备好启动系统进程实例(daemon)了。

> ipfs daemon

> jsipfs daemon

您应该可以在输出中看到Websocket地址:

Initializing daemon...
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/127.0.0.1/tcp/9999/ws
Swarm listening on /ip4/192.168.10.38/tcp/4001
Swarm listening on /ip4/192.168.10.38/tcp/9999/ws
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/0.0.0.0/tcp/8080
Daemon is ready

检查第5行中的/ws,这意味着它正在监听。

3. 运行应用

确定你在目录 js-ipfs/examples/exchange-files-in-browser 下.

我们需要安装并捆绑依赖项来运行应用程序:

> npm install
...
> npm run bundle
...
> npm start

如果一切顺利,你应该看到如下内容:

Starting up http-server, serving public
Available on:
  http://127.0.0.1:12345
  http://192.168.2.92:12345
Hit CTRL-C to stop the server

现在在现代浏览器中访问http://127.0.0.1:12345,就大功告成了!

4. 使用WebSockets(桌面设备)拨号到节点

确保您正在运行IPFS实例(daemon)。否则,请运行:

> ipfs daemon

> jsipfs daemon

打开另一个终端窗口以查找它正在侦听的websocket地址:

> ipfs id

> jsipfs id

输出结果应该类似于: /ip4/127.0.0.1/tcp/9999/ws/ipfs/<your_peer_id>.

复制并粘贴 multiaddr 来连接到该节点:

在浏览器和其他IPFS节点间交换文件数据

检查是否已连接:

在浏览器和其他IPFS节点间交换文件数据

5. 在所有节点之间传输文件!

现在,可以通过CLI添加文件:

> ipfs add <file>

> jsipfs add <file>

复制并粘贴 multihash 并在浏览器中获取文件!

在浏览器和其他IPFS节点间交换文件数据

还可以打开两个浏览器标签页,在其中一个中拖放文件,然后在另一个中获取它们!

但本教程最酷的事情是pubsub! 您可以打开两个选项卡,这些选项卡将通过以url命名的工作空间共享文件。 尝试使用以下网址打开两个标签:

http://127.0.0.1:12345/#file-exchange
# 可以把 `file-exchange` 替换成任意你想要的字符,只要确保两个标签页在同一个工作空间就可以。

现在,您在一个选项卡中上传的每个文件都会出现在另一个中! 您甚至可以在该工作区中打开一个新选项卡,它将同步之前添加的文件!

在浏览器和其他IPFS节点间交换文件数据

点对点科技简介

点对点科技深耘IPFS与Filecoin技术,坚持区块链技术改变未来的信念。点对点 IPFS 数据中心是目前国内技术领先,性价比高、保障优的投资标的。自建杭州数据中心,合作数据中心分布于上海、宁波、河北、香港、斯德哥尔摩(瑞典)等地。点对点数据中心具有优秀的硬件配置与目前国内优质的网络节点资源。点对点科技力求将IPFS爱好者升级为IPFS领军者与受益者,让IPFS颠覆传统互联网,共同开启 WEB 3.0时代。

想了解更多区块链知识吗?关注我吧!

Filecoin测试网二阶段昨日重启,点对点出块第一! | 点滴资讯

原创文章,作者:mestery,如若转载,请注明出处:http://ipfsdrop.com/tech/exchange-files-in-browser/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论列表(1条)

  • Eric
    Eric 2018年8月13日 18:05

    棒棒哒