CN114281605A - 一种基于区块链分区存储的计算方法和系统 - Google Patents
一种基于区块链分区存储的计算方法和系统 Download PDFInfo
- Publication number
- CN114281605A CN114281605A CN202210217116.5A CN202210217116A CN114281605A CN 114281605 A CN114281605 A CN 114281605A CN 202210217116 A CN202210217116 A CN 202210217116A CN 114281605 A CN114281605 A CN 114281605A
- Authority
- CN
- China
- Prior art keywords
- data
- backup
- node
- nodes
- consensus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 78
- 238000012795 verification Methods 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000005192 partition Methods 0.000 claims abstract description 21
- 230000000977 initiatory effect Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims abstract description 15
- 238000013500 data storage Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000013524 data verification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 2
- 238000004590 computer program Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008520 organization Effects 0.000 description 10
- 239000002699 waste material Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于区块链分区存储的计算方法和系统,其中,该方法包括:向共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于存储节点中;共识节点获取上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对上链数据进行备份处理,并通过共识协议对备份结果进行共识;向共识节点发起数据计算请求,计算节点获取智能合约执行文件和数据,通过智能合约执行文件对数据进行计算,并将得到的计算结果通过共识节点上链;共识节点接收计算结果,更新数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识。不仅降低了区块链存储压力,还节约了算力资源。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链分区存储的计算方法和系统。
背景技术
区块链技术作为一种公开透明、去中心化、不可篡改的分布式可信数据库,可在多个主体之间建立可信的分布式网络,依据共识算法实现链上数据的集体维护,配合密码学技术可有效解决目前产业大数据在共享过程中面临的数据来源难判定、隐私数据易泄漏、产业数据可篡改、数据应用难溯源等技术问题。
在相关技术中,现有的区块链框架中数据存储普遍存在大量冗余,导致机器存储压力大,性能降低等问题,以比特币为例,如果想要获得完整的钱包,则需要下载超过300gb的交易数据,这对节点来说是很大的负担,如果每个节点都存储完整的交易数据,那对机器的性能会造成很大的影响,也会带来不必要的浪费,因此,急需一种合理的方案能满足在不同场景下动态的完成数据可靠性保障和减少数据冗余之间的平衡。
另一方面,区块链在大数据量的计算上也比较薄弱,因为基于智能合约的计算需要每个参与方都进行重复的计算,这就会造成大量算力资源的浪费,不能有效的利用起网络中机器的算力。除此之外,现有区块链的计算过程和结果缺乏存证机制,导致无法找到区块链中已有数据之间的联系。
目前针对相关技术中区块链数据存储压力大、算力浪费等问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于区块链分区存储的计算方法和系统,以至少解决相关技术中区块链数据存储压力大、算力浪费等问题。
第一方面,本申请实施例提供了一种基于区块链分区存储的计算方法,应用于区块链分区存储的计算系统中,所述系统包括共识节点、存储节点和计算节点,所述方法包括:
向所述共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于所述存储节点中;
所述共识节点获取所述上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对所述上链数据进行备份处理,并通过共识协议对备份结果进行共识;
向所述共识节点发起数据计算请求,所述计算节点获取智能合约执行文件和数据,通过所述智能合约执行文件对所述数据进行计算,并将得到的计算结果通过所述共识节点上链;
所述共识节点接收所述计算结果,更新所述数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。
在其中一些实施例中,所述通过自定义的备份策略选取备份节点数量,通过不同的备份节点对所述上链数据进行备份处理包括:
将所述备份策略进行等级划分,当所述备份策略为第一等级时,不对所述上链数据进行备份,只在单个节点中进行数据存储;
当所述备份策略为第二等级时,预设备份数量,对所述上链数据进行备份,可以承受任意两台节点宕机;
当所述备份策略为第三等级时,选取一半以上的备份节点对上链数据进行备份,其中,当节点总数小于3时,取3为备份数量;
当所述备份策略为第四等级时,所有节点均参与数据备份。
在其中一些实施例中,所述通过自定义的备份策略选取备份节点,通过不同的备份节点对所述上链数据进行备份处理还包括:
当新增节点时,所述新增节点根据所述索引信息表向其他节点同步获取数据;
当备份策略为第三等级时,若所述新增节点加入后,备份数量仍满足有一半以上的节点参与备份,则不需要同步数据,反之,则需要同步数据;
当备份策略为第四等级时,同步存储全部数据。
在其中一些实施例中,所述计算节点获取智能合约执行文件和数据包括:
所述计算节点获取数据hash和智能合约hash,通过所述智能合约hash和所述数据hash分别获取完整的所述智能合约执行文件和数据。
在其中一些实施例中,所述通过自定义验证策略对备份数据进行校验处理包括:
将所述验证策略进行等级划分,根据网络节点信息表,从中随机选出响应数量的节点,发送验证请求;
通过智能合约验证所有节点,若验证得到的结果hash值一致,则返回验证成功,将数据标记为已验证,并更新数据验证结果。
在其中一些实施例中,完成数据的计算和上链之后,所述方法还包括:
调用所述共识节点查询数据hash,根据所述数据hash对数据进行存证、历史溯源功能查询和配置信息修改。
在其中一些实施例中,在向所述共识节点发起数据上链请求之前,所述方法包括:
启动网络,根据初始设置的网络信息和配置信息,启动节点,其中,当有新节点请求加入时,根据共识策略,所述新节点向各个节点申请许可证书,在获得许可的情况下加入网络。
在其中一些实施例中,所述方法还包括:
当读取数据时发生节点宕机,则使用其他节点获取数据,如果所有节点都宕机,则人工重启,并修改相应的备份策略;
当数据备份中途有节点宕机时,若发起备份的节点不能收到所有节点备份成功的返回,则重新在网络信息节点表中选取running状态的节点对数据进行重新备份;
当数据验证中途有节点宕机时,若发起验证的节点不能收到所有参与验证的节点返回的验证成功,则重新在所述网络信息节点表中选取running状态的节点。
第二方面,本申请实施例提供了一种基于区块链分区存储的计算系统,所述系统包括:共识节点、存储节点和计算节点,
服务器向所述共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于所述存储节点中;
所述共识节点获取所述上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对所述上链数据进行备份处理,并通过共识协议对备份结果进行共识;
所述服务器向所述共识节点发起数据计算请求,所述计算节点获取智能合约执行文件和数据,通过所述智能合约执行文件对所述数据进行计算,并将得到的计算结果通过所述共识节点上链;
所述共识节点接收所述计算结果,更新所述数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。
在其中一些实施例中,所述服务器将所述备份策略进行等级划分,当所述备份策略为第一等级时,不对所述上链数据进行备份,只在单个节点中进行数据存储,
当所述备份策略为第二等级时,预设备份数量,对所述上链数据进行备份,可以承受任意两台节点宕机,
当所述备份策略为第三等级时,选取一半以上的备份节点对上链数据进行备份,其中,当节点总数小于3时,取3为备份数量,
当所述备份策略为第四等级时,所有节点均参与数据备份。
相比于相关技术,本申请实施例提供的基于区块链分区存储的计算方法,应用于区块链分区存储的计算系统中,该系统包括共识节点、存储节点和计算节点,首先,向共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于存储节点中;然后,共识节点获取上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对上链数据进行备份处理,并通过共识协议对备份结果进行共识;接着,向共识节点发起数据计算请求,计算节点获取智能合约执行文件和数据,通过智能合约执行文件对数据进行计算,并将得到的计算结果通过共识节点上链;最后,共识节点接收计算结果,更新数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。
在实际使用场景中,由于企业与企业之间并不处于完全信任的环境,因此,很多数据并不需要在每个节点都存有备份,也不需要每个节点都对数据进行验算。本申请基于现实需求和问题,在区块链设计过程中,对每条数据都增加了备份策略和验证策略属性,区块链会根据不同的策略来确定节点备份数量和验证机器数量,以满足不同数据的需求,灵活处理数据,从而解决了区块链数据存储压力大、算力浪费等问题,不仅节约了算力资源,还在降低存储压力的同时,又保证了数据的可靠性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于区块链分区存储的计算方法的应用环境示意图;
图2是根据本申请实施例的基于区块链分区存储的计算系统的结构框图;
图3是根据本申请实施例的基于区块链分区存储的计算方法的流程图;
图4是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的基于区块链分区存储的计算方法,可以应用于如图1所示的应用环境中,图1是根据本申请实施例的基于区块链分区存储的计算方法的应用环境示意图,如图1所示。其中,终端11与服务器10通过网络进行通信。服务器10向共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于存储节点中;然后,共识节点获取上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对上链数据进行备份处理,并通过共识协议对备份结果进行共识;接着,向共识节点发起数据计算请求,计算节点获取智能合约执行文件和数据,通过智能合约执行文件对数据进行计算,并将得到的计算结果通过共识节点上链;最后,共识节点接收计算结果,更新数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。其中,终端11可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器10可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
本实施例提供了一种基于区块链分区存储的计算系统,该系统包括共识节点、存储节点和计算节点,图2是根据本申请实施例的基于区块链分区存储的计算系统的结构框图,如图2所示,共识节点(consensus)主要任务时通过共识机制,如pos、raft、pbft等共识机制,完成共识,保证数据一致性;存储节点(data)用于负责具体数据的存储;计算节点(compute)负责从存储节点中读取数据进行计算,并将计算结果进行上链。需要说明的是,网络中的共识节点可以相互通信,但存储节点和计算节点不参与网络通信,且存储节点和计算节点均附属于共识节点,其中,存储节点和计算节点可以是集群,也可以是单节点。
具体地,服务器向共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于存储节点中;共识节点获取上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对上链数据进行备份处理,并通过共识协议对备份结果进行共识;服务器向共识节点发起数据计算请求,计算节点获取智能合约执行文件和数据,通过智能合约执行文件对数据进行计算,并将得到的计算结果通过共识节点上链;共识节点接收计算结果,更新数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。
通过上述系统,本实施例对每条数据都增加了备份策略和验证策略属性,区块链会根据不同的策略来确定节点备份数量和验证机器数量,以满足不同数据的需求,灵活处理数据,从而解决了区块链数据存储压力大、算力浪费等问题,不仅节约了算力资源,还在降低存储压力的同时,又保证了数据的可靠性。
此外,需要说明的是,本系统中需要维护的信息包括:网络节点信息表、数据索引表、配置信息表;
其中,配置信息表用于记录配置信息,例如共识策略等,其中,本实施例中 的共识策略包括Pbft、raft、pow、pos等;
网络节点信息表用于记录当前网络中参与共识的节点的信息,表1是根据本申请实施例的网络节点信息表示例,如下表1所示, IP为192.168.100.101:6060的共识节点的状态为running,即该共识节点参与共识,其剩余容量为120GB,存储的数据量为5,所属组织为公司A。IP为192.168.100.106:6060的公式节点的状态为stop,即该共识节点不参与共识,其剩余容量为170GB,存储数据量为0,所属组织为公司C。需要说明的是,网络节点信息表中的所属组织还可以是个人或社区,不仅仅局限于公司;
数据索引表主要用于记录数据具体存储的节点位置,表2是根据本申请实施例的数据索引表示例,如下表2所示,数据hash值记录了某数据集的hash值,存储数据的地址则记录了节点IP地址,prev hash表示某数据集通过数据集的hash值计算得到的数据,计算结果hash则表示该数据集计算结果的hash值。例如,假设数据集A的hash值为e111ae46a2a6c172b3fl,prev hash则表示数据集A是通过hash为e222ff763ae46a2a6c172b3fl的数据计算出来的,计算结果e333ff763ae46a2a6c172b3fl则表示数据集A的计算结果的hash值,通过数据索引表的设计可以根据hash索引迅速找到某数据集的来源和计算结果,结构清晰,同时hash查重可以避免重复计算,节省算力。
此外,数据索引表中还记录了智能合约、验证策略、是否校验、备份策略和是否备份等信息,智能合约中记录了智能合约hash值,验证策略和备份策略根据具体策略等级进行标记,例如1、2,其中,已验证的则标记为true,未验证的则可以标记为false;同理,已备份的则标记为true,未备份的则可以标记为false。
需要说明的是,本实施例中的具体示例可以参考下述一种基于区块链分区存储的计算方法的实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
此外,需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种基于区块链分区存储的计算方法,应用于上述区块链分区存储的计算系统中,图3是根据本申请实施例的基于区块链分区存储的计算方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,向共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于存储节点中;
优选的,在向共识节点发起数据上链请求之前,首先启动网络,根据初始设置的网络信息和配置信息,启动节点,其中,当有新节点请求加入时,根据共识策略,新节点向各个节点申请许可证书,例如,若采用pbft共识策略,则新节点需要向三分之二的节点申请许可证书,在获得节点签名许可的情况下,即可加入网络;
等节点启动完成后,向共识节点发起数据上链请求,其中,上链数据包括数据本身和数据的备份策略,然后,通过数据索引表对上链数据进行查重,具体查重操作包括:共识节点接收请求上链的数据,并对其进行hash计算,将得到的hash值在数据索引表中进行查重,如果在数据索引表中能找到该值,则说明数据已经上传过,请求结束;若在数据索引表中不能找到该值,则说明数据没有上传过,此时,需将数据存入存储节点中。需要说明的是,此时在数据索引表中对该数据标记为未校验(false)和未备份(false);
步骤S302,共识节点获取上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对上链数据进行备份处理,并通过共识协议对备份结果进行共识;
优选的,本实施例中,共识节点获取到上链数据并将其存入到数据索引表后,通过自定义的备份策略选取备份节点数量,并通过不同的备份节点对上链数据进行备份处理,具体备份操作如下:
将备份策略进行等级划分,优选的,本实施例中将备份策略划分为四个等级,分别为第一等级unimportant、第二等级normal、第三等级important、第四等级vital;
当备份策略为第一等级unimportant时,表示节点不能访问,因此不需要对上链数据进行备份,只在单个节点中进行数据存储;
当备份策略为第二等级normal时,表示数据需要一定的可用性,此时,预设备份数量,对上链数据进行备份,其中,由于大部分使用场景,如kafka、hadoop等的默认备份数量都为3,因此本实施例中也预设备份数量为3个,作为常规备份,可以承受任意两台节点的宕机;
当备份策略为第三等级important时,表示数据较为重要,需要有超过半数的节点进行备份,因此,选取一半以上的备份节点对上链数据进行备份,其中,当节点总数小于3时,取3为备份数量;
当备份策略为第四等级vital时,表示数据重要等级最高,必须时刻满足数据的可靠性、可用性,因此,所有节点均参与数据备份。
需要说明的是,上述在选取备份节点数量时,还需要结合节点存储空间的剩余容量、节点存储数据数量以及节点所属组织来判断。具体地,可对节点存储容量和节点存储数据数量进行排序,将节点存储数据数量由少到多进行排序,从中正序挑选出存储空间足够存储后续数据的节点进行数据备份,从而可以防止单个节点存储数据过多时发生宕机,导致大量数据不可用的情况,同时也能合理利用剩余资源。此外,在选取备份节点时,还应该选取上链节点所属组织之外的其他组织的节点,提高数据可靠性。
此外,在其中一些实施例中,通过自定义的备份策略选取备份节点,通过不同的备份节点对上链数据进行备份处理还包括:
当后续新增节点时,该新增节点根据索引信息表向其他节点同步获取数据;
具体地,当备份策略为第三等级important时,若新增节点加入后,备份数量仍满足有一半以上的节点参与备份,则不需要同步数据,反之,则需要同步数据;
当备份策略为第四等级vital时,则需要同步存储全部数据。
当通过上述步骤完成数据备份后,通过共识协议对备份结果进行共识,此时,数据上链已全部完成。
本实施例通过灵活配置的备份策略,针对不同的数据,安排不同的备份策略,极大的降低了存储压力,同时又能保证数据的可靠性;
步骤S303,向共识节点发起数据计算请求,计算节点获取智能合约执行文件和数据,通过智能合约执行文件对数据进行计算,并将得到的计算结果通过共识节点上链;
通过步骤S302完成数据的上链后,向共识节点发起数据计算请求,其中,计算参数包括数据的hash值、智能合约的hash值和验证策略;
接着,计算节点通过获取数据的hash值和智能合约的hash值,通过智能合约hash值和数据hash值分别获取完整的智能合约执行文件和数据,并通过智能合约执行文件对数据进行计算,得到的计算结果通过共识节点进行上链;
步骤S304,共识节点接收计算结果,更新数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。
优选的,共识节点接收计算结果,并将结果更新到数据索引表中;
接着,通过自定义验证策略对备份数据进行校验处理,在校验之前,将验证策略进行等级划分,与上述备份策略的等级划分类似,本实施例将验证策略也划分为四个等级,分别为第一等级unimportant、第二等级normal、第三等级important、第四等级vital。其中,第一等级时不需要验证;第二等级时需要3个不同组织的节点进行验证,如果组织数量不足3个,则每个组织都需要提供节点验证;第三等级时需要覆盖半数以上组织所提供的节点进行验证,如果半数以上节点的数量还是小于3,则选取3个组织节点进行验证;第四等级时所有组织节点均需要参与验证。需要说明的是,由于一个组织可以有多个节点,因此,为了防止一个组织拥有大量节点,必须把验证的权力进行分散,提高验证可靠性;
具体校验操作包括:根据网络节点信息表,从中随机选出响应数量的running状态的节点,发送验证请求;通过智能合约验证所有节点,若验证得到的结果hash值一致,则返回验证成功,将数据标记为已验证,并更新数据验证结果,如果校验失败,则在表2的“是否验证”’字段中标记false;
最后,通过共识协议对上述得到的校验结果进行共识,此时,则完全完成了数据的上链和计算。
本实施例通过灵活配置的验证策略,针对不同要求级别的数据,安排不同数量的节点验证计算结果,可以节约大量的算力资源。
通过上述步骤S301至步骤S304,本实施例对每条数据都增加了备份策略和验证策略属性,区块链会根据不同的策略来确定节点备份数量和验证机器数量,以满足不同数据的需求,灵活处理数据,从而解决了区块链数据存储压力大、算力浪费等问题,不仅节约了算力资源,还在降低存储压力的同时,又保证了数据的可靠性。
在其中一些实施例中,完成数据的计算和上链之后,通过调用共识节点可以查询数据的hash值,并根据该数据hash值对数据进行存证、历史溯源功能查询和配置信息修改。
在其中一些实施例中,实际场景下,服务器节点会发生宕机情况,具体包括:
当读取数据时发生节点宕机,则使用其他节点获取数据,如果所有节点都宕机,则人工重启,并修改相应的备份策略,以提高分区容错性;
当数据备份中途有节点宕机时,若发起备份的节点不能收到所有节点备份成功的返回,则重新在网络信息节点表中选取running状态的节点对数据进行重新备份。需要说明的是,如果备份策略采用的是第四等级,那么此时如果发生节点宕机,则表示此次备份失败;
当数据验证中途有节点宕机时,若发起验证的节点不能收到所有参与验证的节点返回的验证成功,则重新在网络信息节点表中选取running状态的节点。需要说明的是,如果验证策略采用的是全部验证,那么此时如果发生节点宕机,则不修改验证标记。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
另外,结合上述实施例中的基于区块链分区存储的计算方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于区块链分区存储的计算方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链分区存储的计算方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图4是根据本申请实施例的电子设备的内部结构示意图,如图4所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图4所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种基于区块链分区存储的计算方法,数据库用于存储数据。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于区块链分区存储的计算方法,应用于区块链分区存储的计算系统中,其特征在于,所述系统包括共识节点、存储节点和计算节点,所述方法包括:
向所述共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于所述存储节点中;
所述共识节点获取所述上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对所述上链数据进行备份处理,并通过共识协议对备份结果进行共识;
向所述共识节点发起数据计算请求,所述计算节点获取智能合约执行文件和数据,通过所述智能合约执行文件对所述数据进行计算,并将得到的计算结果通过所述共识节点上链;
所述共识节点接收所述计算结果,更新所述数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。
2.根据权利要求1所述的方法,其特征在于,所述通过自定义的备份策略选取备份节点数量,通过不同的备份节点对所述上链数据进行备份处理包括:
将所述备份策略进行等级划分,当所述备份策略为第一等级时,不对所述上链数据进行备份,只在单个节点中进行数据存储;
当所述备份策略为第二等级时,预设备份数量,对所述上链数据进行备份,可以承受任意两台节点宕机;
当所述备份策略为第三等级时,选取一半以上的备份节点对上链数据进行备份,其中,当节点总数小于3时,取3为备份数量;
当所述备份策略为第四等级时,所有节点均参与数据备份。
3.根据权利要求2所述的方法,其特征在于,所述通过自定义的备份策略选取备份节点,通过不同的备份节点对所述上链数据进行备份处理还包括:
当新增节点时,所述新增节点根据所述索引信息表向其他节点同步获取数据;
当备份策略为第三等级时,若所述新增节点加入后,备份数量仍满足有一半以上的节点参与备份,则不需要同步数据,反之,则需要同步数据;
当备份策略为第四等级时,同步存储全部数据。
4.根据权利要求1所述的方法,其特征在于,所述计算节点获取智能合约执行文件和数据包括:
所述计算节点获取数据hash和智能合约hash,通过所述智能合约hash和所述数据hash分别获取完整的所述智能合约执行文件和数据。
5.根据权利要求1所述的方法,其特征在于,所述通过自定义验证策略对备份数据进行校验处理包括:
将所述验证策略进行等级划分,根据网络节点信息表,从中随机选出响应数量的节点,发送验证请求;
通过智能合约验证所有节点,若验证得到的结果hash值一致,则返回验证成功,将数据标记为已验证,并更新数据验证结果。
6.根据权利要求1所述的方法,其特征在于,完成数据的计算和上链之后,所述方法还包括:
调用所述共识节点查询数据hash,根据所述数据hash对数据进行存证、历史溯源功能查询和配置信息修改。
7.根据权利要求1所述的方法,其特征在于,在向所述共识节点发起数据上链请求之前,所述方法包括:
启动网络,根据初始设置的网络信息和配置信息,启动节点,其中,当有新节点请求加入时,根据共识策略,所述新节点向各个节点申请许可证书,在获得许可的情况下加入网络。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
当读取数据时发生节点宕机,则使用其他节点获取数据,如果所有节点都宕机,则人工重启,并修改相应的备份策略;
当数据备份中途有节点宕机时,若发起备份的节点不能收到所有节点备份成功的返回,则重新在网络信息节点表中选取running状态的节点对数据进行重新备份;
当数据验证中途有节点宕机时,若发起验证的节点不能收到所有参与验证的节点返回的验证成功,则重新在所述网络信息节点表中选取running状态的节点。
9.一种基于区块链分区存储的计算系统,其特征在于,所述系统包括共识节点、存储节点和计算节点,
服务器向所述共识节点发起数据上链请求,并通过数据索引表对上链数据进行查重,将未上传过的数据存储于所述存储节点中;
所述共识节点获取所述上链数据,通过自定义的备份策略选取备份节点数量,通过不同的备份节点对所述上链数据进行备份处理,并通过共识协议对备份结果进行共识;
所述服务器向所述共识节点发起数据计算请求,所述计算节点获取智能合约执行文件和数据,通过所述智能合约执行文件对所述数据进行计算,并将得到的计算结果通过所述共识节点上链;
所述共识节点接收所述计算结果,更新所述数据索引表,通过自定义验证策略对备份数据进行校验处理,并通过共识协议对校验结果进行共识,完成数据的计算和上链。
10.根据权利要求9所述的系统,其特征在于,
所述服务器将所述备份策略进行等级划分,当所述备份策略为第一等级时,不对所述上链数据进行备份,只在单个节点中进行数据存储,
当所述备份策略为第二等级时,预设备份数量,对所述上链数据进行备份,可以承受任意两台节点宕机,
当所述备份策略为第三等级时,选取一半以上的备份节点对上链数据进行备份,其中,当节点总数小于3时,取3为备份数量,
当所述备份策略为第四等级时,所有节点均参与数据备份。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210217116.5A CN114281605B (zh) | 2022-03-07 | 2022-03-07 | 一种基于区块链分区存储的计算方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210217116.5A CN114281605B (zh) | 2022-03-07 | 2022-03-07 | 一种基于区块链分区存储的计算方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281605A true CN114281605A (zh) | 2022-04-05 |
CN114281605B CN114281605B (zh) | 2022-06-21 |
Family
ID=80882328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210217116.5A Active CN114281605B (zh) | 2022-03-07 | 2022-03-07 | 一种基于区块链分区存储的计算方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281605B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666149A (zh) * | 2022-04-07 | 2022-06-24 | 杭州集联科技有限公司 | 基于区块链的物联网环境安全监控系统 |
CN114881760A (zh) * | 2022-04-29 | 2022-08-09 | 深圳市智策科技有限公司 | 基于区块链的数据管理方法及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889382A (zh) * | 2019-02-20 | 2019-06-14 | 中国互联网络信息中心 | 一种基于区块链混合共识的域名信息维护系统 |
US20200117550A1 (en) * | 2018-10-12 | 2020-04-16 | EMC IP Holding Company LLC | Method, device and computer program product for backing up data |
CN111026767A (zh) * | 2020-01-04 | 2020-04-17 | 天津金农企业管理咨询合伙企业(有限合伙) | 区块链的数据存储方法、装置及硬件设备 |
CN112767110A (zh) * | 2021-01-20 | 2021-05-07 | 中国工商银行股份有限公司 | 大数据分散上链方法及系统 |
CN112950208A (zh) * | 2021-03-29 | 2021-06-11 | 建信金融科技有限责任公司 | 一种基于区块链的账务信息处理方法和装置 |
CN112988667A (zh) * | 2021-05-12 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据存储方法及装置 |
CN113157648A (zh) * | 2021-04-28 | 2021-07-23 | 中国工商银行股份有限公司 | 基于区块链的分布式数据存储方法、装置、节点及系统 |
CN113254264A (zh) * | 2021-04-14 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种区块链的数据备份方法、装置及存储介质 |
EP3886403A1 (en) * | 2017-05-22 | 2021-09-29 | Advanced New Technologies Co., Ltd. | Block chain service acceptance and consensus method and device |
CN113934577A (zh) * | 2021-10-28 | 2022-01-14 | 银清科技有限公司 | 一种跨数据中心部署的区块链网络共识节点的灾备方法 |
CN114065283A (zh) * | 2020-11-20 | 2022-02-18 | 北京邮电大学 | 一种轻量级可循环再生的区块链存储方法及装置 |
-
2022
- 2022-03-07 CN CN202210217116.5A patent/CN114281605B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3886403A1 (en) * | 2017-05-22 | 2021-09-29 | Advanced New Technologies Co., Ltd. | Block chain service acceptance and consensus method and device |
US20200117550A1 (en) * | 2018-10-12 | 2020-04-16 | EMC IP Holding Company LLC | Method, device and computer program product for backing up data |
CN109889382A (zh) * | 2019-02-20 | 2019-06-14 | 中国互联网络信息中心 | 一种基于区块链混合共识的域名信息维护系统 |
CN111026767A (zh) * | 2020-01-04 | 2020-04-17 | 天津金农企业管理咨询合伙企业(有限合伙) | 区块链的数据存储方法、装置及硬件设备 |
CN114065283A (zh) * | 2020-11-20 | 2022-02-18 | 北京邮电大学 | 一种轻量级可循环再生的区块链存储方法及装置 |
CN112767110A (zh) * | 2021-01-20 | 2021-05-07 | 中国工商银行股份有限公司 | 大数据分散上链方法及系统 |
CN112950208A (zh) * | 2021-03-29 | 2021-06-11 | 建信金融科技有限责任公司 | 一种基于区块链的账务信息处理方法和装置 |
CN113254264A (zh) * | 2021-04-14 | 2021-08-13 | 卓尔智联(武汉)研究院有限公司 | 一种区块链的数据备份方法、装置及存储介质 |
CN113157648A (zh) * | 2021-04-28 | 2021-07-23 | 中国工商银行股份有限公司 | 基于区块链的分布式数据存储方法、装置、节点及系统 |
CN112988667A (zh) * | 2021-05-12 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据存储方法及装置 |
CN113934577A (zh) * | 2021-10-28 | 2022-01-14 | 银清科技有限公司 | 一种跨数据中心部署的区块链网络共识节点的灾备方法 |
Non-Patent Citations (2)
Title |
---|
彭林: "基于区块链技术的DNS根域名系统研究与实现", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
许亮: "基于区块链技术的可信分布式计算研究", 《现代计算机》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666149A (zh) * | 2022-04-07 | 2022-06-24 | 杭州集联科技有限公司 | 基于区块链的物联网环境安全监控系统 |
CN114666149B (zh) * | 2022-04-07 | 2024-01-26 | 杭州集联科技有限公司 | 基于区块链的物联网环境安全监控系统 |
CN114881760A (zh) * | 2022-04-29 | 2022-08-09 | 深圳市智策科技有限公司 | 基于区块链的数据管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114281605B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114281605B (zh) | 一种基于区块链分区存储的计算方法和系统 | |
US11895223B2 (en) | Cross-chain validation | |
US10671308B2 (en) | Private and fault-tolerant storage of segmented data | |
US11018852B2 (en) | Blockchain trust anchor | |
CN110647582B (zh) | 区块链网络共识校验的方法、装置、存储介质和计算机设备 | |
JP7050955B2 (ja) | 共有されたブロックチェーンデータの記憶の優先順位付け | |
EP3739538A1 (en) | System and method of supporting reflection of transactions between blockchain networks | |
CN113961535A (zh) | 一种基于区块链的数据可信存储共享系统与方法 | |
CN111191294B (zh) | 基于区块链的单节点记账方法、系统、设备和存储介质 | |
CN110602169B (zh) | 服务调用方法、装置、计算机设备和存储介质 | |
CN112667748B (zh) | 面向审计业务的区块链一体机、数据处理方法和装置 | |
CN113553375B (zh) | 一种面向图式区块链的分片存储装置及方法 | |
US11070563B2 (en) | Trace-based transaction validation and commitment | |
KR20210055631A (ko) | 에러 정정 코드에 기초한 공유 블록체인 데이터 저장의 데이터 보안 | |
CN112651001A (zh) | 访问请求的鉴权方法、装置、设备及可读存储介质 | |
US11138188B2 (en) | Performance optimization | |
CN111026767A (zh) | 区块链的数据存储方法、装置及硬件设备 | |
US20230101685A1 (en) | Parallel processing of blockchain procedures | |
CN107844542A (zh) | 一种分布式文件存储方法及装置 | |
WO2021226854A1 (zh) | 区块链机、区块链数据接入认证方法及计算机可读存储介质 | |
CN112116348A (zh) | 一种对节点资源的访问控制方法 | |
US20230412402A1 (en) | Endorsement policy consolidation in blockchain networks | |
CN115270195A (zh) | 基于区块链的证券信息存证管理方法、系统及装置 | |
CN114978651A (zh) | 一种隐私计算存证方法、装置、电子设备及存储介质 | |
CN114880300A (zh) | 基于区块链文件的处理方法和装置、处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 310000 7th floor, building B, No. 482, Qianmo Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Huoshi Creation Technology Co.,Ltd. Address before: 310000 7th floor, building B, No. 482, Qianmo Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: HANGZHOU FIRESTONE TECHNOLOGY Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |