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

时间:2017-07-29 10:30:52

标签: javascript ipfs

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

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

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

2 个答案:

答案 0 :(得分:4)

你有几个选择:

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

您正在开发PWA吗? js-ipfs适用于Android手机中的Chrome,请点击https://github.com/ipfs/js-ipfs/tree/master/examples了解如何开始使用。

答案 1 :(得分:3)

至少到目前为止,我的经验是,在任何语言中,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>
&#13;
&#13;
&#13;

祝你好运!