Kay*_*Kay 5 ethereum ipfs decentralized-applications
我刚开始使用 IPFS 和以太坊。我们正在构建一个 dApp(移动)并计划用 IPFS 和以太坊替换标准的 API 和数据库层。所以,经过大量阅读后,我有以下问题,
使 dApp 直接与 IPFS(通过 IPFS API)对话以存储数据(应用程序数据或文件)并获取数据。即,用 IPFS 完全替换 API 层似乎是可能的,但是这种方法有什么问题吗?我们可以完全没有 API 吗?
如果第 1 点是可能的,访问文件数据是直接的,但如何访问应用程序。IPFS 中的数据(例如:推荐的存储和检索结构是什么,如何存储不同的用户数据等)?
我知道添加到 IPFS 的数据是公开可用的,我们如何保护该数据并使其仅对特定客户可用?据我了解,IPFS 中没有公钥/私钥机制?
当我们将视频存储在 IPFS 中时,要在客户端流式传输视频,我们是否需要使用 CDN,我不确定如何在分散的解决方案中做到这一点。
当某些事件被触发或由客户端应用程序命令时,IPFS 中是否有任何选项可以自动执行任务(例如:运行脚本)?
从节点查找和获取数据时,IPFS 是否存在任何已知的性能问题?
关于可用于实现上述方法的工具和框架的任何建议?
提前致谢。
让 dApp 直接与 IPFS 对话(通过 IPFS API)来存储数据(应用程序数据或文件)并获取数据。即,用 IPFS 完全取代 API 层似乎是可能的,但这种方法有什么问题吗?我们可以完全没有 API 吗?
取决于你想做什么。但是,通过内容寻址存储、IPNS 和 ipfs pubsub,您可以使用所有组件来编写一些不使用任何集中式服务的非常复杂的应用程序。
特别是 pubsub 仍处于实验阶段。但 IPFS 的最新版本 0.4.18 包含一个新的 pubsub 实现,它应该具有更高的可扩展性。
如果第 1 点可行,则访问文件数据很简单,但如何访问应用程序。IPFS 中的数据(例如:建议的存储和检索结构是什么,如何存储不同的用户数据等)?
您只需在您控制的 IPNS 密钥下发布您的应用程序即可。假设我们在这里讨论的是 javascript/typescript 应用程序,您可以像平常一样使用 webpack 等工具打包它们,然后将最终的工件放在 IPFS 上并使用 IPNS 发布。
我了解添加到 IPFS 的数据是公开可用的,我们如何保护该数据并使其仅对特定客户端可用?据我了解IPFS中没有公钥/私钥机制?
每个 IPFS 节点都有一个公钥/私钥对。您可以使用它来加密节点的消息或对来自节点的消息进行签名。这在 IPNS 中使用。每个节点可以有多个密钥对。
当我们将视频存储在 IPFS 中时,为了在客户端中传输视频,我们是否需要使用 CDN,我不确定如何在去中心化解决方案中做到这一点。
IPFS 基本上是一个 CDN。因此您无需使用额外的 CDN。您还可以使用Cloudflare IPFS 网关。
目前正在努力使 IPFS 非常高效地分发视频等大型文件。已经有一些应用程序在使用它,例如D.Tube
当某些事件被触发或客户端应用程序发出命令时,IPFS 中是否有任何选项可以自动执行任务(例如:运行脚本)?
不。IPFS/libp2p 基本上是分布式网络的网络堆栈。如果您想要诸如由事件触发的脚本自动执行之类的功能,您要么必须在 IPFS pubsub 之上自行编写,要么使用更高级的中间件,例如Orbit DB。
从节点查找和获取数据时,IPFS 是否存在任何已知的性能问题?
是的。IPFS 还很年轻。例如,目前正在解决来自许多对等点的大文件分发问题。许多公司在生产中使用 IPFS,但您将生活在最前沿,并且偶尔会遇到问题。
关于可用于实现上述方法的工具和框架有什么建议吗?
如果不了解总体目标和开发人员的技能水平,就很难回答。如果您想要最大性能,则必须直接使用 IPFS 或 libp2p。首先,构建 OrbitDB 之类的东西可能是有意义的。
还有很多JS-IPFS入门示例。
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |