问题标签 [gundb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
67 浏览

gun - gun.map() 在根节点上的期望行为是什么?

使用结果:

在枪 0.2020.430 中,正在向 localStorage 写入以 . 为前缀的(根?!)节点的名称undefined

由于前缀,我想这是一个错误,但结果应该是没有前缀或根本没有?

我想,没有什么是更好的选择,因为它可以防止可能的粗暴行为,比如覆盖所有数据......但是?

0 投票
2 回答
373 浏览

gun - 如何使用 GUDB 上传和下载媒体文件?

我正在尝试使用 GUN 创建一个文件共享平台。我阅读了教程和 API,但找不到上传/下载文件的通用方法。

听说 GUN 的 localStorage 有 5Mb 的限制,如果我想上传一个大文件,我必须把它切片然后存储到 GUN。但是现在我找不到将文件存储到 GUN 中的方法。

我从Retric阅读了这个问题,我知道如何将图像存储到 GUN 中,但是我可以存储其他类型的文件,例如.zip.doc文件吗?是否有用于文件存储的通用 API?

0 投票
0 回答
93 浏览

node.js - 使用 Gun 构建树结构

我正在尝试通过 Gun 实现一个树形结构,该结构允许表达公司、这些公司的子公司及其产品之间的关系。我所做的结构如下:

  • 有一个根节点:这是某些产品(例如传感器)的主要销售者,其所有子节点(深度节点 1)都是其客户;
  • 从深度 1 开始有子节点,而不是叶子:这些是根结的客户;他们可以有不同的分支;支行可以有子支行等,支行数量不限;
  • 有叶结:这些是包含在一个分支,一个子分支,一个子分支中的产品......

这是我的想法:

  • 创建一个client集合;
  • 将客户端节点放入client集合中;
  • 创建一个branch集合;
  • 将分支节点放在branch集合中;
  • 链接branches设置为client设置;
  • 创建一个sensor集合;
  • 将传感器节点放在sensor集合内;
  • 链接sensors设置为branches设置。

有人这样想:

这是我的实现

有两点我无法澄清:

1 - 我不知道我是否很好地使用了 Gun set:我尝试添加一些关系但没有成功;考虑以下说明:

我试图client为两个客户节点建立关系,但打印rootNode显示我只与节点rootNode有关系!与节点的第一个关系消失了,所以我开始使用 Gun 集。我的代码有效(或多或少),但我不知道我是否正确使用 Gun set以及这是否是正确的方法,因为我想在主要供应商、客户、客户分支机构之间建立这种关系和每个分支中的传感器。clientfrankMirrorsmacDoland

2 - 我想让这种方法更通用和可扩展:现在有客户端、分支和传感器;这可能会在未来发生变化,客户端和传感器之间的级别数量可能会增加。这意味着客户端节点(深度 1)和传感器(最大深度)之间可能存在任意数量的级别:例如,一个非常小的客户端可能没有分支,因此它的客户端节点smallCompany将直接链接到它的sensors; 再举一个例子,一个巨大的客户可能有(比如说)五个深度级别,我不想硬编码 Gun 集名称,例如macDolandNySubSubSubSubBranch. 如何为任意数量的子分支提供可扩展性?

0 投票
1 回答
154 浏览

javascript - Gun 如何在有时断开的 P2P 网络中管理用户

请帮助我了解 Gun 如何在有时断开的 P2P 网络中管理用户。

假设有两个 Gun 实例I1I2被配置为对等点,并且假设用户“doe”事先不存在于 I1 或 I2 上。假设在 I1 和 I2 未连接时在两个实例上都创建了用户“doe” 。两次尝试都应该成功。为了争论,让我们在 I1 doe1上调用“doe”用户,在 I2 上调用 doe2

现在,当 I1 和 I2 连接时会发生什么?doe1 和 doe2 是否被认为是同一个用户?是否取决于用户注册时提供的密码?

我的理解是,只要用户注册时提供的密码相同,就可以。这是合理的。但我最大的问题是,如果他们被赋予不同的密码怎么办?

我认为在这种情况下, doe1 和 doe2 将被视为不同的用户......但那又如何呢?I1 和 I2 将如何处理这种情况?I1 会简单地拒绝 doe2 吗?反之亦然?还是留给实施?

您的建议将不胜感激。谢谢你。

安郎

0 投票
1 回答
532 浏览

javascript - 如何隔离 Gunjs 数据库?

几天来我一直在尝试 GunJs,我真的很喜欢它。作为一个初学者项目,我关注了旨在建立自己的聊天的Fireship 聊天 dapp 视频。

这是问题所在,既然我已经完成了教程,我想创建自己的聊天。但是,由于某种原因,如果我在自己的应用程序中获得一个“聊天”节点,它似乎会在与在线教程节点相同的“聊天”节点上找到。

如果我更改加密密钥(然后消息变得未定义),情况也是如此。由此产生了多个问题:

  • 图形节点名称在整个 GunDb 中是唯一的吗?
  • 当两个基于枪的应用程序调用相同的节点名称时,您如何处理冲突?
  • 这个问题通常是通过使用“标题”道具过滤来解决的吗?
  • 如何让它只接收我的数据?

即使我已经阅读了大部分文档,但在理解图表通常如何在应用程序之间分离时,我似乎还缺少一些东西。任何有关其工作原理的见解将不胜感激。

0 投票
0 回答
30 浏览

javascript - Gundb:只有在第二次执行链时才调用Once-Callback

我有一个存储练习结果的图表。该图如下所示:
EXERCISE_RESULTS -> <ExerciseId> -> <Date> -> ResultEntry

现在我想通过使用以下链命令来检索一个练习 ID 节点:
gun.get(TableKeys.EXERCISE_RESULTS).get(exerciseId).once(callback)
当我执行链时,一次方法的回调没有被调用。但是,如果我再次调用它,则将使用ExerciseId-Node 的数据调用回调。

你知道这种行为的原因可能是什么吗?

我用的是枪版0.2020.1232