gpt4 book ai didi

graph - DHT(kademlia)是否能够可靠地存储值(value)链?

转载 作者:行者123 更新时间:2023-12-04 02:21:58 25 4
gpt4 key购买 nike

我正在考虑实现一个 DHT,其中数据项通过将后继地址添加到存储的值来链接,如果每个节点都可以具有以下三种有序状态之一:空 -> 数据 -> 数据和后继地址将所有同行都获得一致且正确的排序?还是这里有可能进行永久 fork ?

最佳答案

原则上,在节点的一些限制和支持下这是可能的。

要处理多个版本,您需要值版本控制。为了可靠地增加它们而不会发生冲突,您需要一个发起者。为确保单一发起者,您必须对数据进行签名。签名数据通常存储在从公钥派生的 key 下。因此,搜索节点要么必须以某种方式获取公钥,要么您将需要另一种间接方式来将人类可读 key 解析为公钥。

DHT.put("keyword", Pubkey)
DHT.get("keyword") => List<Pubkey>

DHT.put(Pubkey, Tuple<Value, ForwardPointer, VersionNumber>, Pubkey, Signature)
DHT.get(Pubkey) => List<Tuple<Tuple<Value, ForwardPointer, VersionNumber>, Signature>>

请注意,第一个参数将始终被散列。另请注意,API 是非对称的,返回列表并为目标节点添加额外参数以进行处理和验证。

即存储节点需要做的不仅仅是“愚蠢的键值存储”

编辑:在您的特定情况下,您可以跳过版本号并使用前向指针的不存在/存在作为隐式版本增量。


原则上,您可以在 DHT 之上实现任何数据结构。您所需要的只是存储和指向其他键的指针。例如。一个列表既可以实现为可变节点,改变它们的前向指针,也可以实现为不可变节点 + 一个可变头指针。

对于一些更快的遍历排序树或跳跃列表也可能值得考虑。

关于graph - DHT(kademlia)是否能够可靠地存储值(value)链?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28037287/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com