从mongo等其他来源将数据导入到全息链中的最佳方法是什么?

时间:2018-11-22 21:46:42

标签: mongodb holochain holochain-rust

MongoDB => Holochain Rust DHT

如何导入(如果可能)

如果我使用不同的应用程序后端(例如mongo),并且正确设置并配置了Holochain,是否有办法将数据从mongo传输到holochain?我该怎么办?

Here is the question in context

1 个答案:

答案 0 :(得分:2)

在技术上绝对可行;您可以编写一个nodejs脚本,使用holochain-nodejs库启动Holochain容器,并将所有数据作为一个代理导入。然后,当用户加入基于HC的网络时,他们会以某种方式保证其身份并将所有数据“声明”为他们的。 这是它外观的草图:

  • 您(我们称您为“代理商0”)导入所有数据。
  • 为每个用户创建一个具有用户ID的“锚”(我将在 秒)并将每个数据链接到锚点。
  • 您还记录了 用户的密码哈希作为您自己的源链上的私有条目。一种 用户加入网络,需要证明其连续性 身份。
  • 他们通过使用节点到节点消息传递来发送他们的消息 用户ID及其密码散列给您。您授权他们 通过发布一个说“代理人”的条目来声明其身份 公钥x =用户ID”。(您可能希望链接到您的 他们的用户ID锚和公钥的授权条目, 为了方便起见。)
  • 用户通过询问收集所有数据 所有指向其用户ID锚的链接。
  • 然后用户发布 将他们的每条数据都存储到自己的源链中 “宣称”它的所有权。
  • 现在,数据中的每个冗余副本 DHT在其元数据字段中有两位作者-您和用户 真正拥有数据。同行通过以下方式验证该数据 说,“代理商0是否已经是此数据的作者?
  • 如果是这样, 代理0发布了一个授权条目,说新的 允许该数据的作者声明/重新发布它?“

这种方法存在的问题(并非不可克服):

  • 代理商0必须一直在线,因为他们永远不知道何时有新代理商 用户将要注册并尝试声明其数据。代理0必须 导入大量数据。 (我认为这不会很大 时间限制)

  • 对于关系数据,存在如何解决的“鸡蛋和鸡蛋”问题 如果数据不存在,则创建链接。我在想不要链接 数据到数据-可以在初始导入时完成-但可以链接 数据给人类,人类现在拥有一个可能不存在的公共密钥 DHT,因为他们还没有加入网络。那会 加入后总是必须按用户进行操作,这可能会创建 一些循环依赖问题。

锚点

Re:锚点,锚点只是由基础和链接组成的模式-基础是简单的字符串,因此任何知道该字符串的人都可以通过哈希轻松找到它。它充当了链接的锚点。这就是为什么我建议使用它将旧版用户ID连接到内容的原因。您可以在https://github.com/holochain/mixins/tree/master/anchors处获得用于实现锚模式的示例源代码(请注意,这是针对旧版Holochain的,因此是用JavaScript编写的。)

(答案提供者 pauldaoust)