ARM:Swarm设计架构之覆盖网络(overlay networks)

作者:超级蜂巢

这期来说说Swarm的设计架构中底层设计的一部分,东西实在太多,估计整个设计架构要讲好久。

话说上期说到,Swarm是要为“未来自我”的数字主权社会的未来,建立无许可储存和通信基础设施。

Ps:“我说的“未来自我”就是周董那句词“我的地盘我做主”的字面意思。

不论往后Web时代怎么变迁,就像我们不是推翻了1.0,而是在1.0基础上演变迈进了2.0,Web3.0的时代也会是这样转变。

Swarm为开发者提供了low-level的API可用于复杂应用程序组件,还有可用于3.0开发堆栈的工具和数据库。通俗的说就是拿现在的任意正常的浏览器用他们提供的API和工具直接能连进Swarm的网络,因此Swarm也可以立刻提供一个私有并分散的替代方案来替代WWW。乍一听挺厉害的,但会不会是绣花枕头呢?

Swarm的底层设计能理解为4层。

我先说下哪四层:

最底层的互联互通的网络是P2P网络第二层是协议覆盖网络powering固定大小数据块第三层是提供高级数据的访问和定义的API组件最后一层就是应用层了关于第一层,如果你不是技术人员,你就理解成我上一期说的BT协议就好,因为P2P又分好多种,再往深了去又枯燥并对项目理解意义不大。如果你是技术人员,自行Google资料呗。

第二第三层等会后面篇幅再稍微详细地说一下,因为这两层是Swarm的核心层。

至于最后一层应用层也不用细说,就是他们会定义标准和轮廓比,如什么协议啦等等,我们不开发所以我们略过。

第二层覆盖网络,当你用底层地址和对方建立连接时,在Swarm上的每个节点都会用覆盖地址进行标识,就是这个覆盖地址确定了节点的对接方和消息发送到哪里去。它里面用到的Keccak算法啦,覆盖拓扑Kademlia啦,用Po概念量化了两个地址的关系什么的都不是我要细说的。

在我看来就是这个覆盖地址是稳定的,满足了以太坊的加密技术提高了安全性,又有好的支持。然后又因为他能定义节点身份,重点是:他能在最后决定或者影响了什么内容是有价值存在本地储存里的。

让我再转回头稍微提下这个Kademlia拓扑。

上图是IterativeandForwardingKademliarouting

鉴于本文不是科普类文章,我就简单的说下,Kademlia这东西有两种算法方式,iterative/zooming和recursive/forwarding,他们选的是第二种recursive/forwarding,项目方自己也承认recursive/forwarding不是主流。但iterative/zooming也有他的问题,比如有可能要解决映射问题啊什么的。Tron曾在一篇“ThehardDiSCoftheworldcomputer”的文中解释过为什么选了第二种,有兴趣可查看链接:

https://medium.com/ethereum-swarm/the-hard-disc-of-the-world-computer-4f3d41bf9ddb

具体运行如何就看后续反馈了,毕竟要每个节点必须遵循引导协议才能达到饱和的Kademlia连接和维护,别误会,我没有看衰他,只是提出我所认知的问题,而且Swarm还在测试网中不是么,BTW这次升级了0.6.x,据说有某个或某些重要协议改变了,都在一步一步变好。

在第二层中还要求了固定大小的不可变的储存数据块。

基本只要知道因为储存模型是对块有限制的,所以Swarm现阶段只接受两种块-已经寻址的内容块和单个owner块,简单理解就是一个普通块,一个特殊块。

对于这两种块,Swarm都进行了加密处理。

关于检索,Swarm也做到了不公开请求者身份的完全匿名的检索,通过反向检索也解决了防垃圾邮件,扩展,激励等有关的更多好处。

然后转发节点是要费用的,如果发送量没被邀请的数据块,就可能被拒绝服务啊什么的,严重的就把你放黑名单惩罚了。

关于第二层就说这么多吧。下篇聊聊Swam的一些好玩的激励设计。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-2:847ms