首页 > 资讯 > Swarm的“Whisper”通信功能 << 返回列表页

Swarm的“Whisper”通信功能

时间: 2021-06-26 15:49:14 丨 来源: 新闻资讯 丨 阅读量: 419

Swarm项目是一个储存和通信的基础设施,在存储层面类似的协议如IPFS,而在通讯层面就是Whisper。本文将着重探讨Swarm项目中Whisper及一些其他有关的高级功能。

Whisper是什么

Whisper是什么?这是一个曾经无比高大的组件之一,是一个“gossip-based” dark 通信系统,和Swarm,eth站在同一高度,可惜因为明显缺乏可伸缩性导致从未被广泛使用,以致于不再开发了。

了解Swarm项目的朋友,相信大家到现在都知道Swarm要做的就如同它在白皮书封面上就写了“它是一个储存和通信的基础设施”。

Swarm和IPFS不同的是,Swarm用的储存方式是DISC,而IPFS用的是DHT。

稍微解释下:

“gossip-based”是一种“流言”机制。

DHT(Distributed Hash Table)是分布式哈希表 ,简单来说它就是一种分布式的存储和寻址技术,是将用户正在查找的内容映射到实际存储匹配内容的对等点。

DISC(Distributed Immutable Storage of Chunks)是分布式不可变储存块。是 Swarm 的底层存储模型。

PSS

在我看来PSS是“Whisper+Swarm”的一个组合。

PSS是Swarm中的一个直接点到点传递消息的解决方案。借助了Swarm本来就有的分布式存储,再借鉴了Whisper的crypto,信封结构和API。

依靠PSS,可以做到真正的零泄漏消息传递,匿名和保密,甚至连传递消息的动作也可以不被第三方发现。同时API也允许发布和订阅一个topic。

比如邮政服务一样,当你人在家,就会送过来,你人不在家,就寄存起来等你回来拿。

在通讯中,发送给存储者的消息时,Swarm使用一个叫“特洛伊木马程序”来将消息伪装,特洛伊木马程序的区块是内容寻址形成的,他只有当收件人成功打开特洛伊木马消息时,才知道区块是pss消息,需要其中私钥与公钥相对应,并进行完整性检查/主题匹配,帮你转发的节点是无法区分的这是哪一种消息,也就意味着通信会完全被混淆为通用区块的通信。

也是通过特洛伊木马,pss会有自动邮箱功能,你就算不在线,脱机了也什么都不用做,未送达的消息也会被保留,当你联机了就能看了。当然,邮箱的持续时间是用邮票来控制的,意味着邮票价值的大小决定储存时间的长短。对于其他PSS的功能比如密钥交换,如何处理信封等等可以有兴趣的去看看白皮书,里面介绍的还是蛮详细的。

Swarm Feed

下面我要介绍个用PSS的一个好玩的东西,Swarm Feed

Swarm Feeds是Swarm非常独有的一个特殊功能,Swarm Feeds 提供了一种无需使用 ENS 即可拥有用于更改数据的持久标识符的方法。我把他理解成Twitter或者微博或者不给别人看的微博twitter设置密码这种也许更能理解,在上面,你可以发布有关某个主题的更新,可以阅读其他人关于特定主题的最新信息,还可以看到较旧的帖子。或者存东西的,你就只能写入自己的密钥空间,可以读取您和其他用户的密钥空间。

Feed 被addressed只要两样东西。

1.你的以太坊地址

2.你的主题

因此,每个用户每个主题有一个Feed。

Feed这么好玩,他好处是在Swarm中即时更改内容,无需在上链进行反复操作,使DAPP能够轻松保存内容,快速检索内容的旧版本,真运行后效果不错的的话,那也许一个好玩的推特形DAPP就越来越近了吧。

Hight-level的有关小功能

“我今天早上要吃豆浆和油条”

现如今,因为很多人对信息文件的私密性感到很担忧,哪天就泄露了,在Swarm中,他提供这个API让你可以存很多私人的信息 (不可告人的小秘密?),就像我们钱包一样,这些信息就和你的钱一样需要密钥才能被解密, 还能管理访问权限,比如我这刚开始在用的石墨文档(没打广告)一样,可以授予别人权限,去更改内容。或者别的不同特权,也可以自行弄个Passphrase,这和password还是有那么点区别,Passphrase的密码可以是“我今天早上要吃豆浆和油条”。

域名解析和URL寻址

先简单介绍一些东西

Swarm Hash 是一个组合块,是用来表示一种更大的结构化数据集。比如files;

Swarm manifest 是 一种结构,用来定义随意path和files之间的映射以表示集合,包含了与集合和对象关联的元数据;而manifest entry是一个reference对files表示形式的根区块。还能指定mime类型(互联网媒体类型),便于浏览器知道怎么处理它。

要是你这三个看的云里雾里也没关系,我再解释下,就是要经过这三个关键的东西,Swarm就可以实现网站,文件系统目录或者键值储存,manifest提供了在Swarm中启用基于URL的寻址的主要机制,同时呢manifest高级APi还提供上传下载目录文件的功能。刚刚说到URL寻址的事,再说下,就是Swarm manifest可以给Swarm提供了索引集合内文档的方法,先是域名解析manifest,然后路径映射到manifest entry,然后从中文件被检索和呈现在浏览器。

BTW,Swarm的话,用的当然是ENS。

服务热线:400-100-2938

用户微信群

更多群聊 >