随着IPFS&Filecoin和Chia的市场逐渐展开并取得火爆的成果,人们越来越关注分布式存储网络项目市场的发展前景。而最近,一款“天王级”分布式存储网络项目【Swarm】迅速地进入人们的视野当中,并获得认可。

市场对火热出圈的Swarm充斥着各种声音,华晟云将根据文件传输协议从FTP到Swarm的技术演变进行分享,让大家更好的从技术层面理解Swarm!

愿景

Swarm是去中心化数据存储和分布式技术,其愿景:CensorshipResistant。用一句话概括:Swarm=BitTorrent+Tor+Layer2,下面将具体展开分享。

BitTorrent

BitTorrent巧妙地解决了资源优化,解决了超文本传输协议(HTTP)的古老、集中,主从设计中最棘手,最根深蒂固的问题,该协议是万维网的基础。基于以上其也存在相对应的缺点,比如缺乏经济诱因、初始延迟、没有动力继续共享等,Swarm其目的便是为未来的自我主权数字社会构建无许可的存储和通信基础架构,完美解决了以上问题。

断点续传

  • 把文件拆分(split)成小块(chunk)
  • 按块进行并行的传输
  • 传输完成后对chunk进行校验(hash)->
  • 根据chunk恢复出文件

解决了:网络不稳定环境下大型文件传输的问题。

未解决:服务端的带宽无法承受大量用户同时下载。

Chunk Address

  • 用chunk的hash值作为唯一的地址
kad网络原理(电驴kad网络连接不上的步骤)-第1张图片

BitTorrent

解决了:通过用户之间互相传输数据的方式,来解决大量用户同时下载时的带宽不足问题。

未解决:Tracker的中心化问题。

kad网络原理(电驴kad网络连接不上的步骤)-第2张图片

DHT

  • 去中心化的tracker
  • 每个节点都是tracker
  • chunk太多,hash table太大
  • kv变动难以通知所有节点
  • Distributed Hash Table(DHT)
  • 每个节点存一部分kv,查找时先找节点再连接以获取kv
  • 一组kv同时保存在多个节点,防止单点故障

KAD网络

在KAD网络如何查找一个chunk的IP list:

  • node除了会存hash table的一部分之外,还会存所有能连上的node list(address和IP)
  • 探索node
  • 连node,获取其node list
  • 对list中node依次尝试连接
  • 查找chunk
  • 从node list中找到距离最近的node
  • 连接后获取其hash table,如果目标chunk存在则返回
  • 否则获取其node list,从中寻找距离更近的node
  • 下载chunk:直连所在node

电驴、IPFS及BT升级后均用了KAD网络。通过封禁chunk所在node的ip,就阻止了chunk的传播。

KAD网络:

解决了:tracker的中心化问题

未解决:防火墙的问题

Tor

Tor(The Onion Router)的核心技术“洋葱路由”,是在1990年代中期由美国海军研究实验室的员工为保护美国情报通信而开发的软件。通过relay的方式可以:

  • 绕过防火墙
  • 保护隐私性

Swarm网络

  • Swarm的第一个创新点:
  • 以relay的方式通信
  • node的hash table,value不再是存有chunk的node IP,而是chunk本身区别:
  • 文件是push进网络中的
  • 更大的上传下载带宽
  • 临近的node会sync chunk
  • chunk存储于多个node

Swarm 网络:

解决了:防火墙的问题

未解决:节点利益

Layer2

Swarm依附于以太坊网络,其可以理解为以太坊网络的Layer2。

流量奖励

Swarm网络中需要提供带宽和存储资源才能成为节点。首先先分享下如何按流量来分配奖励:

1、链下支付,链上结算

如何创建一个节点:

  • owner质押bzz创建chequebook
  • owner A给B发cheque
  • owner B向chequebook A发起结算请求
  • chequebook A结算bzz给chequebook B
  • A、B客户端同步chequebook最新状态

2、链下共识

  • 不给cheque超过阈值就加黑名单

存储奖励

  • 流程
  • 上传者把钱压在合约
  • 存储者提供存储证明从合约拿钱
  • 状态:功能还不成熟
  • 0.6版本
  • 效果
  • 上传者只付流量费也能存,但是数据容易被清理

Swarm存储层

Swarm的实际存储层由两个主要组件组成,分别是LocalStore和NetStore。

LocalStore:由内存中快速缓存(Memstore)和持久磁盘存储(DBStore)组成。

NetStore:将LocalStore扩展为Swarm的分布式存储,并实现了DPA。

FileStore是存储和检索文件的本地接口。当文件被交给FileStore进行存储时,它将文档分割成一个Merkle散列树,然后和密钥一起返回给调用者。

最后,FileStore使用Swarm散列,并使用NetStore为用户检索文档的根块。

kad网络原理(电驴kad网络连接不上的步骤)-第3张图片

结论

(1)目标明确,技术创新

  • 热数据,censorship resistant,有可能出现现象级产品
  • BitTorrent+Tor+Layer 2

(2)经济模型不成熟

  • 上传下载都要钱,注册节点也要钱,ETH和BZZ
  • 无空挖机制,难以激励节点在线

(3)功能未充分测试,急于上线

  • 可先在CoinList上公募,再研究链

评论(0条)

刀客源码 游客评论