LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > MEMO系统规划设计

MEMO系统规划设计

2021-04-30 Memolabs 来源:区块链网络

MEMO的设计初衷

现如今在我们身处的这个信息大爆炸时代,全球每天都会产生数以万计的文档、照片、视频等数据文件,但是传统的中心化存储方式已愈发不能满足市场需求,一是因为成本高昂,二是因为安全性不够高,于是区块链分散式存储应运而生。相对传统的中心化存储,区块链分散式存储则是组织利用散布在全球的闲置电子设备,比如闲置的手机、电脑、硬盘等,这些都可以当作边缘存储节点。区块链分散式存储的典型特征是分散和去中心化,安全性更高,而且成本低廉,备受全球资本和技术圈的关注。

目前区块链分散式存储技术还在持续探索阶段,Memolabs经过持续努力,研究出了基于区块链的新一代分散式云存储系统MEMO相对于传统的区块链而言,MEMO采用更加简洁与高效的技术处理方式来保护维护者、存储者以及用户信息与数据,进而保证整个存储系统的性价比,能够使用户收获更优质的使用体验。

系统需求——我们要解决哪些问题?

由于分散式存储系统部署在低可信度的P2P网络之中,没有集中式的第三方机构负责管理,且存储设备多为用户闲置的边缘设备,并非专有的存储服务器。因此,针对这种应用场景,分散式存储管理系统首先面临的是系统管理问题,细分下去有系统角色管理、存储市场管理、数据维护管理等问题,而这些管理需求最终都是利用智能合约来解决的,因此还必须解决智能合约的管理问题。

1.系统角色管理——解决角色分工的问题

根据存储场景和功能的需要,分散式存储系统中的用户则分为3类,这3类用户分别定义为存储需求者、存储提供者和存储协调者,它们在系统中的功能如下:

存储需求者(User):使用存储空间,具体为:上传数据,由系统中的存储节点代为保存,是系统中存储服务的消费者。

存储协调者(Keeper):承担信息中介和管理功能,具体为:收集和它相连的Provider提供的存储情况,比如某Provider提供存储空间1T;收集和它相连的Keeper的评价信息,比如它的诚信度等;根据User的存储需求找到符合要求的Provider,并对Provider进行挑战。

存储提供者(Provider):提供存储空间,具体为:为User提供存储空间,保存User的数据,是系统中存储服务的提供商。

2.存储市场管理——解决存储服务的问题

MEMO的关键应用是存储服务,因此存储市场管理是必不可少的。User在Keeper的帮助下,寻找到合适的Provider,Provider提供存储数据的空间和时间,Keeper定期对存储数据的Provider进行挑战,如果发现有Provider挑战失败,则就需要触发数据修复功能,User则在需要数据的时候从Provider处下载。根据这种应用场景,User需要向Provider支付存储费用以及下载数据的费用,并且向Keeper支付协调管理的费用。

如果某个用户违背了存储规则,比如损坏数据并且拒绝修复等,就需要相应的惩罚机制来维护系统的正常运行。Keeper如何进行User和Provider之间的匹配;存储服务建立之后如何根据价格进行支付;面临User下载数据的请求时,该如何解决。这些问题统称为存储市场管理的需求,MEMO为此设计了存储时长管理方案。

3.数据维护管理——解决数据维护问题

分散式存储系统面临数据维护管理的需求。User的数据以对象存储的方式存储在被选中的Provider上,由相应的Keeper进行挑战以确保Keeper完整正确地保存数据。然而这种机制缺少可信任性,面向同一个User的所有Keeper可能会一起做出不诚信的行为,提供虚假的挑战结果。

此外,User的元数据信息存储在相应的Keeper上,由Keeper间进行同步。这样可以解决集中式存储中针对元数据信息的负载不均衡或者节点失效的问题。然而这一方式并不能完全保证元数据信息的正确性,Keeper间可能会协商作恶。因此,可以基于智能合约去中心化可信任的特性,将与存储数据相关的重要信息保存在智能合约中,从而便于维护数据的正确性。

为了维护数据安全性与完整性,各类主流的密码学技术,如对称式加解密、防碰撞哈希函数与数字签名技术,被应用以满足严格的数据隐私性与完整性需求。密码学技术与数据冗余及修复技术将为系统提供足够的弹性以容忍各类可能发生的软件与硬件故障以及小规模的恶意攻击,如试图入侵维护、存储与用户设备,从而篡改、销毁或公开数据与信息。同时,MEMO采用久经考验的POW与更加新颖的POS技术,并辅之以第三方安全工具,以进一步提升系统安全性。

4.智能合约管理——解决合约如何调用的问题

构建一个规模庞大的去中心化存储系统的关键问题之一在于高效的管理系统角色及其关联关系。在分散式存储系统中,根据角色的不同,提供的功能也不相同,角色信息需要被保存,从而判断用户的身份提供相应的功能。传统的做法是将用户的角色、地址等信息保存在数据库中,由具体的公司管理。在去中心化场景下,根据账户地址唯一标识用户的特点,利用智能合约进行系统角色信息的管理。

上文讲了,系统存在角色管理、存储市场管理、数据维护管理等需求,而这些需求最终都需要依靠智能合约来实现,因此智能合约管理是以上三类管理需求得以实现的基础,合约管理将整个系统运营贯穿起来。

智能合约如何调用?

智能合约被部署之后,用户需要通过合约实例才能够调用合约里面的方法。而合约实例可以通过合约地址构建。对于一些需要更改链上状态的合约函数,需要特定的用户身份才能够调用;而对于那些获取链上状态信息的合约函数,任意用户可以调用。因此,系统存在合约地址的存放、获取等管理问题。

在MEMO系统中,账户首先注册为某一角色,比如User,在这一过程中,该账户的地址和User角色将会被保存在角色智能合约中,等到该账户上线时,调用角色智能合约,获取自己的角色,从而根据角色获得对应的服务。账户根据自己的存储需求、条件等情况,决定自己想要成为系统中的某种角色。用户上线后,从角色模块获取账户的角色信息。

角色不同,功能也不相同,角色信息也需要被保存。传统的做法是将用户的角色、地址等信息保存在中心数据库中,由具体的公司集中管理。而在MEMO系统去中心化场景下,将根据账户地址唯一标识用户的特点,利用智能合约进行系统角色信息的管理。在使用初期,每一个用户的Keeper是系统随机匹配的,当Keeper积累了一定的关于Provider可用性与可靠性数据之后,则可以建设一个评分系统来匹配Provider与User,这样就可大大降低交易时间。

需求分析是设计与实现的前提,基于以上管理的需要,MEMO为此设计了多个模块,分别解决角色分工、存储服务实现数据维护、合约调用等问题,而正是这些组成了MEMO系统的坚实基石。

—-

编译者/作者:Memolabs

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...