问题标签 [gun]

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 投票
2 回答
116 浏览

gun - 可以集成 RxJS/Most Observable 吗?

我希望能够使用某种 Observables 库来与我系统的其他部分集成。

看起来拥有 Observables 流可以很好地与gun. :)

0 投票
1 回答
974 浏览

javascript - 如何从 GunDb 节点获取密钥

我已经开始使用 GunDB,我真的很喜欢它。我可以轻松创建复杂的关系,而不会出现与关系或文档数据库相关的许多问题。

不幸的是,我遇到了一个看似简单的问题。

我已经成功创建了节点,但后来想获取密钥,以便将它们嵌入到页面中。例如,在一个页面上,我正在使用表单添加用户。然后,在另一个页面上,我想获取用户列表并创建一个选择输入,将他们的姓名列为文本,将键列为值。

例如,在第一页我有类似 -

另一页,我有类似的东西 -

后来,我想在类似的地方使用选项值 -

不幸的是,我不知道如何获得钥匙。它似乎在节点对象中保存为“#”,但我无法确定如何访问该值。

0 投票
0 回答
149 浏览

database - 如何验证枪支的变化?

在 github 上 gun repo 的 wiki 中,有一个关于“安全、身份验证、授权”的部分(维基页面)。它描述了如何避免有人对数据进行无效更改,例如向数据库发送垃圾邮件或擦除整个数据库的问题,但没有描述如何在 gun 中解决问题。所以问题很简单:

它是如何解决的?

非常感谢!

0 投票
1 回答
867 浏览

gun - 用于大型集中存储数据、小型协作客户端的 gun db 存储模型

用例:

假设我想创建一个实时协作的文档编辑系统。

在这种情况下,许多用户可以创建和协作处理许多文档。

由于客户端设备的限制,任何客户端都无法保留所有文档的副本,只有少数。

需要有一个中央存储服务器,所有文档始终存在,并且该服务器始终备份。

每个客户端都可以“订阅”任何文档,并且所有订阅的客户端都可以看到所有其他订阅/编辑同一文档的客户端的实时更改。

问题:

由于每个客户端无法存储所有文档,因此需要一种方法从客户端删除“旧”文档的副本,而不从中央存储中删除文档,理想情况下基于自动最近最少使用的方法。这在枪中是如何处理的?

在 gun 中,如何从中央存储中删除文档,然后有效地将其从所有客户端中永久删除,并且不再可供所有客户端访问?

当一个文档从中央存储中删除时,物理存储空间是如何实际回收以供以后使用的?

0 投票
2 回答
364 浏览

gun - Using map to reduce in Gun

I am new to Gun. I have existing code that very effectively reduces an array of objects based on a pattern. I am thinking I should tweak this to run in the context of Gun's .map and return undefined for non-matches. I think I will also have to provide two arguments, one of which is the where clause and the other the properties I want shown on returned objects. I also presume that if I use .on future matches will automagically get spit out! Am I on the right path?

// results in [{name: "Joe",address:{city: "Seattle"},age:25}, {name: "Mary",address:{city: "Seattle"},age:16}]

Further exploration of this resulted in the code below, which is stylistically different, but conforms to the immediate responsive nature of Gun. However, it is unclear how to deal with nested objects. The code below only works for primitives.

0 投票
0 回答
15 浏览

gun - 更新在特定情况下不起作用

我正在获取用户最喜欢的技能列表。
(userTable)->(user)->(favourite_skill)->(skills)

在编辑其中一项技能并更新后,什么也没有发生。枪支服务器上的数据也保持不变。

当我获取这样的完整技能列表时,一切正常:

0 投票
1 回答
85 浏览

gun - 从开发服务器切换到实时服务器时如何确保客户端不同步

当我将客户端中的 url 从 localhost 更改为 myLiveServer.com 时,如何确保 localStorage 不会与实时数据同步?我是否需要在某处进行配置并扩展 url,例如... localhost:8080/gun/dev 和 myLiveServer.com/gun/live

0 投票
0 回答
18 浏览

gun - 在 2 个 map() 调用之间切换时,ev.off() 似乎会杀死听众

我有一个在“所有”和“收藏夹”之间切换的过滤器列表。这工作正常。但是,当我在这两种方法中激活已注释掉的 ev.off() 时,从一个过滤器切换到另一个过滤器将不再产生结果。从那时起,这两个列表都将保持空白。(顺便说一句:由于 ev.off() 仍处于试验阶段,我现在还可以,不使用它。也许这个信息可能有助于未来的发布)

1.subscribe() 方法调用相关列表方法

2.subscribeAllSkills()

3.

0 投票
3 回答
819 浏览

javascript - 如何在没有中央服务器的情况下连接 Gun 以更新所有 React 客户端?

这是一个基本代码笔的链接,它将<input>标签与 Gun 实例同步,并将 Gun 更新连接到 React setState。
https://codepen.io/anon/pen/weJxNO?editors=0011

我的期望:
当您在多个窗口中打开程序时,您可以在一个窗口中键入并在其他窗口中查看更新。在一个窗口中输入会改变 Gun store,然后导致所有实例传播事件,从而跨窗口重新渲染所有 React 组件。

实际发生的情况:
如果您在多个窗口中打开程序,请注意在一个窗口中键入会更改所有窗口的 localStorage 值。然而,只有您实际输入的窗口才会记录来自 Gun 商店的事件。

可能的解决方案:
我知道我可以在所有客户都与之通信的服务器上设置一个 Gun 实例。但这不是与 Gun 的目的背道而驰吗?p2p 系统的优点是您不需要中央权威来源。

问题重述:
我如何连接程序以使所有 Gun 实例触发更改事件,从而在没有中央服务器的情况下跨窗口更新每个 React 组件?

来自 Codepen 的相关代码:

0 投票
1 回答
2001 浏览

gun - GunDB用户认证和用户间数据存储

我已经关注你的项目很长一段时间了,我对 gunDB 的功能很感兴趣,它不需要数据库并且可以检查安全性。

但是,我有一些关于 GunDB 的问题,我已经考虑了很长一段时间,然后才能让 Gun 尝试我目前正在进行的项目。在这个项目中,数据必须是安全的,但在设置组后也应该可以共享。该项目是一个移动应用程序项目,数据主要存储在设备上的 SQLite 数据库中。

我一直在研究 Gun,因为它可以在协作方面更好地使用应用程序。然而,我的问题是:

用户认证

如何通过私钥处理用户身份验证?那么用户如何“注册”,例如,使用用户名和密码登录服务。

对于身份验证,我目前正在使用 Firebase,可以在其中使用用户名/密码身份验证,我想知道 Gun 如何处理这种情况以及它是如何实现的。

数据存储

在文档和网站上,数据都存储在每个客户端本地,并且可以使用本地硬盘驱动器或 Amazon S3 存储选项存储在“节点”或服务器上。

我很好奇的是客户端实际存储了哪些数据?这只是他/她可以访问的数据,还是整个数据集的副本,客户只能访问他/她被授予访问权限的任何内容?

维护您的数据

当我的生产系统运行大量数据时,我将如何管理我的数据流和/或帮助我的客户解决系统中的问题?

换句话说,如果我想在数据问题上进行更新和/或为我的客户提供服务,我如何确保我能够跟上系统的步伐。

我主要关心的是正确同步本地存储的能力。

这些都是我现在的问题。

非常感谢您提前提供了有关这些主题的一些说明。

此致,