标签: gun

orbitdb(基于IPFS)和枪有什么区别?

我正在为我的Dapp寻找一个分散的数据库. 我找到了两个有用的解决方案orbitdbgun但我无法意识到主要区别,哪一个更适合使用以太坊智能合约的类似社交媒体的应用程序.

p2p ethereum gun ipfs

14
推荐指数
1
解决办法
1694
查看次数

关于gunDB作为Cordova项目的独立数据库的具体问题

我刚刚发现了gunDB,这个概念看起来非常有趣,我想在开始进一步评估它之前找到更多关于它的信息.

  • 如果我想构建一个类似教程的聊天应用程序,但实现聊天.是否有办法让客户只能"订阅"某些聊天室,并避免转移其他聊天室的内容?如果不是所有数据都同步到所有客户端,那会如何影响持久性?我们是否需要运行一个特殊的客户端(即服务器?)来确保所有数据始终保持活动状态?
  • 对于同一个聊天室教程,如果我想订阅多个聊天室,我是否需要实例化多个Gun实例,每个实例使用"对等"存储?
  • 如何在gunDB中处理用户管理/密码/等?从复制的角度来看,向每个客户端发送用户数据库的副本很有意思,但从安全方面来看,这似乎是反直觉的.
  • 有没有办法要求枪只在某些情况下同步,例如当WiFi连接可用时(想想Cordova)?
  • 那些暂时的数据怎么样?在聊天应用程序中是否有一种方法,例如告诉gunDB我只对未来的消息感兴趣并忽略在某个状态/时间戳之前创建的任何内容(同样为了避免在昂贵的数据计划上传输大量数据) )?
  • 如何在gunDB中持久保存磁盘(可能是循环的)数据,并在需要时将数据加载到数据库中?
  • 你可以要求枪同时监控两把钥匙吗?例如,如果客户端需要显示聊天数据和待办事项列表(来自教程的两个"键"),假设两者都是"对等".
  • 是否有关于如何使用我自己的服务器进行存储的教程?

cordova gun

12
推荐指数
1
解决办法
2417
查看次数

如何删除枪DB中的数据?

我一直在开发一些东西,你知道在早期的原型设计类型和表格变化很快......清理旧数据并在某些网格中重新开始会很好.

现在我使用示例HTTP服务器,所以我删除了data.json; 但我忘了浏览器中的localStorage也需要清除.

有人可能会认为你可以放(null)

我问了一下gitter并得到了

https://github.com/amark/gun/wiki/delete

除了删除,大声笑,我们的借口是"它的工作方式就像你的操作系统,当你删除>它只是扔进垃圾桶/回收站.这就是全部." 虽然比抱歉更安全

如果你试图"删除"东西,因为你在开发>某些东西时搞砸了,请按照以下三个步骤进行:1)在每个>浏览器选项卡中的localStorage.clear(),2)崩溃服务器和rm data.json ,3)重启>一切.你应该有一个干净的石板.通常情况下,当我发现某些内容时,我将localStorage.clear()置于代码的顶部,因此我只需要担心清除服务器.

database gun

8
推荐指数
1
解决办法
1130
查看次数

gundb 中的私有写入和公共读取

我想创建一个microblog每个人都可以阅读所有帖子的地方,但只有所有者可以删除或编辑帖子。在gundb没有海中每个人都可以编辑或删除帖子,在sea( gun.user())我必须共享公钥,在海中我如何获取所有用户的帖子并在时间轴中显示帖子?

我怎样才能用gundb创建这个?

gun gundb

8
推荐指数
2
解决办法
2181
查看次数

GunDB用户认证和用户之间的数据存储

我一直在关注你的项目很长一段时间,并且对gunDB的功能很感兴趣,它不需要中间的数据库并保持安全性.

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

我一直在研究Gun,因为它允许在协作方面更好地使用应用程序.但是,我的问题是:

用户认证

如何通过私钥处理用户身份验证?那么用户如何"注册"例如用户名和密码来登录该服务.

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

数据存储

在文档和网站上,它声明数据存储在本地与每个客户端,并可以使用本地硬盘驱动器或Amazon S3存储选项存储在"节点"或服务器上.

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

维护您的数据

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

换句话说,如果我想要更新和/或为我的客户提供数据问题,我怎么能确保我能跟上系统.

我主要担心的是能否正确同步本地存储.

这些都是我现在的问题.

非常感谢您提前澄清这些主题.

最好的祝福,

gun gundb

6
推荐指数
1
解决办法
1124
查看次数

如何隔离 Gunjs 数据库?

我已经尝试 GunJs 几天了,我真的很喜欢它。作为一个入门项目,我关注了Fireship 聊天 dapp 视频,旨在构建您自己的聊天。

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

onMount(() => {

    // Get Messages in large chat
    db.get('chat')
    .map()
    .once(async (data, id) => {
        if (data) {
            // key for E2E - to do: change for web3
            const key = '#foo';

            var message = {
                //transform the data
                who: await db.user(data).get('alias'),
                what: (await SEA.decrypt(data.what, key)) + '',
                when: GUN.state.is(data, 'what'), 
            };

            if (message.what) {
                messages = [...messages.slice(-100), message]
            }
        }
    })
})
Run Code Online (Sandbox Code Playgroud)

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

  • 图节点名称在整个 GunDb 中是否唯一?
  • 当两个基于枪的应用程序调用同一节点名称时,如何处理冲突? …

javascript gun gundb

6
推荐指数
1
解决办法
1229
查看次数

如何从GunDb节点获取密钥

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

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

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

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

var user1 = gun.get('user/1').put({name: user1});
var user1 = gun.get('user/2').put({name: user2});
var users = gun.get('users');
users.set(user1);
users.set(user2);
Run Code Online (Sandbox Code Playgroud)

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

var users = gun.get('users');

users.map().val(function(user) {
  var userOption = document.createElement("option");
  userOption.text = user.name;
  userOption.value = user.key; // for example, though this does not work
  userSelect.appendChild(userOption);
  
});
Run Code Online (Sandbox Code Playgroud)

后来,我想使用选项值,例如 -

var user = gun.get(selectedUserOption.value);
Run Code Online (Sandbox Code Playgroud)

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

javascript gun gundb

5
推荐指数
1
解决办法
1369
查看次数

Gun.js 在客户端上“安全”吗?

我正在玩gun.js并且到目前为止我很喜欢它。客户端对我们来说安全吗(尤其是通话等)?gun.put()

例如,如果我正在构建一个 React+Redux 应用程序,并且我的gun.put()调用来自 thunk,那么安全吗?还是在服务器上执行 CRUD 操作并仅使用 Gun 客户端库来检索数据 ( .on()) 并保持我的 redux 存储同步更好?

javascript client gun

5
推荐指数
1
解决办法
1358
查看次数

如何将枪服务器仅用作中继?

有没有办法只将 GUN 服务器设置为中继?换句话说,有没有办法确保数据仅是点对点共享的?服务器仅充当信号(类似 STUN)的服务器。在我完成的少数测试中,我似乎无法看到数据通过 P2P 传输,而且似乎只能通过枪服务器漏斗。

我想确保服务器上没有客户端数据库数据。显然,连接信息和可能的数据库名称将在那里。

谢谢你。

javascript graph-databases node.js gun gundb

5
推荐指数
1
解决办法
830
查看次数

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

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

假设有两个 Gun 实例I1I2,它们被配置为对等体,并且假设用户“doe”事先在 I1 或 I2 上不存在。假设在两个实例上创建了用户“doe” ,而 I1 和 I2 未连接。两次尝试都应该成功。为了方便讨论,我们将 I1 上的“doe”用户称为doe1,将 I2 上的用户称为doe2

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

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

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

我们将非常感谢您的建议。谢谢。

安郎

javascript database p2p gun gundb

5
推荐指数
1
解决办法
283
查看次数

标签 统计

gun ×10

gundb ×6

javascript ×5

database ×2

p2p ×2

client ×1

cordova ×1

ethereum ×1

graph-databases ×1

ipfs ×1

node.js ×1