基于双层网络的去中心化存储系统的制作方法

文档序号:14923371发布日期:2018-07-13 07:11阅读:166来源:国知局

本发明涉及区块链技术领域,具体涉及一种基于双层网络的去中心化存储系统。



背景技术:

随着比特币的普及,人们开始认识到比特币背后的区块链技术已经不仅仅是作为一种新的电子货币的基础,而是具有极其巨大的应用潜力。在短短几年内,基于区块链技术建立了许多去中心化应用系统,例如应用于数据加密、云计算以及社交媒体等领域的应用系统。在现有的去中心化应用系统中,所有的计算和存储都是在链上执行的,所需投入的硬件成本较高,尤其是对于大型应用系统,将需要耗费大量的硬件成本。另外,现有的去中心化应用系统中由于每个全节点需要存储完整的区块链并执行计算任务,导致数据吞吐量较小,无法满足应用需求。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于双层网络的去中心化存储系统。

本发明提供了一种基于双层网络的去中心化存储系统,系统由多个轻节点、多个全节点以及多个主节点组成,其中,多个轻节点、多个全节点以及多个主节点之间构成区块链主网络,多个主节点构成主节点处理网络;

在区块链主网络中,多个轻节点用于存储用户特定数据;多个全节点和多个主节点用于基于共识机制存储完整的区块链;

在主节点处理网络中,多个主节点还用于:将无需共识数据作为链下数据进行存储。

进一步地,多个主节点进一步用于:根据无需共识数据生成对应的哈希值,将哈希值作为索引地址,以供其他节点根据索引地址访问无需共识数据。

进一步地,多个主节点具体为从区块链主网络的初始全节点中选取的符合预设选取策略的节点。

进一步地,预设选取策略包括:拥有币的数量超过预设阈值;和/或,硬件条件符合预设硬件要求;和/或,网络连接状态一直处于在线状态。

进一步地,多个主节点包括:具有挖矿功能的挖矿节点和不具有挖矿功能的非挖矿节点;

挖矿节点用于:将需共识数据打包成新区块,添加至区块链中,并将添加有新区块的区块链广播到区块链主网络中。

进一步地,在挖矿节点获取权益后,将权益按预设比例分配给各个主节点。

进一步地,挖矿节点通过选举机制选举产生。

根据本发明提供的技术方案,利用多个主节点进行资源隔离,具有较高的可扩展性,减少了数据处理约束,有效地提高了系统的数据吞吐量。具体地,该技术方案有效地提升了系统的存储性能,使得主节点的存储空间得到充分的利用,并且有效地减少了数据计算量,降低了计算成本,并使得主节点的计算能力得到利用。该技术方案解决了去中心化应用开发的最根本以及最耗时的问题,从而允许开发者专注于应用场景和客户需求。基于该系统的核心功能和标准接口,开发者可以通过几百行代码方便地完成去中心化应用开发。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的基于双层网络的去中心化存储系统的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的基于双层网络的去中心化存储系统的结构框图,如图1所示,该系统由多个轻节点、多个全节点以及多个主节点组成,其中,多个轻节点、多个全节点以及多个主节点之间构成区块链主网络,多个主节点构成主节点处理网络。

在区块链主网络中,多个轻节点用于存储用户特定数据;多个全节点和多个主节点用于基于共识机制存储完整的区块链。其中,通过轻节点,用户只要保存所有的区块头信息,即使不运行全节点也可进行验证。轻节点不在其节点本身上进行验证,而是借助相关联的全节点去完成验证,轻节点本身只需存储用户特定数据。全节点可以是运行在p2p网络上的服务器,其允许对等方使用它们以接收关于网络上的事件的更新。全节点对于网络的健康是非常重要的,因为它们为用户提供了在整个网络中同步和快速传播消息的能力。

为了对系统提供更好的服务,系统采用双层网络设计。除了在以太坊(ethereum)中的区块链主网络,系统还增加了次级网络,被称为主节点处理网络。区块链主网络是如以太坊的基于区块链的网络,其充当整个系统的骨干。随着权益激励,系统的主节点将具有高可用性,并对区块链网络提供所需水平的服务。

在主节点处理网络中,多个主节点还用于资源隔离。其中,多个主节点具体为从区块链主网络的初始全节点中选取的符合预设选取策略的节点,也就是说,主节点属于特殊的全节点。

为了保证主节点能够很好地提供服务,主节点需要符合预设选取策略。具体地,预设选取策略可包括:拥有币的数量超过预设阈值;和/或,硬件条件符合预设硬件要求;和/或,网络连接状态一直处于在线状态。本领域技术人员可根据实际需要设置预设选取策略,此处不做限定。例如,可将预设阈值设置为20000,预设硬件要求可包括对硬盘、内存以及处理器等的要求。另外,为了避免主节点处理网络中心化,可要求主节点支付预设数量的币作为保证金。

其中,多个主节点包括:具有挖矿功能的挖矿节点和不具有挖矿功能的非挖矿节点。挖矿节点用于将需共识数据打包成新区块,添加至区块链中,并将添加有新区块的区块链广播到区块链主网络中。当挖矿节点执行完上述操作后,会获取到权益。为了鼓励更多的用户参与主节点处理网络,该系统提供了主节点奖励机制,在挖矿节点获取权益后,将权益按预设比例分配给各个主节点。具体地,可将权益中50%的部分作为奖励分配给主节点中的各个非挖矿节点。其中,分配给各个非挖矿节点的权益是与保证金成比例。

挖矿节点是通过选举机制选举产生的。具体地,选举机制可为委任权益证明机制(即dpos机制)。依据dpos机制,令牌持有者选择区块的生产者(即挖矿节点),其负责生成区块并由于生成区块而获取权益。选举产生的生产者将有机会产生与它们获得的总票数成比例的区块。投票过程是连续的,因此,生产者有动机以最高标准执行其职能,否则就有失去票数的危险。

在具体实现中,系统委派2n+1个挖矿节点。确切地说,一个生产者被授权在任何给定时间点生产区块。在每一轮选举中,将拥有币的数量最多的前2n个主节点选举为生产者,最后一个生产者可根据区块时间生成的随机数得到。

基于dpos机制和主节点奖励机制,系统采用混合的挖掘机制,即委任权益证明(dpos)和主节点证明。委任权益证明保证区块链主网络的效率,同时主节点奖励机制鼓励更多的主节点参与。

该系统利用如eos的所有权模型,根据拥有币的数量给予用户一定比例份额的网络资源,如带宽、存储和处理能力。这意味着,如果一个人拥有1%的该系统的代币,他们会总是可以利用1%的网络带宽,而不管网络的其余部分上的负载。此外,由于网络将有零交易费,因此除了最初购买的该系统的代币,没有网络的开发成本。然而,如果期望收回初始投资,可出售该系统的代币。

为了追求安全与效率的平衡,系统将数据存储和计算分为两类,即链上和链下。具体地,多个主节点进一步用于提供与区块链主网络隔离的链下数据存储服务。在系统中,将需共识数据作为链上数据进行存储,其将被所有用户下载和识别。而将无需共识数据作为链下数据进行存储。多个主节点将无需共识数据作为链下数据进行存储。无需共识数据可为文本、图像等无需具有与货币交易同等一致性程度的数据。通过这种存储方式能够有效地提升系统的存储性能,使得主节点的存储空间得到充分的利用。多个主节点根据无需共识数据生成对应的哈希值,将哈希值作为索引地址,以供其他节点根据索引地址访问无需共识数据。本发明根据与无需共识数据对应的哈希值进行索引,而不是根据路径或者url等进行索引,通过这种方式能够有效地避免数据被恶意访问,提供了用于去中心化存储的内置支持,允许用户根据冗余和可靠性之间的平衡选择对数据的可靠性要求。根据主节点奖励机制的权益激励,稳定和可靠地由主节点处理网络提供去中心化存储服务。

另外,为了避免出现链下数据损坏而无法成功访问的情况,可将主节点中存储的无需共识数据备份至若干个主节点中,那么当其中一个主节点存储的链下数据损坏时,也可正常访问其他主节点所备份的链下数据。

由于繁重的计算任务在链上执行的成本是非常昂贵的,本发明通过内置的计算、验证支持,允许用户将非关键的、繁重的计算任务委派给链下。具体地,多个主节点进一步用于提供与区块链主网络隔离的链下数据计算服务。其中,多个主节点可包括:具有计算功能的计算节点和具有验证功能的验证节点。计算节点和验证节点可从多个主节点中随机选取得到的。另外,系统还可根据实际需要增加计算节点和/或验证节点。需要注意的是,计算节点和验证节点可能是挖矿节点,也可能是非挖矿节点。

计算节点用于:执行链下数据计算任务,得到计算结果;验证节点用于:对计算结果进行验证处理;若验证失败,将链下数据计算任务发送给区块链主网络中进行链上执行。验证节点用于检测计算节点提交的计算结果中的错误。根据链上执行结果决定是否惩罚计算节点和/或验证节点,并且向被惩罚的节点收取一定的保证金,以便保证系统的可靠性。与每个全节点都执行计算任务相比,本发明有效地减少了数据计算量,并使得主节点的计算能力得到有效利用。

该系统采用虚拟机独立架构。因此可以支持多个虚拟机,并可在必要时添加新的虚拟机等。目前,该系统具有对于系统虚拟机(bvm)开发的两阶段计划:(1)ethereum虚拟机(evm)是智能合约的实际标准。因此,bvm的第一个版本被计划成与evm兼容的操作代码级,从而允许现有的evm合约通过很少的修改就运行在bvm上;(2)对于进一步的版本,该系统计划通过将evm操作代码动态重定向到字节代码的子集来模拟evm,可对系统代码执行带来接近本地代码的性能,并支持更多种编程语言。

从长远来看,我们相信跨链通信协议将汇聚在一个协议上,就像对于ip和http一样。由于其易于更新特征,该系统将切换到该标准。目前,该系统被设计成支持两种方法的跨链沟通:(1)跨链交易验证:跨链事务验证是通过轻节点验证方法实现的。兼容区块链的区块头文件可以保存在具有高可靠性的主节点处理网络上,从而很容易产生信息存在的证据和消息序列的证据。(2)十字链代币交换:交叉链的证据交换将使用原子交换机制实现。因此能够容易地与系统交换代币。

系统的代币持有者是网络所有者和管理者,通过将他们的权力委派给区块生产者来管理网络。委派的区块生产者被给予检查授权以对于底层协议或其他行政操作刚提出硬分叉改变。随着系统中持有人连续投票,如果区块生产者拒绝做出代币持有者期望的改变,则区块生产者可能落选,从而保证代币持有者的影响力。

另外,现有技术中大多数的应用系统都要求用户支付服务费用。本发明提供的系统将为开发者提供更多的收费策略,这可以为终端用户提供免费服务,从而赢得更广泛的采纳和应用。该系统还具有用于特征增强、错误修复的、明确限定的投票和更新机制。该系统能够便于进一步扩展的交叉区块链通信。

根据本实施例提供的基于双层网络的系统,利用多个主节点进行资源隔离,具有较高的可扩展性,减少了数据处理约束,有效地提高了系统的数据吞吐量。具体地,该技术方案有效地提升了系统的存储性能,使得主节点的存储空间得到充分的利用,并且有效地减少了数据计算量,降低了计算成本,并使得主节点的计算能力得到利用。该技术方案解决了去中心化应用开发的最根本以及最耗时的问题,从而允许开发者专注于应用场景和客户需求。基于该系统的核心功能和标准接口,开发者可以通过几百行代码方便地完成去中心化应用开发。该系统支持轻节点以将计算/存储的重任务委派给主节点处理网络,这降低了连接到其上的设备的计算要求。依托系统,物联网设备可以在没有任何集中的服务器的情况下工作。该系统能够确保在游戏过程中的任何阶段没有特定的个人或实体有集中的优势,这大大提高了金融透明度,该系统将提供去中心化游戏开发的理想平台。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1