分布式哈希表
DHT 只是一个key-value store,分布在多个
网络中的节点。密钥分布在具有
确定性算法。每个节点负责一部分
哈希表。
路由算法允许在哈希表中执行请求
不知道网络的每个节点。
例如Chord
DHT——这是一个相对简单的 DHT 实现——每个
节点被分配一个标识符并负责键
更接近其标识符。
假设有 4 个节点具有标识符:2a6c、7811、a20f、e9c3
标识符为 2c92 的数据将存储在节点 2a6c 上。
现在想象一下,您只知道节点 7811 并且正在寻找
对于标识符为 eabc 的数据。
你向节点 7811 请求数据 eabc。 7811没有所以
它要求节点 e9c3 将其发送到节点 7811,节点 7811 将其发回
给你。
一个聪明的算法允许在 O(log(N)) 中找到数据
跳跃。无需存储整个路由表
网络(每个节点的地址)。基本上你问
与您知道的数据标识符最近的节点,它本身会询问
它知道的最近节点等减少跳转的大小
每一步。
DHT 具有很强的可扩展性,因为数据是均匀分布的
节点之间的查找时间通常以 O(log(N)) 增长。
区块链
区块链也是一种分布式数据结构,但它的用途
完全不同。
将其视为历史或分类帐。目的是存储一个
不断增长的记录列表而没有可能
篡改和修改。
主要用于比特币货币系统中,用于保存
跟踪交易。它的防篡改特性让大家
通过了解帐户的历史来了解帐户的确切余额
交易。
在区块链中,网络的每个节点都存储完整的数据。
所以它与 DHT 中的数据绝对不是同一个想法
在节点之间划分。区块链中的每一个新条目都必须
由称为挖掘的过程验证,其详细信息超出此答案的范围,但此过程确保 consensus 的
数据。
这两种结构都是分布式数据结构但服务于
不同的目的。 DHT 旨在提供一种高效的(在
查找时间和存储空间)结构来划分数据
网络和区块链旨在提供防篡改数据
结构。