据Swarm最新版白皮书,Swarm 网络通过DISC,进行块的分布式不可变存储。
DISC(Distributed Immutable Store of Chunks)是Swarm的底层存储模型,它由协作存储和提供数据的节点组成。
在整个Swarm网络中,节点之间通过以下方法进行相互协作,获得各自利益最大化的奖励。
- 隐私保护和无需许可的上传和下载
- 一旦特定内容上线,就有强大防御来阻止或更改对特定内容的访问
- 随着需求的增加自动扩展
- 得到完整性保护的内容
- 最终忘记无需再保存的相关内容
任何拥有闲置存储和带宽容量的人,都可以作为节点运营商参与DISC,并以此获得奖励。
加入DISC之后,节点运营商成为 Swarm 网络的一部分,基本上负责管理Swarm这一全球硬盘驱动器的一个扇区。
Swarm中的规范存储单元称为“块”,一个块由4KB的数据组成。
并附有一个地址。由于块的地址与节点地址包含在相同的地址空间中,因此可以计算其相对接近度。Swarm的存储方案表明,每个块由地址接近块本身的节点存储。
为了方便数据的保密性,块可以在填充到4KB后进行加密,使得没有密钥的人无法将其与其它随机数据进行区分。
由于信息被分成块并加密,即使是恶意节点也无法识别该块的来源和目的地。
由于Swarm节点不会选择它们存储和加密的块,一个块可能是一个或多个内容的一部分,而节点运营商没有办法确去确定一个块属于什么内容,这一事实为节点运营商提供了保护,使其免于对其托管的内容承担责任。
为了将块插入到Swarm中,节点通过同步推送协议(push-sync protocol)将区块进行转送,直到到达它所属的邻域。
然后,块的存储确认函将沿着相同的路径被传回。想要检索一个块,只需使用检索协议,将具有块地址的请求路由到相关邻域。如果途中的任何节点在其本地存有相应的块,则会将其以响应的形式发回。