FileStorm 验证节点和存储节点架构
FileStorm 验证节点
验证节点主要安装下面这个程序来产生和验证区块。并且获取区块奖励。
- SCSServer - 墨客子链节点程序。
FileStorm 存储节点
存储节点主要安装下面这些程序来对存储的文件进行验证。验证成功即可获取存储收益。
- StormCatcher - 文件管理助手,用于对文件读写删除和验证的操作。
- IPFS Daemon - 文件以IPFS的方式存储的主要平台。
- redis - 本地数据库,用于缓存文件调用的请求。
IPFS Daemon由IPFS源代码生成,没有改动。所以FileStorm存储节点是一种开放式架构,可以和其他基于IPFS的存储设备兼容。
星际风暴存储API接口 - FileStorm
FileStorm的技术已经在2018年7月14日便发布。
任何有存储需求的区块链项目都可以在墨客区块链上搭建一条FileStorm存储子链来实现这个需求。
可是对大部分的项目方来说:
- 搭建子链有一定的技术难度;
- 存储子链的搭建必须先有足够多的存储节点在节点池中等待被挑选,然后才能被项目方选中生成子链。等待期间没有收益,所以在需求不够大的时候,很难吸引足够多的节点来参与到节点池中来。
所以,我们在FileStorm技术的基础上,实现了一个存储平台。这样做有两个好处:
这个存储平台提供了一个标准的API接口,让应用方直接调用API来存储和读取文件。
而不需要去搭建存储子链,大大降低了使用难度。相当于我们提供了一个Decentralized Storage As A Service的服务。
为了提供这个服务,我们会搭建若干个节点池
(每个节点)让各种硬盘大小的节点参与进来,我们会一直检测所有的节点池,当池中节点数量足够多的时候,我们就会在生成存储子链。
节点就可以开始有挖矿收益,我们会通过一条管理子链来控制文件存到那个存储子链上去,尽可能做到让所有的节点都可以得到收益。
通过实现一个标准的存储平台API接口,星际风暴就可以不但支持墨客区块链上的应用,还可以支持所有需要存储的去中心化应用。
这些应用在各自的区块链上运行应用逻辑,然后通过一个标准的简单易用的文件存储API把文件存到星际风暴的存储池里,或者从存储池里把文件读出来。
文件的加密和授权 - FileStorm
FileStorm提供的API可以让用户选择是否将文件加密。
IPFS本身是不会对文件进行加密,这是FileStorm API的一个功能。
个人,公司,企业,政府的文件资料,避免中心化的单点故障,选择存储到Filestorm区块链上,保障文件系统的安全,同时进行加密,只允许经过授权才能查看或者下载。
流量文件。
流量控制和版权权益属在文件所有者,比如音乐,电影,小视频等,将这些文件上传到Filestorm链上,通过管理子链的API接口,用户可以下载,观看,查阅等,根据用户要求,收费或者免费服务。
公证文件。
对于溯源,公开,透明的一些文件资料,项目方通过将文件发送到Filestorm区块链,由管理子链的API调用接口,能够将这些资料下载使用。
IPFS合约
IPFS合约必须提供四个基本函数:
function write(string fileHash, bool publicFile)
调用这个函数可以把本地文件写到FileStorm子链节点上。如果输入的publicFile参数是true,文件将是公开的,通过同样的fileHash也可以从子链上读出来。如果输入的publicFile参数是false,文件将是不公开公开的,用fileHash不可以从子链上读出来。只能调用合约的读文件函数。
function read(string fileHash)
调用这个函数可以把FileStorm子链节点上的文件读到本地IPFS Daemon中来。
function remove(string fileHash)
调用这个函数可以把文件从FileStorm子链上删除。
function verify(string fileHash)
调用这个函数可以验证节点上文件是否存在。
星际风暴平台FileStorm的参与者
星际风暴平台的参与者分成下面三类:
存储提供方:
存储提供方将会提供用于存储的硬件设备,如带大容量硬盘的电脑,或者订制的硬件盒子。设备需要安装FileStorm程序,用来链接墨客FileStorm子链,和IPFS网络。为FileStorm提供存储可以得到收益,就是俗称的存储挖矿。
应用部署方:
应用部署方为FileStorm子链的创建者。
他们可以搭建一个专门的子链为自己的应用做存储。应用部署方需要承担运营FileStorm子链的费用(墨客也会做为应用部署方部署一条FileStorm子链供用户使用)。
存储使用者:
存储的使用者通过使用应用部署方部署的应用来存储和读取文件。