IPFS的DHT数据寻址与存储过程

以下为个人理解,仅看过论文和一些相关资料,并未看过源码实现过程,仅供参考。如有错误,请指正,谢谢!

看本文前请自行了解DHT。

数据上传

  1. peer A 加入IPFS网络。假设peer A的node id 是000011,peer A要上传图片X,图片X的内容标识符(CID,或者也叫哈希值)011100。
  2. peer A 发现 自己的相邻节点peer B的node id 是011000,也就是说peer B与数据X的逻辑距离比peer A更近。所以peer A 告诉peer B自己有图片X。
  3. peer B发现自己的相邻节点peer C的node id 是011110,比自己的逻辑距离更近。因此告诉peer C,peer A 有图片X。
  4. peer C 发现自己的相邻节点中没有比自己更近的其他节点,于是就记录到DHT: X(011100) 存储在peer A(000011)。如果图片X足够小,会直接记录X。

数据查找

  1. peer E相应下载图片X,通过DHT递归查询到peer C,得知图片X存储在peer A(000011)。
  2. peer E不知道peer A的ip 地址和端口,peer C也没有和peer A直连。所以peer E 又进行了一次DHT查询,直到找到peer A的ip和端口。

那么问题来了,为什么peer C不直接存储peer A的ip和端口呢?
答:DHT采用node id来寻址,是一种在物理网络层之上的网络层,又叫overlay network。可以实现和物理网络解耦,可以不用考虑节点的ip变化问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值