如何在不运行ipfs节点的情况下从Javascript app使用IPFS?

use*_*710 8 javascript ipfs

我有javascript应用程序(ReactJs),它将作为移动设备上的Android混合应用程序运行.我不想在移动设备上运行完整的IPFS节点,因为它会消耗大量的内存和能量.如何将我的应用程序连接到IPFS呢?

我看到了https://github.com/ipfs/js-ipfs-api#importing-the-module-and-usage,但它不再适用于移动设备,因为它作为独立服务运行.

可能我必须通过IPFS API(https://ipfs.io/docs/api/)连接到互联网上的某个IPFS节点,但是有没有办法在运行时发现运行节点并选择最快/最近一?

Dav*_*ias 6

您在这里有几个选择:

  • 你可以在一些云中托管一个 IPFS 节点,并让你的所有移动设备连接到它
  • js-ipfs在需要时运行节点实例,然后对其进行垃圾回收。

你在开发 PWA 吗?js-ipfs在 Android 手机的 Chrome 上运行良好,请查看https://github.com/ipfs/js-ipfs/tree/master/examples以了解如何开始。


Yit*_*hak 5

至少到目前为止,我的经验是,对于任何语言,IPFS 都没有任何好的包装器。至少,目前还没有。但这没关系,因为它使用起来非常简单。请记住,当您添加文件时,它会在标头中返回哈希值,而不是像您期望的那样在响应正文中返回。那真的把我搞砸了。除此之外,别无他物。

至于不需要运行它......你真的应该运行你自己的ipfs节点。这是确保您的内容在人们需要时仍然可用的唯一方法。然而,IPFS 上的缓存寿命似乎约为 8 小时,这非常惊人,但它不能替代实际成为网络的一部分。

也就是说,您可能能够找到可写的公共节点。你必须在谷歌上搜索,但我绝对肯定它们就在那里。

您可能还想为积极从事 IPFS 项目的人查看 Steemit 之类的频道。我在那里很幸运。很多关于 IPFS、Swarm、Web3 和 Dapps 的答案。

哦,要测试节点是否可写,请尝试以下操作:

<form action="http://[domain_name]:[port_number]/ipfs/api/v0/add" enctype="multipart/form-data" method="post">
    <input type="file" name="image" accept="image/*"/>
    <input type="submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

祝你好运!