Yas*_*uro 5 javascript database p2p gun gundb
请帮助我了解 Gun 如何在有时断开连接的 P2P 网络中管理用户。
假设有两个 Gun 实例I1和I2,它们被配置为对等体,并且假设用户“doe”事先在 I1 或 I2 上不存在。假设在两个实例上创建了用户“doe” ,而 I1 和 I2 未连接。两次尝试都应该成功。为了方便讨论,我们将 I1 上的“doe”用户称为doe1,将 I2 上的用户称为doe2。
现在,当 I1 和 I2 连接时会发生什么?doe1和doe2是否被视为同一用户?是否取决于用户注册时提供的密码?
我的理解是,只要用户注册时给出的密码相同即可。这是合理的。但我最大的问题是,如果给他们提供不同的密码怎么办?
我认为在这种情况下,doe1 和 doe2 将被视为不同的用户......但是然后呢?I1和I2将如何处理这种情况?I1 会简单地拒绝 doe2 吗?反之亦然?或者这留给实施?
我们将非常感谢您的建议。谢谢。
安郎
@Yasuro 很棒的问题:
GUN 用户名(别名)不是唯一的。
加密公钥是普遍唯一的。
你是对的,“Doe”可以离线创建。
如果没有上线或以某种方式同步,用户应该单击“登录”,并且它将失败(您应该错误地认为他们处于离线状态)。如果他们单击“创建”,则会生成一个新的公钥,两个帐户将共享相同的“Doe”用户名(就像 Discord 让 2 个人拥有相同的用户名一样)。
不,一旦连接,它们将保留为不同的帐户。
在现实生活中,这些将是具有不同密码的不同用户,因此他们将正确登录到该帐户(GUN 对每个帐户运行加密,并且仅登录到密码成功的帐户)。
但是,如果用户不小心点击“创建”两次(或更多次),每次都使用相同的密码,那么是的,该帐户将因断开连接的数据而碎片化 - 给定 GUN,编写同步帐户的代码应该很容易确实同步。希望有人会将其作为一个小模块供其他人使用 - 你会吗???:)
归档时间: |
|
查看次数: |
283 次 |
最近记录: |