CN111858751A - 基于区块链的数据存储方法及装置 - Google Patents
基于区块链的数据存储方法及装置 Download PDFInfo
- Publication number
- CN111858751A CN111858751A CN202010602292.1A CN202010602292A CN111858751A CN 111858751 A CN111858751 A CN 111858751A CN 202010602292 A CN202010602292 A CN 202010602292A CN 111858751 A CN111858751 A CN 111858751A
- Authority
- CN
- China
- Prior art keywords
- nodes
- block chain
- node
- hash value
- accounting
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013500 data storage Methods 0.000 title claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims abstract description 25
- 238000012795 verification Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及区块链领域,提供了一种基于区块链的数据存储方法及装置。一方面,该方法包括:监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;对所述第一全节点进行身份验证;在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。通过本发明,解决了相关技术中的区块链***占用存储量大的技术问题,减少了区块节点的硬件使用消耗,降低了区块客户端的接入门槛。
Description
【技术领域】
本发明涉及区块链领域,尤其涉及一种基于区块链的数据存储方法及装置。
【背景技术】
相关技术中,各行各业对区块链的基础建设开始了大量的研发和投入,包括现在的智能合约,区块链开始延伸到越来越多的领域,比如公共链公证***,二手商品交易APP应用,私有链等,形成一个非常庞大的区块链组合,但是随之而来的去中心化体系的弊端也慢慢扩展开来。
相关技术中,以区块链上的最好的应用比特币为例,对于本身客户端的要求实在过高,就拿一个节点机来说,当你开始运用比特币的时候,数据需要同步,而同步的过程是从创始块开始的,当你第一次打开这个应用程序的时候,核心客户端首次开始数据同步,海量的数据导致下载缓慢,而比特币只是目前区块链的一个应用而已,当一个新的区块链应用逐渐递增的情况下,由于目前的客户端都是可篡改的中心化***轻应用客户端,但是基于区块链技术这个中心是去掉了,相当把中心全量的给到每一个节点,这使得今后的节点应用变得非常庞大,每个节点在本地存储的数据也非常庞大,对节点的硬件产生非常大的消耗。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
【发明内容】
有鉴于此,本发明实施例提供了一种基于区块链的数据存储方法及装置。
一方面,本发明实施例提供了一种基于区块链的数据存储方法,所述方法包括:监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;对所述第一全节点进行身份验证;在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。
可选的,对所述第一全节点进行身份验证包括:在本地读取所述第一全节点的第一哈希值,以及根据所述第一哈希值获取所述第一全节点的第二哈希值,其中,所述第二哈希值存储在所述第一全节点的客户端上;比较所述第一哈希值与所述第二哈希值是否一致;如果所述第一哈希值与所述第二哈希值一致,确定身份验证通过;若所述第一哈希值与所述第二哈希值不一致,确定身份验证不通过。
可选的,根据所述第一哈希值获取所述第一全节点的第二哈希值包括:确定第一哈希值所属区块的区块标识;以所述区块标识为索引,在所述第一全节点的存储器中读取区块保存在客户端上的第二哈希值;若读取失败,继续读取第二全节点的第三哈希值,并通过所述第三哈希计算得到所述第一全节点的第二哈希值,其中,所述第二全节点是所述第一全节点的相邻区块节点。
可选的,向所述区块链上的轻节点广播所述记账任务包括:将所述记账任务拆分为多个子任务;向所述区块链上的所有轻节点广播所述多个子任务,以使所有轻节点基于工作量证明POW算法竞争所述多个子任务的记账权利。
可选的,将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点包括:接收M个轻节点基于多个子任务分别反馈的M个子哈希,其中,所述记账任务包括所述多个子任务,其中,M为大于1的正整数;拼接所述M个子哈希,得到所述记账任务的记账数据,并同步存储到所述区块链上的所有全节点。
可选的,拼接所述M个子哈希包括以下至少之一:基于所述M个子哈希的反馈时间按序拼接所述M个子哈希;基于所述多个子任务的任务标识拼接所述M个子哈希。
可选的,在监测区块链上全节点的账户状态之前,所述方法还包括:通过智能合约在所述区块链上设置节点机,并建立所述节点机与每个全节点的通讯链路;在节点机本地同步存储每个全节点的秘钥信息,其中,所述秘钥信息携带全节点的哈希值。
另一方面,本发明实施例提供了一种基于区块链的数据存储装置,所述装置包括:监测模块,用于监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;提交模块,用于在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;验证模块,用于对所述第一全节点进行身份验证;存储模块,用于在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。
可选的,所述验证模块包括:读取单元,用于在本地读取所述第一全节点的第一哈希值,以及根据所述第一哈希值获取所述第一全节点的第二哈希值,其中,所述第二哈希值存储在所述第一全节点的客户端上;比较单元,用于比较所述第一哈希值与所述第二哈希值是否一致;确定单元,用于如果所述第一哈希值与所述第二哈希值一致,确定身份验证通过;若所述第一哈希值与所述第二哈希值不一致,确定身份验证不通过。
可选的,所述读取单元包括:确定子单元,用于确定第一哈希值所属区块的区块标识;读取子单元,用于以所述区块标识为索引,在所述第一全节点的存储器中读取区块保存在客户端上的第二哈希值;若读取失败,继续读取第二全节点的第三哈希值,并通过所述第三哈希计算得到所述第一全节点的第二哈希值,其中,所述第二全节点是所述第一全节点的相邻区块节点。
可选的,所述存储模块包括:拆分单元,用于将所述记账任务拆分为多个子任务;广播单元,用于向所述区块链上的所有轻节点广播所述多个子任务,以使所有轻节点基于工作量证明POW算法竞争所述多个子任务的记账权利。
可选的,所述存储模块包括:接收单元,用于接收M个轻节点基于多个子任务分别反馈的M个子哈希,其中,所述记账任务包括所述多个子任务,其中,M为大于1的正整数;拼接单元,用于拼接所述M个子哈希,得到所述记账任务的记账数据,并同步存储到所述区块链上的所有全节点。
可选的,所述拼接单元包括以下至少之一:第一拼接子单元,用于基于所述M个子哈希的反馈时间按序拼接所述M个子哈希;第二拼接子单元,用于基于所述多个子任务的任务标识拼接所述M个子哈希。
可选的,所述装置还包括:设置模块,用于在所述监测模块在监测区块链上全节点的账户状态之前,通过智能合约在所述区块链上设置节点机,并建立所述节点机与每个全节点的通讯链路;同步模块,用于在节点机本地同步存储每个全节点的秘钥信息,其中,所述秘钥信息携带全节点的哈希值。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,监测区块链上全节点的账户状态,在第一全节点的账户状态发生变化时,向所述区块链提交记账任务,在第一全节点的身份验证通过后,向区块链上的轻节点广播记账任务,并将轻节点的反馈数据作为记账任务的记账数据同步存储到区块链上的所有全节点,将记账数据广播给区块链上的全节点,通过调用轻节点执行记账任务,在去中心化的同时可以减少相同记账数据在区块链上的存储次数,解决了相关技术中的区块链***占用存储量大的技术问题,减少了区块节点的硬件使用消耗,降低了区块客户端的接入门槛。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例的一种基于区块链的数据存储计算机的硬件结构框图;
图2是根据本发明实施例的基于区块链的数据存储方法的流程图;
图3是本发明实施例的区块链***构架图;
图4是根据本发明实施例的基于区块链的数据存储装置的结构框图。
【具体实施方式】
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
本申请实施例一所提供的方法实施例可以在服务器、计算机或者类似的运算装置中执行。以运行在计算机上为例,图1是本发明实施例的一种基于区块链的数据存储计算机的硬件结构框图。如图1所示,计算机10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的基于区块链的数据存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种基于区块链的数据存储方法,图2是根据本发明实施例的基于区块链的数据存储方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,监测区块链上全节点的账户状态,其中,区块链包括全节点和轻节点;
在区块链中,包括全节点和轻节点两种节点类型,全节点是同步存储所有区块链数据的节点,轻节点是只保存区块头(用于使用分布式哈希表来追踪前缀节点、或者是查找全节点上的记账数据)的节点,轻节点和全节点之间可以相互转换。
步骤S204,在第一全节点的账户状态发生变化时,向区块链提交记账任务;
本实施例的第一全节点是区块链上全部全节点中的任一节点,监测到全节点上发生记账操作时,如虚拟资产的转入转出等,账户状态会发生变化,为实现区块链的非中心化数据同步,需要通知到区块链上的其他全节点;
步骤S206,对第一全节点进行身份验证;
验证该用户的真实性,非中心化的中心化***能保证客户端的数据不会被篡改;
步骤S208,在身份验证通过后,向区块链上的轻节点广播记账任务,并将轻节点的反馈数据作为记账任务的记账数据同步存储到区块链上的所有全节点。
本实施例通过获取测试链路在交互过程中的信息日志作为测试数据进行链路数据的区块封装,使用共识算法的单节点共识机制来将测试数据写入区块链。
通过本实施例的方案,监测区块链上全节点的账户状态,在第一全节点的账户状态发生变化时,向区块链提交记账任务,在第一全节点的身份验证通过后,向区块链上的轻节点广播记账任务,并将轻节点的反馈数据作为记账任务的记账数据同步存储到区块链上的所有全节点,将记账数据广播给区块链上的全节点,通过调用轻节点执行记账任务,在去中心化的同时可以减少相同记账数据在区块链上的存储次数,解决了相关技术中的区块链***占用存储量大的技术问题,减少了区块节点的硬件使用消耗,降低了区块客户端的接入门槛。
本实施例的执行主体是区块链客户端,手机、平板、电脑、服务器等,也可以应在服务后台,服务中台等数据处理***或业务***中。
在本实施例中,在监测区块链上全节点的账户状态之前,还包括:通过智能合约在区块链上设置节点机,并建立节点机与每个全节点的通讯链路;在节点机本地同步存储每个全节点的秘钥信息,其中,秘钥信息携带全节点的哈希值。
选择区块链中的全节点,通过智能合约为全节点分配节点机,同时同步全节点的秘钥(该秘钥存储哈希值,用于标识该区块并全链追溯);在节点机和全节点之间搭建通信链路,用于实现节点机与全节点之间的信息交互。
区块链可以无限制的生成秘钥而每生成一个就代表一个用户节点,所以节点机可作为一个非中心化的中心化***,在该台节点机上搭建编写netty服务(提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序),这样通过客户端来基于节点机控制区块链上的全节点。本实施例的节点机是区块链上其中一个区块的服务器,和传统区块节点不同,该区块多了一个web server服务,主要是将任务发送到其他节点上,也叫特殊能力区块,传统区块是单单记录区块写入区块的,而本实施例节点机是记录区块后分发任务到某一个客户端上生成数据,然后将数据结合开始做记账处理,并回存。
在本实施例中,对第一全节点进行身份验证包括:
S11,在本地读取第一全节点的第一哈希值,以及根据第一哈希值获取第一全节点的第二哈希值,其中,第二哈希值存储在第一全节点的客户端上;
在本实施例中,第一哈希值是第一全节点的标识信息,是第一全节点在区块链上的唯一身份标识,区块链在生成第一全节点时,通过对历史记账任务进行哈希算法转换得到。区块链的哈希值能够唯一而精准地标识一个区块,区块链中任意节点通过特定的哈希计算都接获得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块链中的信息没有被篡改,身份验证通过。
在本实施例的一个实施方式中,根据第一哈希值获取第一全节点的第二哈希值包括:确定第一哈希值所属区块的区块标识;以区块标识为索引,在第一全节点的存储器中读取区块保存在客户端上的第二哈希值;若读取失败,继续读取第二全节点的第三哈希值,并通过第三哈希计算得到第一全节点的第二哈希值,其中,第二全节点是第一全节点的相邻区块节点。
S12,比较第一哈希值与第二哈希值是否一致;
S13,如果第一哈希值与第二哈希值一致,确定身份验证通过;若第一哈希值与第二哈希值不一致,确定身份验证不通过。
节点机作为中心化服务会验证该用户的真实性,非中心化的中心化***能保证客户端的数据不会被篡改,将客户端的块头信息直接通过索引的方式检查自身区块块头的哈希值来标识节点是否有异常。过程包括:提取秘钥中的第一哈希值,确定第一哈希值所属区块的区块标识,以区块标识为索引,在第一全节点中查找改区块保存在全节点上的第二哈希值,读取第一全节点保存在全节点上的第二哈希值,比较第一哈希值与第二哈希值是否一致,如果一致,则身份验证通过,如果不一致,则身份验证不通过。
在一些场景中,可能会读取失败(因为权限,恶意拦截等原因),则读取第一全节点在区块链上的相邻区块(区块链上的上一个区块或者下一个区块)的第三哈希值,通过哈希计算得到第一全节点的哈希值,如果一致,则身份验证通过,如果不一致,则身份验证不通过。
区块链上的区块是分为块头和块体,每个块头通过存入前一个块头的hash值而关联了区块中众多交易事务,而每个区块只要块头哈希值(相当于一个区块的身份证号)串联起来,这就是所谓的账本,每个节点必须做的就是让自己的账本和他人一样最终保持一致性。
通过在节点机上构建netty服务,节点机基于netty的服务也就是web服务,获取携带哈希值的秘钥,当做节点机上的token,利用秘钥中的哈希值验证全节点的身份。
在本实施例的一个示例中,向区块链上的轻节点广播记账任务包括:将记账任务拆分为多个子任务;向区块链上的所有轻节点广播多个子任务,以使所有轻节点基于POW((Proof of Work,工作量证明))算法竞争多个子任务的记账权利。
可选的,将轻节点的反馈数据作为记账任务的记账数据同步存储到区块链上的所有全节点包括:接收M个轻节点基于多个子任务分别反馈的M个子哈希,其中,记账任务包括多个子任务,其中,M为大于1的正整数;拼接M个子哈希,得到记账任务的记账数据,并同步存储到区块链上的所有全节点。
在拼接过程中,可以采用多种方式进行拼接,由于每个子任务都是唯一的,因此M个子哈希也是唯一的,不管采用何种方式进行拼接,都可以得到唯一的总哈希,拼接M个子哈希可以但不限于为:基于M个子哈希的反馈时间按序拼接M个子哈希;基于多个子任务的任务标识拼接M个子哈希。
图3是本发明实施例的区块链***构架图,包括:多个全节点(节点1、节点2、节点3),节点机,节点机的控制客户端,多个轻节点(节点a、节点b、节点c)。向轻节点广播记账任务,并接收轻节点反馈的记账数据,轻节点可以通过pow算法进行竞争,节点机拼接各个轻节点的记账数据(哈希+哈希)得到完整的记账数据,然后同步到其他全节点,包括:
多个轻节点通过POW算法进行竞争,若第一轻节点求解完成,提取记账任务的第一子任务,第一轻节点执行第一子任务得到第一子哈希;直到第N轻节点求解完成,提取记账任务的第N子任务,第N轻节点执行第N子任务得到第N子哈希,直到记账任务分配完成,拼接各个轻节点的子哈希(第一子哈希+…+第N子哈希),得到完整的哈希值,将其作为记账数据进行全链同步。
在本实施例中,记账任务可以均分为多个子任务,每个子任务对应一个轻节点。也可以不均分,按照预设梯度进行划分,如二分之一,三分之一,六分之一等进行划分,求解完成的时间越早,分配的子任务越大。
本实施例的POW算法是通过计算难度值来决定谁来出块。POW的工作量是指方程式求解,谁先解出来,谁就有权利出块。方程式是通过前一个区块的哈希值和随机值nonce来计算下一个区块的哈希值,谁先找到nonce,谁就能最先计算出下一个区块的哈希值,这种方式之所以被称为计算难度值是因为方程式没有固定解法,只能不断的尝试,这种解方程式的方式称为哈希碰撞,是概率事件,碰撞的次数越多,方程式求解的难度就会越大。
通过节点机接受到任务后将任务直接广播到其他节点123上去,而一旦同步到节点机上后,整个数据都写入节点中心区块链主链上,并生成一个新的区块。
节点123为区块链应用加上web server应用,作为轻节点,只记录和操作最新一块的区块进行提交数据。
由于目前的区块链的模式的应用中完全去掉中心的应用会使得区块链应用客户端的资源消耗,而比特币对这类问题的解决方案是删除N年前的数据将其保存下来加密,这类的方案显然在追溯一个N年前的交易是非常繁琐的,而本实施例提出的非中心的中心节点同样可以解决这类的问题,同时解决了数据量大的客户端存储问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种基于区块链的数据存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本发明实施例的基于区块链的数据存储装置的结构框图,如图4所示,该装置包括:监测模块40,提交模块42,验证模块44,存储模块46,其中,
监测模块40,用于监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;
提交模块42,用于在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;
验证模块44,用于对所述第一全节点进行身份验证;
存储模块46,用于在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。
可选的,所述验证模块包括:读取单元,用于在本地读取所述第一全节点的第一哈希值,以及根据所述第一哈希值获取所述第一全节点的第二哈希值,其中,所述第二哈希值存储在所述第一全节点的客户端上;比较单元,用于比较所述第一哈希值与所述第二哈希值是否一致;确定单元,用于如果所述第一哈希值与所述第二哈希值一致,确定身份验证通过;若所述第一哈希值与所述第二哈希值不一致,确定身份验证不通过。
可选的,所述读取单元包括:确定子单元,用于确定第一哈希值所属区块的区块标识;读取子单元,用于以所述区块标识为索引,在所述第一全节点的存储器中读取区块保存在客户端上的第二哈希值;若读取失败,继续读取第二全节点的第三哈希值,并通过所述第三哈希计算得到所述第一全节点的第二哈希值,其中,所述第二全节点是所述第一全节点的相邻区块节点。
可选的,所述存储模块包括:拆分单元,用于将所述记账任务拆分为多个子任务;广播单元,用于向所述区块链上的所有轻节点广播所述多个子任务,以使所有轻节点基于工作量证明POW算法竞争所述多个子任务的记账权利。
可选的,所述存储模块包括:接收单元,用于接收M个轻节点基于多个子任务分别反馈的M个子哈希,其中,所述记账任务包括所述多个子任务,其中,M为大于1的正整数;拼接单元,用于拼接所述M个子哈希,得到所述记账任务的记账数据,并同步存储到所述区块链上的所有全节点。
可选的,所述拼接单元包括以下至少之一:第一拼接子单元,用于基于所述M个子哈希的反馈时间按序拼接所述M个子哈希;第二拼接子单元,用于基于所述多个子任务的任务标识拼接所述M个子哈希。
可选的,所述装置还包括:设置模块,用于在所述监测模块在监测区块链上全节点的账户状态之前,通过智能合约在所述区块链上设置节点机,并建立所述节点机与每个全节点的通讯链路;同步模块,用于在节点机本地同步存储每个全节点的秘钥信息,其中,所述秘钥信息携带全节点的哈希值。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;
S2,在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;
S3,对所述第一全节点进行身份验证;
S4,在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;
S2,在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;
S3,对所述第一全节点进行身份验证;
S4,在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
Claims (10)
1.一种基于区块链的数据存储方法,其特征在于,包括:
监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;
在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;
对所述第一全节点进行身份验证;
在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。
2.根据权利要求1所述的方法,其特征在于,对所述第一全节点进行身份验证包括:
在本地读取所述第一全节点的第一哈希值,以及根据所述第一哈希值获取所述第一全节点的第二哈希值,其中,所述第二哈希值存储在所述第一全节点的客户端上;
比较所述第一哈希值与所述第二哈希值是否一致;
如果所述第一哈希值与所述第二哈希值一致,确定身份验证通过;若所述第一哈希值与所述第二哈希值不一致,确定身份验证不通过。
3.根据权利要求2所述的方法,其特征在于,根据所述第一哈希值获取所述第一全节点的第二哈希值包括:
确定第一哈希值所属区块的区块标识;
以所述区块标识为索引,在所述第一全节点的存储器中读取区块保存在客户端上的第二哈希值;若读取失败,继续读取第二全节点的第三哈希值,并通过所述第三哈希计算得到所述第一全节点的第二哈希值,其中,所述第二全节点是所述第一全节点的相邻区块节点。
4.根据权利要求1所述的方法,其特征在于,向所述区块链上的轻节点广播所述记账任务包括:
将所述记账任务拆分为多个子任务;
向所述区块链上的所有轻节点广播所述多个子任务,以使所有轻节点基于工作量证明POW算法竞争所述多个子任务的记账权利。
5.根据权利要求1所述的方法,其特征在于,将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点包括:
接收M个轻节点基于多个子任务分别反馈的M个子哈希,其中,所述记账任务包括所述多个子任务,其中,M为大于1的正整数;
拼接所述M个子哈希,得到所述记账任务的记账数据,并同步存储到所述区块链上的所有全节点。
6.根据权利要求5所述的方法,其特征在于,拼接所述M个子哈希包括以下至少之一:
基于所述M个子哈希的反馈时间按序拼接所述M个子哈希;
基于所述多个子任务的任务标识拼接所述M个子哈希。
7.根据权利要求1所述的方法,其特征在于,在监测区块链上全节点的账户状态之前,所述方法还包括:
通过智能合约在所述区块链上设置节点机,并建立所述节点机与每个全节点的通讯链路;
在节点机本地同步存储每个全节点的秘钥信息,其中,所述秘钥信息携带全节点的哈希值。
8.一种基于区块链的数据存储装置,其特征在于,包括:
监测模块,用于监测区块链上全节点的账户状态,其中,所述区块链包括全节点和轻节点;
提交模块,用于在第一全节点的账户状态发生变化时,向所述区块链提交记账任务;
验证模块,用于对所述第一全节点进行身份验证;
存储模块,用于在身份验证通过后,向所述区块链上的轻节点广播所述记账任务,并将所述轻节点的反馈数据作为所述记账任务的记账数据同步存储到所述区块链上的所有全节点。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010602292.1A CN111858751A (zh) | 2020-06-29 | 2020-06-29 | 基于区块链的数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010602292.1A CN111858751A (zh) | 2020-06-29 | 2020-06-29 | 基于区块链的数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858751A true CN111858751A (zh) | 2020-10-30 |
Family
ID=72988719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010602292.1A Pending CN111858751A (zh) | 2020-06-29 | 2020-06-29 | 基于区块链的数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858751A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113111392A (zh) * | 2021-04-12 | 2021-07-13 | 浙江永旗区块链科技有限公司 | 一种区块链数据同步***及其控制方法 |
CN113489743A (zh) * | 2021-07-26 | 2021-10-08 | 广东辰宜信息科技有限公司 | 应用于区块链***的共识实现方法及装置 |
CN113570194A (zh) * | 2021-06-28 | 2021-10-29 | 北京电链科技有限公司 | 一种基于区块链的电力施工业务数据处理方法及*** |
CN114362960A (zh) * | 2021-12-31 | 2022-04-15 | 杭州趣链科技有限公司 | 资源账户的数据监管方法、装置、计算机设备及介质 |
CN117132279A (zh) * | 2023-10-26 | 2023-11-28 | 山东大学 | 一种区块链双链记账方法、***、设备及介质 |
WO2024066012A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链***中节点类型的转换方法、装置及区块链*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108282539A (zh) * | 2018-02-06 | 2018-07-13 | 北京奇虎科技有限公司 | 基于双层网络的去中心化存储*** |
CN108446969A (zh) * | 2018-03-29 | 2018-08-24 | 张文昌 | 一种基于区块链的统一的公共交通记账与交易*** |
CN109102287A (zh) * | 2018-08-13 | 2018-12-28 | 中国联合网络通信集团有限公司 | 区块链记账方法、装置、设备及存储介质 |
CN109194708A (zh) * | 2018-07-24 | 2019-01-11 | 哈尔滨工程大学 | 一种基于区块链技术的分布式存储***及其身份认证方法 |
US20190207767A1 (en) * | 2016-05-03 | 2019-07-04 | Kyu Tae AHN | Block chain supporting multiple one-way functions used for verification of blocks |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN110738472A (zh) * | 2018-07-20 | 2020-01-31 | 北京航空航天大学 | 区块链的存储方法和区块链的节点 |
CN111191292A (zh) * | 2019-12-16 | 2020-05-22 | 平安壹钱包电子商务有限公司 | 记账方法、装置、***及计算机可读存储介质 |
CN111242776A (zh) * | 2018-11-29 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 基于区块链的记账方法、装置、存储介质及电子设备 |
-
2020
- 2020-06-29 CN CN202010602292.1A patent/CN111858751A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190207767A1 (en) * | 2016-05-03 | 2019-07-04 | Kyu Tae AHN | Block chain supporting multiple one-way functions used for verification of blocks |
CN108282539A (zh) * | 2018-02-06 | 2018-07-13 | 北京奇虎科技有限公司 | 基于双层网络的去中心化存储*** |
CN108446969A (zh) * | 2018-03-29 | 2018-08-24 | 张文昌 | 一种基于区块链的统一的公共交通记账与交易*** |
CN110738472A (zh) * | 2018-07-20 | 2020-01-31 | 北京航空航天大学 | 区块链的存储方法和区块链的节点 |
CN109194708A (zh) * | 2018-07-24 | 2019-01-11 | 哈尔滨工程大学 | 一种基于区块链技术的分布式存储***及其身份认证方法 |
CN109102287A (zh) * | 2018-08-13 | 2018-12-28 | 中国联合网络通信集团有限公司 | 区块链记账方法、装置、设备及存储介质 |
CN111242776A (zh) * | 2018-11-29 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 基于区块链的记账方法、装置、存储介质及电子设备 |
CN110322352A (zh) * | 2019-07-09 | 2019-10-11 | 深圳市炳德区块链技术有限公司 | 一种基于区块链的账本建立及查询方法、电子设备 |
CN111191292A (zh) * | 2019-12-16 | 2020-05-22 | 平安壹钱包电子商务有限公司 | 记账方法、装置、***及计算机可读存储介质 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113111392A (zh) * | 2021-04-12 | 2021-07-13 | 浙江永旗区块链科技有限公司 | 一种区块链数据同步***及其控制方法 |
CN113111392B (zh) * | 2021-04-12 | 2022-08-30 | 浙江永旗区块链科技有限公司 | 一种区块链数据同步***及其控制方法 |
CN113570194A (zh) * | 2021-06-28 | 2021-10-29 | 北京电链科技有限公司 | 一种基于区块链的电力施工业务数据处理方法及*** |
CN113489743A (zh) * | 2021-07-26 | 2021-10-08 | 广东辰宜信息科技有限公司 | 应用于区块链***的共识实现方法及装置 |
CN113489743B (zh) * | 2021-07-26 | 2022-12-23 | 广东辰宜信息科技有限公司 | 应用于区块链***的共识实现方法及装置 |
CN114362960A (zh) * | 2021-12-31 | 2022-04-15 | 杭州趣链科技有限公司 | 资源账户的数据监管方法、装置、计算机设备及介质 |
WO2024066012A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链***中节点类型的转换方法、装置及区块链*** |
CN117132279A (zh) * | 2023-10-26 | 2023-11-28 | 山东大学 | 一种区块链双链记账方法、***、设备及介质 |
CN117132279B (zh) * | 2023-10-26 | 2024-01-23 | 山东大学 | 一种区块链双链记账方法、***、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858751A (zh) | 基于区块链的数据存储方法及装置 | |
CN111291060B (zh) | 一种管理区块链节点的方法、装置及计算机可读介质 | |
CN108512652B (zh) | 基于时间证明的去中心化共识方法、***及区块链*** | |
CN108932348B (zh) | 区块链的合并处理方法、装置、区块链节点及存储介质 | |
CN113098907B (zh) | 一种区块链的群组划分方法与装置 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
CN111427957B (zh) | 区块链投票信息校验方法、装置、设备以及存储介质 | |
CN108734028B (zh) | 基于区块链的数据管理方法、区块链节点及存储介质 | |
CN110633323A (zh) | 业务数据存储方法、装置、存储介质和计算机设备 | |
CN111080295A (zh) | 一种基于区块链的电子合同处理方法以及设备 | |
TW201826772A (zh) | 基於區塊鏈技術的強健的atm網路系統及其資訊處理方法 | |
CN111382456A (zh) | 提案消息处理方法、装置、设备以及存储介质 | |
CN110569251A (zh) | 一种数据处理方法、相关设备及计算机可读存储介质 | |
CN111698315B (zh) | 针对区块的数据处理方法、数据处理装置及计算机设备 | |
CN110830608B (zh) | 一种全局唯一标识符生成方法、装置、设备及存储介质 | |
CN111385103B (zh) | 权限处理方法、***、装置及电子设备 | |
CN111314067A (zh) | 区块存储方法、装置、计算机设备及存储介质 | |
CN110730081B (zh) | 基于区块链网络的证书吊销方法、相关设备及介质 | |
CN112231755B (zh) | 一种基于区块链的数据授权方法、装置及*** | |
CN110908812A (zh) | 业务数据处理方法、装置、可读存储介质和计算机设备 | |
CN110601896A (zh) | 一种基于区块链节点的数据处理方法以及设备 | |
CN110599175A (zh) | 一种区块处理方法及相关设备 | |
CN108833133A (zh) | 基于云计算网络的网络配置管理方法、装置和存储介质 | |
CN112417052B (zh) | 区块链网络中的数据同步方法、装置、设备及存储介质 | |
CN112883425A (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 |