gpt4 book ai didi

ethereum - 如何使用 IPFS 存储应用程序状态(作为 dApp 的后端)?

转载 作者:行者123 更新时间:2023-12-04 11:31:22 41 4
gpt4 key购买 nike

我刚开始使用 IPFS 和以太坊。我们正在构建一个 dApp(移动)并计划用 IPFS 和以太坊替换标准的 API 和数据库层。所以,经过大量阅读后,我有以下问题,

  • 使 dApp 直接与 IPFS(通过 IPFS API)对话以存储数据(应用程序数据或文件)并获取数据。即,用 IPFS 完全替换 API 层似乎是可能的,但是这种方法有什么问题吗?我们可以完全没有 API 吗?
  • 如果第 1 点是可能的,访问文件数据是直接的,但如何访问应用程序。 IPFS 中的数据(例如:推荐的存储和检索结构是什么,如何存储不同的用户数据等)?
  • 我知道添加到 IPFS 的数据是公开可用的,我们如何保护该数据并使其仅对特定客户可用?据我了解,IPFS 中没有公钥/私钥机制?
  • 当我们将视频存储在 IPFS 中时,要在客户端流式传输视频,我们是否需要使用 CDN,我不确定如何在去中心化解决方案中做到这一点。
  • 当某些事件被触发或由客户端应用程序命令时,IPFS 中是否有任何选项可以自动执行任务(例如:运行脚本)?
  • 从节点查找和获取数据时,IPFS 是否存在任何已知的性能问题?
  • 关于可用于实现上述方法的工具和框架的任何建议?

  • 提前致谢。

    最佳答案

    Making dApp directly talk to IPFS (via IPFS APIs) to store data (app. data or files) and fetch data. ie, completely replacing the API layer with IPFS seems possible, but is there any issue with this approach? can we live without APIs at all?



    取决于你想做什么。但是通过内容寻址存储、IPNS 和 ipfs pubsub,您可以使用所有组件来编写一些不使用任何集中服务的非常复杂的应用程序。

    尤其是 pubsub 仍然是实验性的。但是最新版本的 IPFS 0.4.18 包含一个新的 pubsub 实现,该实现应该更具可扩展性。

    If point 1 is possible, accessing the file data is straight forward but how to access the app. data in IPFS (e.g: what is the recommended structure to store and retrieve, how to store different user data etc)?



    您只需在您控制的 IPNS key 下发布您的应用程序。假设我们在这里讨论的是 javascript/typescript 应用程序,您可以像通常那样打包它们,使用 webpack 之类的工具,并将最终的人工制品放在 IPFS 上并使用 IPNS 发布。

    I understand that the data added to IPFS is available publicly, how can we protect that data and make it available only for the specific client? As I understand that there is no public/private key mechanism in IPFS?



    每个 IPFS 节点都有一个公钥/私钥对。您可以使用它来加密节点的消息或对来自节点的消息进行签名。这在 IPNS 中使用。每个节点可以有多个 key 对。

    When we store videos in IPFS, to stream the video in the client, do we need to use CDNs and I am not sure how to do that in a decentralised solution.



    IPFS 基本上是一个 CDN。因此,您不必使用额外的 CDN。您也可以使用 Cloudflare IPFS gateway .

    目前正在进行使 IPFS 非常有效地分发非常大的文件(例如视频)的工作。已经有应用程序在使用它,例如 D.Tube

    Is there any option available in IPFS to perform a task (e.g.: running a script) automatically when some events are triggered or upon commanded by the client apps?



    不。IPFS/libp2p 基本上是分布式 Web 的网络堆栈。如果你想要自动执行由事件触发的脚本等功能,你要么必须在 IPFS pubsub 之上自己编写它,要么使用更高级的中间件,例如 Orbit DB .

    Is there any known performance issues with IPFS when finding and fetching the data from a node?



    是的。 IPFS 还很年轻。例如。来自许多对等方的大文件分发存在一个问题,即 currently being worked on .许多公司在生产中使用 IPFS,但您将生活在最前沿,偶尔会遇到问题。

    Any suggestion on the tools and frameworks available to achieve the above approach?



    如果不了解总体目标和开发人员的技能水平,就很难回答。如果您想要获得最大性能,则必须直接使用 IPFS 或 libp2p。首先,构建在 OrbitDB 之类的东西上可能是有意义的。

    JS-IPFS的例子也很多开始。

    关于ethereum - 如何使用 IPFS 存储应用程序状态(作为 dApp 的后端)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53069864/

    41 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com