问题标签 [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.
gun - 在会话期间保持 Gun DB 用户的身份验证
我正在跟踪分布式/无服务器应用程序的 Gun/SEA 身份验证系统。当 Gun 用户通过身份验证时,此应用程序正在将会话信息保存到本地存储。我遇到的一个问题是,当刷新页面或打开新选项卡时,我希望在会话有效时保持用户身份验证,并且由于 XSS 和物理安全原因,我宁愿不将用户名和密码存储在本地存储中. 目前有解决这个问题的方法吗?我认为 sessionStorage 可能会更好,但它仍然存在一些相同的安全问题,例如将用户名和密码存储在攻击者可能获取的位置,并且在打开新选项卡时需要用户登录。
gun - 如何使用 gundb 存储图像/视频文件?
我知道传统的方法是将图像/视频文件存储在一个地方,然后将参考索引保存到 db 的表中。
现在我在学习gundb,我可以很容易地存储key-value json类型的数据,但是由于它是分散的,如果我想做一个说聊天室的应用程序,我应该如何处理图像存储(例如:用户的头像)?
我也想知道是否可以使用 gundb 制作电影共享应用程序?
gun - 访问 gundb 链中的先前值
get
在 gundb 中,链式查找节点很方便。
例如:
grandparent.get("children").map().get("children").map().once(function(grandchild,id) {...})
然而,函数是在孙子的上下文中调用的。如果我想获得对父节点(或任何其他中间节点)的引用怎么办?
最简单的方法是分解查询:
但这似乎没有必要。我也尝试添加一个map()
将当前值存储到的函数this
,但这看起来很丑陋。
是否有一种首选的方式来保留或访问先前链式获取的状态?
gun - gundb 中的私有写入和公共读取
我想创建一个microblog
每个人都可以阅读所有帖子,但只有所有者可以删除或编辑帖子的地方。在gundb
没有海的情况下,每个人都可以编辑或删除帖子,在sea( gun.user())
我必须共享公钥,在海中我如何获取所有用户的帖子并在时间轴中显示帖子?
我怎么能用 gundb 创建这个?
gun - 如何使用 GunDB 从其他用户那里获取解密数据
虽然我尝试.secret()
了.trust()
gun.user ,但有意想不到的结果。我如何从其他用户那里获取数据以便在应用程序中进行访问控制?以及我需要知道如何在没有错误消息“无法解密”的情况下解密数据。
- 节点 10.16.0
- 枪 0.2019.515
- 铬 74.0.3729.169
左右分别有 User03 和 User01。我这个测试的目标是 User01 获取 User03 的秘密数据。
1.将数据放在User03下,在两个控制台上查看数据。
2.让User03 .trust()
User01在左边。
3.secret
使用 User03 的 pair 制作 User03 的数据。
4.检查两边的加密数据。
5. 使用右边的 user01 对解密 user03 的秘密。
它收到错误消息“无法解密”。
6.检查STEP 5的返回对象内部。
我希望输出“加油”作为解密数据。
gundb - 使用 GunDB 在 IndexedDB 中存储过多
我尝试使用 GunDB 同步 VR 场景。
为了进行实验,我在 GunDB 中放了一些数据。
但我收到了这个警告。 存储警告
我使用 IndexedDB,我可以继续点击“允许”
但我想知道为什么它使用太多存储空间!!!!!!
它在同一节点中每 200 毫秒更新一次数据。(object.attributes.position)
请让我知道我该如何解决。谢谢你。
firebase - GunDB 存储和超级对等选项
GunDB 基础/存储 + Superpeer
嗨伙计,
我在GunDB探索的第四天,在阅读文档和其他各种教程时,有一点不确定:存储以及我是否需要 Superpeer?
尚未找到使用 GunDB 的生产 dApp 示例
到目前为止,我看到的教程和演示要么在没有同伴的情况下实例化 gun,要么使用 heroku 同伴(例如gun = Gun( [https://gun-us.herokuapp.com/gun, https://foobar.herokuapp.com/gun ] )
.
如果你想演示一个聊天或待办事项应用程序,我认为后者很好,你想在这些应用程序中演示实时行为,包括在那些超级同行的帮助下对人们的网络浏览器进行 p2p 同步。我理解这个概念,它很棒,我喜欢它。
从 Firebase 迁移到 GunDB
但是,由于我即将从 Firebase firestore 迁移我的 Sapper (Svelte) 应用程序(因为图形数据集的性质比集合和文档的层次结构更适合我的应用程序)我已经有大约 9 GB 的数据事实上,firestore 始终在线供客户同步,此时我最大的问号是,我如何在我拥有的 GunDB 中构建等价物
- 能够存储我的 9 GB 不断增长的数据(目前主要是基于文本的数据,但未来还有图像和视频,届时存储需求将大幅增长)
- 并确保数据随时可供使用网络浏览器的人使用
是否是超级同行?存储选项?
我读过 AXE,我读过 RAD 以及它是具有 GunDB 节点部署的默认存储算法的事实,我看到有一个可选的 AWS S3 存储适配器,当然我也读过关于(计划但尚未准备好?)IPFS存储选项。
总而言之,关于可用的存储和超级对等选项,我现在完全迷茫和困惑如何在这一点上继续。
- 我需要超级同行吗?我想要一个吗?
- 如果我想要一个,什么是生产托管设置?我正在使用 firebase 托管、身份验证、存储、firestore 和消息传递 atm,所以也许有人在 GCP 上运行了设置?
- 如何塑造我的存储设置,使其不是演示应用程序,而是具有更大数据集的真实应用程序?
- 对于付费客户的生产设置,我应该选择哪个托管服务提供商?我更喜欢任何 GCP 服务,可能让超级对等点将其数据存储到 firstore 中,并且或多或少地将图形提供给所有最初请求数据的网络浏览器,直到图形在网络浏览器之间充分分布。
gun - 使用 SEA (gun.user()) 添加的 GUN 节点不安全?
创建新用户后,进行身份验证并添加一些数据。在第二个浏览器中可以轻松删除数据......我做错了什么?
第一个浏览器(Firefox 私人窗口):
第二(Chrome隐身):
端口 8765 上的对等点http.js
从示例开始。
在此之后,在存储中的第二个浏览器中,localStorage.getItem('gun/')
我得到前缀为undefined
like:的节点undefined~@u1
,undefinedSoulfofsomething
我也可以删除带有gun.get('Soulofsomething').put({some:null})
. 如果这是正常行为,如何保护数据免受攻击?唯一的选择是子弹捕手?