织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 竞争币 > 以太坊

详解 Swarm 存储机制与 API 功能(5)

时间:2021-07-13 10:26来源:未知 作者:admin 点击:
Swarm 使用「清单(manifests)」来表示集合。清单编码一个通用的字符串引用映射,允许它对目录树(directory tree)、键值存储(key-value store)或路由表(

Swarm 使用「清单(manifests)」来表示集合。清单编码一个通用的字符串引用映射,允许它对目录树(directory tree)、键值存储(key-value store)或路由表(routing table)进行模型构建。这些分别使 Swarm 能够实现文件系统,充当数据库,甚至为网站和 DApp 提供虚拟主机。

如果我们将 URL 的 host 部分解释为对清单的引用,那么清单提供基于 URL 的寻址,URL 路径用作在由清单表示的映射中进行查找的键(key),只被用于抵达文件引用。

Swarm 白皮书出炉:详解 Swarm 存储机制与 API 功能

清单以紧凑默克尔前缀树(compacted Merkle trie)的形式对它们所表示的映射进行编码,块将前缀树的节点序列化。当查找路径时,我们只需要沿着我们遍历的分支的节点相应的块进行检索。这样便可以确保高效查找文件 / 记录,其延迟和带宽为集合大小的对数。

Swarm 白皮书出炉:详解 Swarm 存储机制与 API 功能

文件中哈希树中间块中的子节点引用,和集合中清单前缀树节点,在位置上与 BMT 哈希段是对齐的。结果上,Swarm 支持紧凑证明特定数据段是在位于给定 URL 的给定偏移量(offset)处的文件的一部分,这是可公开证明的数据库索引和去信任化聚合的基础。

跟踪更新:feeds 和域解析

feed 是一种允许可变资源显示(impression of a mutable resource)的单一所有者块示例。feed 能够表示可变资源的版本化修订、对主题的顺序更新或一方在通信信道中发布的连续消息。

feed 的工作方式是将单一所有者块的 identifier 定义为从主题和索引派生而来。当发布者和内容使用者就索引的更新方式和更新时间达成一致时,就可以构造和查找对该 feed 更新的特定引用。

类似于 DNS 将域解析为主机服务器的 IP 地址,Swarm 通过使用以太坊域名解析服务 ENS (Ehereum-Name Service)——区块链上的一组智能合约,将其解析为引用以支持人类可读的域名(例如 Swarm.eth)。

每当 web 应用程序或其所代表的网站由于更新而获得新的 Swarm 引用时,就可以对在 ENS 中注册的引用进行更新。或者,当域名引用 feed 时,用户可以受益于人类可读的域名,同时也可以更新其内容,而无需在每次进行更改时与区块链交互并支付相关交易成本。

消息传递

PSS (Postal Service on Swarm)是 Swarm 中的一种直接节点间消息传递协议。它是通过加密目标收件人的消息,并在内容寻址块中用主题将其包装来实现的。由于块的创建方式令其内容地址落在接收者的邻域中,所以传递自然由同步推送协议来处理。

此外,对于任何第三方来说,消息都无法与随机加密的块进行区分,因此它也被称为「特洛伊木马(Trojan)」块 。一个期望接收 PSS 消息的节点将尝试解密和打开到达其邻域的所有块。在成功地将特洛伊木马块解密和解包为合法收件人之后,客户端节点可以将消息明文发送给使用 PSS API 订阅该主题的应用程序。 (责任编辑:admin)

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容