CN112905536A - 基于区块链的数据校验同步方法和装置 - Google Patents

基于区块链的数据校验同步方法和装置 Download PDF

Info

Publication number
CN112905536A
CN112905536A CN202110167513.1A CN202110167513A CN112905536A CN 112905536 A CN112905536 A CN 112905536A CN 202110167513 A CN202110167513 A CN 202110167513A CN 112905536 A CN112905536 A CN 112905536A
Authority
CN
China
Prior art keywords
data
module
user
target
block chain
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
Application number
CN202110167513.1A
Other languages
English (en)
Other versions
CN112905536B (zh
Inventor
路成业
王凌
孙耀普
董豆豆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Iallchain Co Ltd
Original Assignee
Iallchain Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Iallchain Co Ltd filed Critical Iallchain Co Ltd
Priority to CN202110167513.1A priority Critical patent/CN112905536B/zh
Publication of CN112905536A publication Critical patent/CN112905536A/zh
Application granted granted Critical
Publication of CN112905536B publication Critical patent/CN112905536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了基于区块链的数据校验同步方法和装置,该方法应用于区块链服务平台,包括:向用户端发送针对待进行数据校验同步的第一数据的数据校验请求,其中,数据校验请求中包括有第一数据的特征值,特征值用于标识第一数据,接收用户端根据特征值返回的第二数据,其中,第二数据为存储在用户端本地且以特征值为标识的数据,根据特征值,从区块链上获取第一数据的文件哈希,其中,文件哈希通过预先设定的校验算法对第一数据进行处理而获得,通过校验算法对第二数据进行处理,获得本地哈希,判断文件哈希和本地哈希是否相同,如果文件哈希和本地哈希不同,则对第一数据和第二数据进行同步处理。本方案能够提高数据校验同步的效率。

Description

基于区块链的数据校验同步方法和装置
技术领域
本发明涉及计算机技术领域,特别涉及基于区块链的数据校验同步方法和装置。
背景技术
由于政府部门对共享数据的保密要求,使得相关人员在访问和共享数据时存在严格的限制,也导致数据的校验和同步成为一个难点,通常需要花费大量的资源和时间用于权限审查和数据校验与同步。区块链(Blockchain)是一种去中心化的分布式数据库,具有去中心化、安全可信、集体维护和不可篡改等特点,令不受信任的交易各方可以共享数据,并无需中介即可达成共识,从而构建可信的交易环境,打造可信社会。
目前数据校验同步方式中普遍存在的数据中心化存储、安全性差、防篡改性弱等问题,而且无法实现数据的定向校验同步,用户无法针对部分特定数据进行校验与同步,从而导致在数据校验与同步过程中工作效率较低。
发明内容
本发明提供了基于区块链的数据校验同步方法和装置,能够提高数据校验同步的效率。
第一方面,本发明实施例提供了基于区块链的数据校验同步方法,包括:
向用户端发送针对待进行数据校验同步的第一数据的数据校验请求,其中,所述数据校验请求中包括有所述第一数据的特征值,其中,所述特征值用于标识所述第一数据;
接收所述用户端根据所述特征值返回的第二数据,其中,所述第二数据为存储在所述用户端本地且以所述特征值为标识的数据;
根据所述特征值,从区块链上获取所述第一数据的文件哈希,其中,所述文件哈希通过预先设定的校验算法对所述第一数据进行处理而获得;
通过所述校验算法对所述第二数据进行处理,获得本地哈希;
判断所述文件哈希和所述本地哈希是否相同;
如果所述文件哈希和所述本地哈希不同,则对所述第一数据和所述第二数据进行同步处理。
可选地,对所述第一数据和所述第二数据进行同步处理,包括:
如果所述用户端不是所述第一数据的上传方,则根据所述特征值通过区块链获取所述第一数据,并将所述第一数据发送给所述用户端,以利用所述第一数据替换所述用户端本地存储的所述第二数据;
如果所述用户端为所述第一数据的上传方,则执行如下处理:
获取用户通过所述用户端发送的同步指令;
如果所述同步指令指示所述用户端本地存储的所述第二数据被篡改,则根据所述特征值通过区块链获取所述第一数据,并将所述第一数据发送给所述用户端,以利用所述第一数据替换所述用户端本地存储的所述第二数据;
如果所述同步指令指示所述用户端本地存储的所述第二数据为合法修改,则从所述用户端获取所述第二数据,并在所述第一数据的存储位置利用所述第二数据对所述第一数据进行替换。
可选地,在所述同步指令指示所述用户端本地存储的所述第二数据被篡改之后,进一步包括:
将所述本地哈希存储到所述区块链上替换所述文件哈希,以备针对所述第二数据进行数据校验同步。
可选地,在所述向用户端发送针对待进行数据校验同步的第一数据的数据校验请求之前,进一步包括:
在需要对所述第一数据进行共享时,获取所述第一数据并建立所述第一数据对应的ID;
从所述第一数据中提取出所述特征值;
根据所述ID、所述特征值和所述第一数据生成上链数据,并将所述上链数据上传至区块链中,以使所述区块链根据执行的数据存储操作生成数据存储事件,并广播所述数据存储事件,其中,所述数据存储事件用于描述所述区块链的至少一个区块执行的数据存储操作。
可选地,
所述从所述第一数据中提取出所述特征值,包括:
从用于表征所述第一数据的字符串中提取至少一条value,其中,每一条所述value用于表征所述第一数据的一个属性对应的数据内容;
从所述至少一条value中提取至少一个key,将提取的所述key作为特征值,其中,不同数据对应的所述key不相同;
和/或,
所述建立所述第一数据对应的ID,包括:
从至少一个预设业务类型中,确定所述第一数据对应的目标业务类型;
确定所述目标业务类型对应的目标号段;
确定最新数据对应的ID,其中,所述最新数据为所述目标业务类型对应的数据中在所述区块链上存储的时间最短的数据;
根据所述最新数据对应的ID,生成所述第一数据对应的ID。
可选地,所述对所述第一数据和所述第二数据进行同步处理,包括:
S1:监听区块链广播的至少一个数据存储事件,其中,所述数据存储事件用于描述所述区块链的至少一个区块执行的数据存储操作;
S2:记录每一个所述数据存储事件中用于表征所述第一数据的所述特征值、所述第一数据的ID、交易哈希和区块哈希,其中,所述交易哈希用于描述上链数据存储至所述区块链的过程,所述区块哈希用于表征最新的所述区块中的数据和最新的所述区块所连接的区块中的数据;
S3:根据记录的所述特征值、所述ID和用户设置的同步订阅条件,确定所述至少一个数据存储事件中是否存在至少一个目标事件;
S4:当存在所述至少一个目标事件时,确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限;
S5:当所述用户当前具有访问所述已订同步阅数据权限时,根据记录的所述目标事件中的所述特征值通过所述区块链获取所述已同步订阅数据,其中,所述已同步订阅数据包括待同步目标数据、所述交易哈希对应的数据和所述区块哈希对应的数据中的至少一个,所述同步目标数据为对应的所述目标事件中的所述特征值所描述的数据;
S6:将所述已同步订阅数据发送给所述用户端,以利用所述已同步订阅数据替换所述用户端本地存储的所述第二数据。
可选地,在所述确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限之前,进一步包括:
确定用户是否具有向所述区块链中存储数据的存储行为;
当所述用户具有所述存储行为时,确定所述存储行为的第一次数、每次所述存储行为对应的数据的第一ID、第一存储时间和第一数据大小;
根据所述第一次数、第一ID所指示的业务类型、所述第一存储时间和所述第一数据大小分别对应的权重值,计算所述用户的初始数据共享积分;
确定所述与所述初始数据共享积分相对应的初始有效期;
生成与所述用户设置的同步订阅条件相对应的认证令牌Auth Token和主题Topic;
将所述初始有效期的值赋值给所述Auth Token的目标有效期;
所述确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限,包括:
D1:确定所述用户的所述Auth Token的目标有效期是否失效,如果是,执行D3,否则,执行D2;
D2:执行根据记录的所述目标事件中的所述特征值通过所述区块链获取所述已同步订阅数据;
D3:向所述用户端发送用于表征所述Auth Token已失效的提示信息;
所述将所述已同步订阅数据发送给所述用户端,包括:
通过所述Topic将所述已同步订阅数据发送给所述用户端。
第二方面,本发明实施例还提供了基于区块链的数据校验同步装置,包括:发送模块、接收模块、获取模块、处理模块、判断模块和同步模块;
所述发送模块,用于向用户端发送针对待进行数据校验同步的第一数据的数据校验请求,其中,所述数据校验请求包括有所述第一数据的特征值,其中,所述特征值用于标识所述第一数据;
所述接收模块,用于接收所述用户端根据所述发送模块发送的所述数据校验请求中的所述特征值返回的第二数据,其中,所述第二数据为存储在所述用户端本地且以所述特征值为标识的数据;
所述获取模块,用于根据所述发送模块发送的所述数据校验请求中的所述特征值,从区块链上获取所述第一数据的文件哈希,其中,所述文件哈希通过预先设定的校验算法对所述第一数据进行处理而获得;
所述处理模块,用于通过所述校验算法对所述接收模块所接收的所述第二数据进行处理,获得本地哈希;
所述判断模块,用于判断由所述获取模块获取到的所述文件哈希和由所述处理模块获得的所述本地哈希是否相同;
所述同步模块,用于在所述判断模块的判断结果为否时,对所述第一数据和所述第二数据进行同步处理。
可选地,该装置进一步包括:数据获取模块、数据处理模块和数据存储模块;
所述数据获取模块,用于在需要对所述第一数据进行共享时,获取所述第一数据;
所述数据处理模块,用于建立所述数据获取模块获取的所述第一数据对应的ID,从所述第一数据中提取出所述特征值,根据所述ID、所述特征值和所述第一数据生成上链数据;
所述数据存储模块,用于将所述数据处理模块生成的所述上链数据上传至区块链中,以使用户从服务平台获取到的至少一条目标上链通知信息中确定与目标第一数据相匹配的匹配信息,使得所述服务平台根据所述匹配信息通过所述区块链获取所述目标第一数据,其中,所述匹配信息包括一个区块存储的目标上链数据中的目标ID和目标特征值。
可选地,该装置进一步包括:事件监听模块、信息记录模块、事件处理模块、权限管理模块和数据管理模块;
所述事件监听模块,用于监听区块链广播的至少一个数据存储事件,其中,所述数据存储事件用于描述所述区块链的至少一个区块执行的数据存储操作;
所述信息记录模块,用于记录所述事件监听模块监听到的每一个所述数据存储事件中用于表征第一数据的所述特征值、所述第一数据的ID、交易哈希和区块哈希,其中,所述交易哈希用于描述上链数据存储至所述区块链的过程,所述区块哈希用于表征最新的所述区块中的数据和最新的所述区块所连接的区块中的数据;
所述事件处理模块,用于根据所述信息记录模块记录的所述特征值、所述ID和用户设置的同步订阅条件,确定所述至少一个数据存储事件中是否存在至少一个目标事件;
所述权限管理模块,用于当所述事件处理模块确定存在所述至少一个目标事件时,确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限;
所述数据管理模块,用于当所述权限管理模块确定所述用户当前具有访问所述已同步订阅数据权限时,根据记录的所述目标事件中的所述特征值通过所述区块链获取所述已同步订阅数据,其中,所述已同步订阅数据包括待同步目标第一数据、所述交易哈希对应的数据和所述区块哈希对应的数据中的至少一个,所述待同步目标第一数据为对应的所述目标事件中的所述特征值所描述的数据,将所述已同步订阅数据发送给所述用户端,以利用所述已同步订阅数据替换所述用户端本地存储的所述第二数据。
本发明实施例提供的基于区块链的数据校验同步方法和装置,当向用户端发送针对待进行数据校验同步的第一数据的数据校验请求时,用户端根据数据校验请求中包括的特征值返回与第一数据相对应的本地用户端存储的第二数据,从区块链上获取第一数据的文件哈希并对第二数据进行处理获得本地哈希,如此通过判断文件哈希与本地哈希是否相同来对第一数据与第二数据进行校验,当判断结果不相同时,即校验不一致时则进行同步处理。综上可见,通过对比文件哈希与本地哈希即可向用户提供校验结果,进而使用户根据校验结果对该数据进行同步处理,从而实现链上和链下数据的校验与同步,如此采用数据体量较小的哈希值,降低了数据校验过程中的数据冗余,即不用针对所有数据进行一一对比,而且哈希值与数据内容唯一对应,对比更方便且可信度高,因此,能够提高数据校验同步的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种基于区块链的数据校验同步方法的流程图;
图2是本发明一个实施例提供的另一种基于区块链的数据校验同步方法的流程图;
图3是本发明一个实施例提供的基于区块链的数据校验同步装置所在设备的示意图;
图4是本发明一个实施例提供的基于区块链的数据校验同步装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明一个实施例提供了一种基于区块链的数据校验同步方法,该方法可以包括如下步骤:
步骤101:向用户端发送针对待进行数据校验同步的第一数据的数据校验请求,其中,数据校验请求中包括有第一数据的特征值,其中,特征值用于标识第一数据;
步骤102:接收用户端根据特征值返回的第二数据,其中,第二数据为存储在用户端本地且以特征值为标识的数据;
步骤103:根据特征值,从区块链上获取第一数据的文件哈希,其中,文件哈希通过预先设定的校验算法对第一数据进行处理而获得;
步骤104:通过校验算法对第二数据进行处理,获得本地哈希;
步骤105:判断文件哈希和本地哈希是否相同;
步骤106:如果文件哈希和本地哈希不同,则对第一数据和第二数据进行同步处理。
本发明实施例提供的基于区块链的数据校验同步方法,通过向待进行数据校验同步的第一数据发送包括有特征值的数据校验请求,接收来自用户端返回的存储在用户端本地的具有特征值的第二数据,然后根据特征值,通过预先设定的校验算法从区块链上获取上链数据的文件哈希,再通过该校验算法对第二数据进行处理以获得本地哈希,判断文件哈希和本地哈希是否相同,如果文件哈希和本地哈希不同,则对上链数据和第二数据进行同步处理。综上可见,通过对比文件哈希与本地哈希即可向用户提供校验结果,进而使用户根据校验结果对该数据进行同步处理,从而实现链上和链下数据的校验与同步,如此采用数据体量较小的哈希值,降低了数据校验过程中的数据冗余,即不用针对所有数据进行一一对比,而且哈希值与数据内容唯一对应,对比更方便且可信度高,因此,能够提高数据校验同步的效率。
在本发明实施例中,数据校验请求可以由用户根据实际需求进行设置,其中用户可以对校验时间、校验周期和校验方式进行设置,其中,校验方式包括有对校验周期内全部数据进行验证、对校验周期内全部数据进行随机抽样验证、对所有数据进行随机抽样验证等,如此不同的设置分别兼顾了校验力度、校验效率和校验系统压力,因此能够更加有选择性的对待进行数据校验同步的数据进行定期处理,为用户提供了更好的使用体验,同时提高了校验同步效率。
在本发明实施例中,在图1所示基于区块链的数据校验同步方法的基础上,步骤106对第一数据和第二数据进行同步处理,包括:
如果用户端不是第一数据的上传方,则根据特征值通过区块链获取第一数据,并将第一数据发送给用户端,以利用第一数据替换用户端本地存储的第二数据;
如果用户端为第一数据的上传方,则执行如下处理:
获取用户通过用户端发送的同步指令;
如果同步指令指示用户端本地存储的第二数据被篡改,则根据特征值通过区块链获取第一数据,并将第一数据发送给用户端,以利用第一数据替换用户端本地存储的第二数据;
如果同步指令指示用户端本地存储的第二数据为合法修改,则从用户端获取第二数据,并在第一数据的存储位置利用第二数据对第一数据进行替换。
在本发明实施例中,区块链服务平台向用户发起针对某一特征值的数据校验请求,通过对比哈希值是否相同得到校验结果后,将该校验结果发送给用户端,以使用户端根据该校验结果进行相应处理,在校验结果为不一致时,如果该用户为接入用户,即非第一数据的上传方,该用户判断其存储的数据已失效或者其本地数据被篡改,则从区块链获取第一数据,并替换本地存储的第二数据,以实现数据的同步;如果该用户为数据源用户,即为第一数据的上传方,该用户根据业务需要判断数据校验不一致的原因,如果本地存储的第二数据被篡改,则发送对应的同步指令,根据特征值从区块链上获取对应的第一数据,以利用第一数据替换该用户本地存储的第二数据来恢复本地数据,如果本地存储的第二数据修改后未及时更新上传至区块链而导致校验结果不一致,则需要重新从用户端获取第二数据,并在第一数据的存储位置利用第二数据对第一数据进行替换,即对第二数据进行重新上链。综上可见,当数据校验结果不一致时,根据用户端是否为数据源上传方,可以分别进行同步处理,并且能够根据具体情况发送对应的同步指令,因此,提高了数据同步的高效性。
在本发明实施例中,在图1所示基于区块链的数据校验同步方法的基础上,在同步指令指示用户端本地存储的第二数据被篡改之后,进一步包括:
将本地哈希存储到区块链上替换文件哈希,以备针对第二数据进行数据校验同步。
在本发明实施例中,在数据上传方本地存储的第二数据被合法篡改后,需要将该第二数据重新上链以实现链上与链下数据的同步,同时将该第二数据的本地哈希存储到区块链上替换原来的文件哈希,以保证该第二数据与该本地哈希一一对应,以备针对该第二数据进行数据校验同步,保证下次进行数据校验同步的准确性。
在本发明实施例中,在图1所示基于区块链的数据校验同步方法的基础上,在步骤101向用户端发送针对待进行数据校验同步的第一数据的数据校验请求之前,进一步包括:
在需要对第一数据进行共享时,获取第一数据并建立第一数据对应的ID;
从第一数据中提取出特征值;
根据ID、特征值和第一数据生成上链数据,并将上链数据上传至区块链中,以使所述区块链根据执行的数据存储操作生成数据存储事件,并广播数据存储事件,其中,数据存储事件用于描述所述区块链的至少一个区块执行的数据存储操作。
在本发明实施例中,当外部想通过区块链共享数据时,可先基于获取到的共享数据建立用于识别数据身份的ID,然后再提取用于表征数据特征的特征值,基于创建的ID、提取的特征值以及需要共享的第一数据生成能够上传至区块链的上链数据,其中上链数据还包括有第一数据的文件哈希。这样上链数据在上传到区块链后,同时生成目标上链通知信息进行广播,以便用户基于目标上链通知信息中的特征值,判断目标上链通知信息对应的数据是否为所要获取的同步数据,从而帮助用户快速查找所需进行同步的数据。
在本发明实施例中,在图1所示基于区块链的数据校验同步方法的基础上,在步骤101向用户端发送针对待进行数据校验同步的第一数据的数据校验请求之前;
从第一数据中提取出特征值,包括:
从用于表征第一数据的字符串中提取至少一条value,其中,每一条value用于表征第一数据的一个属性对应的数据内容;
从至少一条value中提取至少一个key,将提取的key作为特征值,其中,不同数据对应的key不相同;
和/或,
建立第一数据对应的ID,包括:
从至少一个预设业务类型中,确定第一数据对应的目标业务类型;
确定目标业务类型对应的目标号段;
确定最新数据对应的ID,其中,最新数据为目标业务类型对应的数据中在区块链上存储的时间最短的数据;
根据最新数据对应的ID,生成第一数据对应的ID。
在本发明实施例中,若获取到的第一数据是以字符串的形式,则可从字符串中提取用于表征第一数据的属性的数据内容,比如,若第一数据是结构数据,则value包括共享数据的大小为1GB、共有6个段落、每个段落的数据大小,共享数据的摘要、共享数据的名称,来源等属性;若第一数据是非结构数据,例如,视频、音频等,则value可包括第一数据的大小,关键的几帧数据,来源等属性。然后从提取的value中再进行提取得到能表征第一数据特征的key,便于用户基于key识别第一数据的内容。
可以理解的是,key是数据指定的关键词,可唯一区分每条数据。为了防止key进行上链操作时会被返回数据已经存在的信息,因此,不同数据对应的key不相同。
需要说明的是,在提取key之前,可基于不同的数据类型建立不同的模型,每一种模型对应至少一种业务类型的数据,比如,司法类、知识产权类、影视类以及教育辅导类数据。每种模型中包括对应的业务类型的数据结构、关键词、字段名等信息,以便基于模型从第一数据中提取key。
在本发明实施例中,需要上链的第一数据所对应的业务类型不同,不同的业务类型对应的号段不同。比如,司法类的数据的号段为202001,教育类的数据的号段为202002,知识产权类的数据的号段为202003。在区块链中可能存在所有业务类型的数据,也可能目前只存在某些业务类型的数据,为了便于确定第一数据所对应的ID,可先确定第一数据的目标业务类型,确定第一数据所属的业务,然后从区块链中确定是否存在属于该目标业务类型且存储时间最短的最新数据,如果存在,则基于最新数据的ID生成第一数据的ID。
例如,第一数据的业务类型为“教育类”,号段为202002,区块链中该“教育类”的最新数据的ID为“20200205”,如果编码规则是同一业务类型的ID位数相同,且要上链的第一数据的ID与区块链上同一业务类型的数据的ID的差值为1,那么第一数据的ID为“20200206”。
可以理解的是,ID可以包括数字、字母、字符中的至少一个。
在本发明一实施例中,在图1所示基于区块链的数据校验同步方法的基础上,在步骤106对第一数据和第二数据进行同步处理,包括:
S1:监听区块链广播的至少一个数据存储事件,其中,数据存储事件用于描述区块链的至少一个区块执行的数据存储操作;
S2:记录每一个数据存储事件中用于表征第一数据的特征值、第一数据的ID、交易哈希和区块哈希,其中,交易哈希用于描述上链数据存储至区块链的过程,区块哈希用于表征最新的区块中的数据和最新的区块所连接的区块中的数据;
S3:根据记录的特征值、ID和用户设置的同步订阅条件,确定至少一个数据存储事件中是否存在至少一个目标事件;
S4:当存在至少一个目标事件时,确定用户当前是否具有访问每一个目标事件对应的已同步订阅数据的权限;
S5:当用户当前具有访问已同步订阅数据权限时,根据记录的目标事件中的特征值通过区块链获取已同步订阅数据,其中,已同步订阅数据包括待同步目标数据、交易哈希对应的数据和区块哈希对应的数据中的至少一个,同步目标数据为对应的目标事件中的特征值所描述的数据;
S6:将已同步订阅数据发送给用户端,以利用已同步订阅数据替换用户端本地存储的第二数据。
在本发明实施例中,当区块链上有数据存储时,区块链会广播关于存储的数据的数据存储事件,通过记录数据存储事件中的特征值、ID可以与用户设置的同步订阅条件进行比对,用以判断数据存储事件对应的数据是否为用户所需的同步数据,若是则还需要判断用户此时是否具有访问该同步数据的权限,避免区块链上的数据被泄露,若用户具有访问数据权限,则可将数据存储事件中的交易哈希、区块哈希或已上链的同步数据发送给用户。综上可见,根据用户设置的同步订阅条件即可向用户提供其所需的同步数据,而无需用户自己从区块链上查看,因此,能够降低用户获取该同步数据的难度,同时能够定向选择进行同步的数据内容,提高数据同步的效率。
在本发明实施例中,在确定用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限之前,进一步包括:
确定用户是否具有向区块链中存储数据的存储行为;
当用户具有存储行为时,确定存储行为的第一次数、每次存储行为对应的数据的第一ID、第一存储时间和第一数据大小;
根据第一次数、第一ID所指示的业务类型、第一存储时间和第一数据大小分别对应的权重值,计算用户的初始数据共享积分;
确定与初始数据共享积分相对应的初始有效期;
生成与用户设置的同步订阅条件相对应的认证令牌Auth Token和主题Topic;
将初始有效期的值赋值给Auth Token的目标有效期;
确定用户当前是否具有访问每一个目标事件对应的已同步订阅数据的权限,包括:
D1:确定用户的Auth Token的目标有效期是否失效,如果是,执行D3,否则,执行D2;
D2:执行根据记录的目标事件中的特征值通过区块链获取已同步订阅数据;
D3:向用户端发送用于表征Auth Token已失效的提示信息;
将已同步订阅数据发送给用户端,包括:
通过topic将已同步订阅数据发送给用户端。
在本发明实施例中,用户在从区块链上获取同步数据之前,需要先基于该用户向区块链中上传数据的次数、上传的数据的ID所对应的业务类型、存储时间以及存储的数据大小确定该用户的初始数据共享积分。然后基于该初始数据共享积分为用户设置能够访问区块链中对应的同步数据的初始有效期,并赋值给Auth Token,以使在Auth Token有效时用户可以通过Topic获取所需的同步数据。
如图2所示,为了更加清楚地说明本发明的技术方案及优点,下面对本发明实施例提供的基于区块链的数据校验同步方法进行详细说明,具体包括:
步骤201:在需要对第一数据进行共享时,获取第一数据;
步骤202:从至少一个预设业务类型中,确定第一数据对应的目标业务类型,并确定目标业务类型对应的目标号段,执行步骤203。
步骤203:确定最新数据对应的ID,其中,最新数据为目标业务类型对应的数据中在区块链上存储的时间最短的数据。
步骤204:根据最新数据对应的ID,生成共享数据对应的ID。
具体地,如果第一数据是第一次被上传,则需要确定第一数据的业务类型,进而确定目标业务类型的目标号段。
步骤205:从用于表征第一数据的字符串中提取至少一条value,从至少一条value中提取至少一个key,将提取的key作为特征值,根据ID、特征值和第一数据生成上链数据。
具体地,每一条value用于表征第一数据的一个属性对应的数据内容,其中,不同数据对应的所述key不相同,特征值用于标识第一数据。上链数据还包括有第一数据所对应的文件哈希。
步骤206:将上链数据上传至区块链中,以使区块链根据执行的数据存储操作生成数据存储事件,并广播数据存储事件,其中,数据存储事件用于描述区块链的至少一个区块执行的数据存储操作。
具体地,为了便于用户明确上链的数据的内容,需要从第一数据中提取标识其属性的特征值,然后再从中提取表征第一数据特征的key,基于ID、特征值和第一数据生成上链数据,将上链数据上链,完成数据共享。
步骤207:监听区块链广播的至少一个数据存储事件。
具体地,区块链在存储数据后,会基于存储的数据生成数据存储事件,然后进行广播,以便其他的节点能够基于广播内容确定有数据新增或更新。
步骤208:记录每一个数据存储事件中用于表征第一数据的特征值、第一数据的ID、交易哈希和区块哈希。
具体地,交易哈希用于描述上链数据存储至区块链的过程,区块哈希用于表征最新的区块中的数据和最新的区块所连接的区块中的数据。
步骤209:向用户端发送针对待进行数据校验同步的第一数据的数据校验请求。
具体地,数据校验请求可以由用户根据实际需求进行设置,其中用户可以对校验时间、校验周期和校验方式进行设置。
步骤210:接收用户端根据特征值返回的第二数据,其中,第二数据为存储在用户端本地且以特征值为标识的数据。
步骤211:根据特征值,从区块链上获取第一数据的文件哈希,其中,文件哈希通过预先设定的校验算法对第一数据进行处理而获得。
步骤212:通过校验算法对第二数据进行处理,获得本地哈希。
步骤213:判断文件哈希和本地哈希是否相同,如果是,则执行步骤214。否则执行步骤215。
步骤214:向用户端发送校验一致提示信息,以提示用户校验结果一致。
步骤215:对第一数据和第二数据进行同步处理,判断用户端是否为第一数据的上传方,如果是,则执行步骤216,否则执行步骤219。
步骤216:获取用户通过用户端发送的同步指令,判断同步指令是否指示用户端本地存储的第二数据被篡改,如果是,则执行步骤217,否则执行步骤218。
步骤217:根据特征值通过区块链获取第一数据,并将第一数据发送给用户端,以利用第一数据替换用户端本地存储的第二数据。
步骤218:从用户端获取第二数据,在第一数据的存储位置利用第二数据对第一数据进行替换。
具体地,第二数据通过执行步骤201至步骤206的操作来实现对该第二数据的上链过程,利用第二数据替换第一数据。
步骤219:根据记录的特征值、ID和用户设置的同步订阅条件,确定至少一个数据存储事件中存在的至少一个目标事件,其中,订阅条件包括有待查编码、位置和特征值。
步骤220:确定用户的Auth Token的目标有效期是否失效,如果是,执行步骤223,否则,执行步骤221。
具体地,在筛选出与同步订阅条件相匹配的数据存储事件后,还需要确定用户此时是否具有访问区块链上的数据的权限。
步骤221:根据记录的目标事件中的特征值通过区块链获取已同步订阅数据,其中,已同步订阅数据包括目标第一数据、交易哈希对应的数据和区块哈希对应的数据中的至少一个,目标第一数据为对应的目标事件中的特征值所描述的数据。
步骤222:通过Topic将已同步订阅数据发送给用户端,以利用已同步订阅数据替换用户端本地存储的第二数据。
步骤223:向用户发送用于表征Auth Token已失效的提示信息。
具体地,若用户此时不具有访问区块链上数据的权限,则向用户发送提示信息,以便用户通过向区块链上传数据等方式获取积分,进而获取访问区块链的权限。
需要说明的是,用户访问区块链的权限可以通过记录用户向区块链上存储数据的第一次数、所存储的数据对应的第一ID所指示的业务类型、存储数据的第一存储时间以及所存储的数据的第一数据大小,计算该用户向区块链中存储数据的存储行为的初始数据共享积分,然后基于该积分确定用户访问区块链的初始有效期,基于该初始有效期生成AuthToken,以及用于获取数据的Topic,以便用户通过Auth Token和Topic获取所需的数据。
例如,根据用户此次的存储行为确定当前数据共享积分为36分,30-40分所对应的当前有效期为5天,用户的Auth Token原本的目标有效期截止至2020.4.5,将此次存储行为获得的当前有效期5天赋值给Auth Token,则Auth Token更新后的有效期截止至2020.4.10。
如图3、图4所示,本发明实施例提供了基于区块链的数据校验同步装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的基于区块链的数据校验同步装置所在设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在设备的CPU将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。本实施例提供的基于区块链的数据校验同步装置,包括:发送模块401、接收模块402、获取模块403、处理模块404、判断模块405和同步模块406;
发送模块401,用于向用户端发送针对待进行数据校验同步的第一数据的数据校验请求,其中,数据校验请求包括有第一数据的特征值,其中,特征值用于标识第一数据;
接收模块402,用于接收用户端根据发送模块401发送的数据校验请求中的特征值返回的第二数据,其中,第二数据为存储在用户端本地且以特征值为标识的数据;
获取模块403,用于根据发送模块401发送的数据校验请求中的特征值,从区块链上获取第一数据的文件哈希,其中,文件哈希通过预先设定的校验算法对第一数据进行处理而获得;
处理模块404,用于通过校验算法对接收模块402所接收的第二数据进行处理,获得本地哈希;
判断模块405,用于判断由获取模块403获取到的文件哈希和由处理模块404获得的本地哈希是否相同;
同步模块406,用于在判断模块405的判断结果为否时,对第一数据和第二数据进行同步处理。
在本发明一实施例中,所述同步模块406还用于执行下述操作:
如果用户端不是第一数据的上传方,则根据特征值通过区块链获取第一数据,并将第一数据发送给用户端,以利用第一数据替换用户端本地存储的第二数据;
如果用户端为第一数据的上传方,则执行如下处理:
获取用户通过用户端发送的同步指令;
如果同步指令指示用户端本地存储的第二数据被篡改,则根据特征值通过区块链获取第一数据,并将第一数据发送给用户端,以利用第一数据替换用户端本地存储的第二数据;
如果同步指令指示用户端本地存储的第二数据为合法修改,则从用户端获取第二数据,并在第一数据的存储位置利用第二数据对第一数据进行替换。
在本发明一实施例中,所述同步模块406还用于执行下述操作:
将本地哈希存储到区块链上替换文件哈希,以备针对第二数据进行数据校验同步。
在本发明一实施例中,所述基于区块链的数据校验同步装置进一步包括:数据获取模块、数据处理模块和数据存储模块;
数据获取模块,用于在需要对第一数据进行共享时,获取第一数据;
数据处理模块,用于建立数据获取模块获取的第一数据对应的ID,从第一数据中提取出特征值,根据ID、特征值和第一数据生成上链数据;
数据存储模块,用于将数据处理模块生成的上链数据上传至区块链中,以使用户从服务平台获取到的至少一条目标上链通知信息中确定与目标第一数据相匹配的匹配信息,使得服务平台根据匹配信息通过区块链获取目标第一数据,其中,匹配信息包括一个区块存储的目标上链数据中的目标ID和目标特征值。
在本发明一实施例中,所述数据处理模块还用于执行下述操作:
从第一数据中提取出特征值,包括:
从用于表征第一数据的字符串中提取至少一条value,其中,每一条value用于表征第一数据的一个属性对应的数据内容;
从至少一条value中提取至少一个key,将提取的key作为特征值,其中,不同数据对应的key不相同;
建立第一数据对应的ID,包括:
从至少一个预设业务类型中,确定第一数据对应的目标业务类型;
确定目标业务类型对应的目标号段;
确定最新数据对应的ID,其中,最新数据为目标业务类型对应的数据中在区块链上存储的时间最短的数据;
根据最新数据对应的ID,生成第一数据对应的ID。
在本发明一实施例中,所述基于区块链的数据校验同步装置进一步包括:事件监听模块、信息记录模块、事件处理模块、权限管理模块和数据管理模块;
事件监听模块,用于监听区块链广播的至少一个数据存储事件,其中,数据存储事件用于描述区块链的至少一个区块执行的数据存储操作;
信息记录模块,用于记录事件监听模块监听到的每一个数据存储事件中用于表征第一数据的特征值、第一数据的ID、交易哈希和区块哈希,其中,交易哈希用于描述上链数据存储至区块链的过程,区块哈希用于表征最新的区块中的数据和最新的区块所连接的区块中的数据;
事件处理模块,用于根据信息记录模块记录的特征值、ID和用户设置的同步订阅条件,确定至少一个数据存储事件中是否存在至少一个目标事件;
权限管理模块,用于当事件处理模块确定存在至少一个目标事件时,确定用户当前是否具有访问每一个目标事件对应的已同步订阅数据的权限;
数据管理模块,用于当权限管理模块确定用户当前具有访问已同步订阅数据权限时,根据记录的目标事件中的特征值通过区块链获取已同步订阅数据,其中,已同步订阅数据包括待同步目标第一数据、交易哈希对应的数据和区块哈希对应的数据中的至少一个,待同步目标第一数据为对应的目标事件中的特征值所描述的数据,将已同步订阅数据发送给用户端,以利用已同步订阅数据替换用户端本地存储的第二数据。
在本发明一实施例中,所示权限管理模块还用于执行下述操作:
确定用户是否具有向区块链中存储数据的存储行为;
当用户具有存储行为时,确定存储行为的第一次数、每次存储行为对应的数据的第一ID、第一存储时间和第一数据大小;
根据第一次数、第一ID所指示的业务类型、第一存储时间和第一数据大小分别对应的权重值,计算用户的初始数据共享积分;
确定与初始数据共享积分相对应的初始有效期;
生成与用户设置的同步订阅条件相对应的认证令牌Auth Token和主题Topic;
将初始有效期的值赋值给Auth Token的目标有效期;
确定用户当前是否具有访问每一个目标事件对应的已同步订阅数据的权限,包括:
D1:确定用户的Auth Token的目标有效期是否失效,如果是,执行D3,否则,执行D2;
D2:执行根据记录的目标事件中的特征值通过区块链获取已同步订阅数据;
D3:向用户端发送用于表征Auth Token已失效的提示信息;
将已同步订阅数据发送给用户端,包括:
通过topic将已同步订阅数据发送给用户端。
可以理解的是,本发明实施例示意的结构并不构成对基于区块链的数据校验同步装置的具体限定。在本发明的另一些实施例中,基于区块链的数据校验同步装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了智能电子设备,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行本发明任一实施例中的基于区块链的数据校验同步方法。
本发明还提供了一种计算机可读介质,存储用于使一机器执行如本文所述的基于区块链的数据校验同步方法的指令。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
综上所述,本发明各个所述所提供的基于区块链的数据校验同步方法和装置,至少具有如下有益效果:
1、在本发明实施例中,当向用户端发送针对待进行数据校验同步的第一数据的数据校验请求时,用户端根据数据校验请求中包括的特征值返回与第一数据相对应的本地用户端存储的第二数据,从区块链上获取第一数据的文件哈希并对第二数据进行处理获得本地哈希,如此通过判断文件哈希与本地哈希是否相同来对第一数据与第二数据进行校验,当判断结果不相同时,即校验不一致时则进行同步处理。综上可见,通过对比文件哈希与本地哈希即可向用户提供校验结果,进而使用户根据校验结果对该数据进行同步处理,从而实现链上和链下数据的校验与同步,如此采用数据体量较小的哈希值,降低了数据校验过程中的数据冗余,即不用针对所有数据进行一一对比,而且哈希值与数据内容唯一对应,对比更方便且可信度高,因此,能够提高数据校验同步的效率。
2、在本发明实施例中,数据校验请求可以由用户根据实际需求进行设置,其中用户可以对校验时间、校验周期和校验方式进行设置,其中,校验方式包括有对校验周期内全部数据进行验证、对校验周期内全部数据进行随机抽样验证、对所有数据进行随机抽样验证等,如此不同的设置分别兼顾了校验力度、校验效率和校验系统压力,因此能够更加有选择性的对待进行数据校验同步的数据进行定期处理,为用户提供了更好的使用体验,同时提高了校验同步效率。
3、在本发明实施例中,当区块链上有数据存储时,区块链会广播关于存储的数据的数据存储事件,通过记录数据存储事件中的特征值、ID可以与用户设置的同步订阅条件进行比对,用以判断数据存储事件对应的数据是否为用户所需的同步数据,若是则还需要判断用户此时是否具有访问该同步数据的权限,避免区块链上的数据被泄露,若用户具有访问数据权限,则可将数据存储事件中的交易哈希、区块哈希或已上链的同步数据发送给用户。综上可见,根据用户设置的同步订阅条件即可向用户提供其所需的同步数据,而无需用户自己从区块链上查看,因此,能够降低用户获取该同步数据的难度,同时能够定向选择进行同步的数据内容,提高数据同步的效率。
4、在本发明实施例中,用户在从区块链上获取同步数据之前,需要先基于该用户向区块链中上传数据的次数、上传数据的ID所对应的业务类型、存储时间以及存储的数据大小确定该用户的初始数据共享积分。然后基于该初始数据共享积分为用户设置能够访问区块链中对应的同步数据的初始有效期,并赋值给Auth Token,以使在Auth Token有效时用户可以通过Topic获取所需的同步数据。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.基于区块链的数据校验同步方法,应用于区块链服务平台,其特征在于,包括:
向用户端发送针对待进行数据校验同步的第一数据的数据校验请求,其中,所述数据校验请求中包括有所述第一数据的特征值,其中,所述特征值用于标识所述第一数据;
接收所述用户端根据所述特征值返回的第二数据,其中,所述第二数据为存储在所述用户端本地且以所述特征值为标识的数据;
根据所述特征值,从区块链上获取所述第一数据的文件哈希,其中,所述文件哈希通过预先设定的校验算法对所述第一数据进行处理而获得;
通过所述校验算法对所述第二数据进行处理,获得本地哈希;
判断所述文件哈希和所述本地哈希是否相同;
如果所述文件哈希和所述本地哈希不同,则对所述第一数据和所述第二数据进行同步处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一数据和所述第二数据进行同步处理,包括:
如果所述用户端不是所述第一数据的上传方,则根据所述特征值通过区块链获取所述第一数据,并将所述第一数据发送给所述用户端,以利用所述第一数据替换所述用户端本地存储的所述第二数据;
如果所述用户端为所述第一数据的上传方,则执行如下处理:
获取用户通过所述用户端发送的同步指令;
如果所述同步指令指示所述用户端本地存储的所述第二数据被篡改,则根据所述特征值通过区块链获取所述第一数据,并将所述第一数据发送给所述用户端,以利用所述第一数据替换所述用户端本地存储的所述第二数据;
如果所述同步指令指示所述用户端本地存储的所述第二数据为合法修改,则从所述用户端获取所述第二数据,并在所述第一数据的存储位置利用所述第二数据对所述第一数据进行替换。
3.根据权利要求2所述的方法,其特征在于,在所述同步指令指示所述用户端本地存储的所述第二数据被篡改之后,进一步包括:
将所述本地哈希存储到所述区块链上替换所述文件哈希,以备针对所述第二数据进行数据校验同步。
4.根据权利要求2所述的方法,其特征在于,在所述向用户端发送针对待进行数据校验同步的第一数据的数据校验请求之前,进一步包括:
在需要对所述第一数据进行共享时,获取所述第一数据并建立所述第一数据对应的ID;
从所述第一数据中提取出所述特征值;
根据所述ID、所述特征值和所述第一数据生成上链数据,并将所述上链数据上传至区块链中,以使所述区块链根据执行的数据存储操作生成数据存储事件,并广播所述数据存储事件,其中,所述数据存储事件用于描述所述区块链的至少一个区块执行的数据存储操作。
5.根据权利要求4所述的方法,其特征在于,
所述从所述第一数据中提取出所述特征值,包括:
从用于表征所述第一数据的字符串中提取至少一条value,其中,每一条所述value用于表征所述第一数据的一个属性对应的数据内容;
从所述至少一条value中提取至少一个key,将提取的所述key作为特征值,其中,不同数据对应的所述key不相同;
和/或,
所述建立所述第一数据对应的ID,包括:
从至少一个预设业务类型中,确定所述第一数据对应的目标业务类型;
确定所述目标业务类型对应的目标号段;
确定最新数据对应的ID,其中,所述最新数据为所述目标业务类型对应的数据中在所述区块链上存储的时间最短的数据;
根据所述最新数据对应的ID,生成所述第一数据对应的ID。
6.根据权利要求1至5中任一所述的方法,其特征在于,所述对所述第一数据和所述第二数据进行同步处理,包括:
S1:监听区块链广播的至少一个数据存储事件,其中,所述数据存储事件用于描述所述区块链的至少一个区块执行的数据存储操作;
S2:记录每一个所述数据存储事件中用于表征所述第一数据的所述特征值、所述第一数据的ID、交易哈希和区块哈希,其中,所述交易哈希用于描述上链数据存储至所述区块链的过程,所述区块哈希用于表征最新的所述区块中的数据和最新的所述区块所连接的区块中的数据;
S3:根据记录的所述特征值、所述ID和用户设置的同步订阅条件,确定所述至少一个数据存储事件中是否存在至少一个目标事件;
S4:当存在所述至少一个目标事件时,确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限;
S5:当所述用户当前具有访问所述已同步订阅数据权限时,根据记录的所述目标事件中的所述特征值通过所述区块链获取所述已同步订阅数据,其中,所述已同步订阅数据包括待同步目标数据、所述交易哈希对应的数据和所述区块哈希对应的数据中的至少一个,所述同步目标数据为对应的所述目标事件中的所述特征值所描述的数据;
S6:将所述已同步订阅数据发送给所述用户端,以利用所述已同步订阅数据替换所述用户端本地存储的所述第二数据。
7.根据权利要求6所述的方法,其特征在于,在所述确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限之前,进一步包括:
确定用户是否具有向所述区块链中存储数据的存储行为;
当所述用户具有所述存储行为时,确定所述存储行为的第一次数、每次所述存储行为对应的数据的第一ID、第一存储时间和第一数据大小;
根据所述第一次数、第一ID所指示的业务类型、所述第一存储时间和所述第一数据大小分别对应的权重值,计算所述用户的初始数据共享积分;
确定所述与所述初始数据共享积分相对应的初始有效期;
生成与所述用户设置的同步订阅条件相对应的认证令牌Auth Token和主题Topic;
将所述初始有效期的值赋值给所述Auth Token的目标有效期;
所述确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限,包括:
D1:确定所述用户的所述Auth Token的目标有效期是否失效,如果是,执行D3,否则,执行D2;
D2:执行根据记录的所述目标事件中的所述特征值通过所述区块链获取所述已同步订阅数据;
D3:向所述用户端发送用于表征所述Auth Token已失效的提示信息;
所述将所述已同步订阅数据发送给所述用户端,包括:
通过所述Topic将所述已同步订阅数据发送给所述用户端。
8.基于区块链的数据校验同步装置,其特征在于,包括:发送模块、接收模块、获取模块、处理模块、判断模块和同步模块;
所述发送模块,用于向用户端发送针对待进行数据校验同步的第一数据的数据校验请求,其中,所述数据校验请求包括有所述第一数据的特征值,其中,所述特征值用于标识所述第一数据;
所述接收模块,用于接收所述用户端根据所述发送模块发送的所述数据校验请求中的所述特征值返回的第二数据,其中,所述第二数据为存储在所述用户端本地且以所述特征值为标识的数据;
所述获取模块,用于根据所述发送模块发送的所述数据校验请求中的所述特征值,从区块链上获取所述第一数据的文件哈希,其中,所述文件哈希通过预先设定的校验算法对所述第一数据进行处理而获得;
所述处理模块,用于通过所述校验算法对所述接收模块所接收的所述第二数据进行处理,获得本地哈希;
所述判断模块,用于判断由所述获取模块获取到的所述文件哈希和由所述处理模块获得的所述本地哈希是否相同;
所述同步模块,用于在所述判断模块的判断结果为否时,对所述第一数据和所述第二数据进行同步处理。
9.根据权利要求8所述的装置,其特征在于,进一步包括:数据获取模块、数据处理模块和数据存储模块;
所述数据获取模块,用于在需要对所述第一数据进行共享时,获取所述第一数据;
所述数据处理模块,用于建立所述数据获取模块获取的所述第一数据对应的ID,从所述第一数据中提取出所述特征值,根据所述ID、所述特征值和所述第一数据生成上链数据;
所述数据存储模块,用于将所述数据处理模块生成的所述上链数据上传至区块链中,以使用户从服务平台获取到的至少一条目标上链通知信息中确定与目标第一数据相匹配的匹配信息,使得所述服务平台根据所述匹配信息通过所述区块链获取所述目标第一数据,其中,所述匹配信息包括一个区块存储的目标上链数据中的目标ID和目标特征值。
10.根据权利要求8或9所述的装置,其特征在于,进一步包括:事件监听模块、信息记录模块、事件处理模块、权限管理模块和数据管理模块;
所述事件监听模块,用于监听区块链广播的至少一个数据存储事件,其中,所述数据存储事件用于描述所述区块链的至少一个区块执行的数据存储操作;
所述信息记录模块,用于记录所述事件监听模块监听到的每一个所述数据存储事件中用于表征第一数据的所述特征值、所述第一数据的ID、交易哈希和区块哈希,其中,所述交易哈希用于描述上链数据存储至所述区块链的过程,所述区块哈希用于表征最新的所述区块中的数据和最新的所述区块所连接的区块中的数据;
所述事件处理模块,用于根据所述信息记录模块记录的所述特征值、所述ID和用户设置的同步订阅条件,确定所述至少一个数据存储事件中是否存在至少一个目标事件;
所述权限管理模块,用于当所述事件处理模块确定存在所述至少一个目标事件时,确定所述用户当前是否具有访问每一个所述目标事件对应的已同步订阅数据的权限;
所述数据管理模块,用于当所述权限管理模块确定所述用户当前具有访问所述已同步订阅数据权限时,根据记录的所述目标事件中的所述特征值通过所述区块链获取所述已同步订阅数据,其中,所述已同步订阅数据包括待同步目标第一数据、所述交易哈希对应的数据和所述区块哈希对应的数据中的至少一个,所述待同步目标第一数据为对应的所述目标事件中的所述特征值所描述的数据,将所述已同步订阅数据发送给所述用户端,以利用所述已同步订阅数据替换所述用户端本地存储的所述第二数据。
CN202110167513.1A 2021-02-07 2021-02-07 基于区块链的数据校验同步方法和装置 Active CN112905536B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110167513.1A CN112905536B (zh) 2021-02-07 2021-02-07 基于区块链的数据校验同步方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110167513.1A CN112905536B (zh) 2021-02-07 2021-02-07 基于区块链的数据校验同步方法和装置

Publications (2)

Publication Number Publication Date
CN112905536A true CN112905536A (zh) 2021-06-04
CN112905536B CN112905536B (zh) 2024-01-02

Family

ID=76124277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110167513.1A Active CN112905536B (zh) 2021-02-07 2021-02-07 基于区块链的数据校验同步方法和装置

Country Status (1)

Country Link
CN (1) CN112905536B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535661A (zh) * 2021-07-30 2021-10-22 天津光电通信技术有限公司 基于区块链技术的分布式共享文件管理方法及装置
CN113590375A (zh) * 2021-06-25 2021-11-02 北京电链科技有限公司 一种基于区块链的稳控装置信息校验方法及系统
CN113592669A (zh) * 2021-06-25 2021-11-02 北京电链科技有限公司 一种基于区块链的继电保护定值确认方法及系统
CN114225381A (zh) * 2022-01-07 2022-03-25 广州炫动信息科技有限公司 基于区块链分布式共识算法的战斗数据处理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190114433A (ko) * 2018-03-30 2019-10-10 주식회사 코인플러그 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN110365670A (zh) * 2019-07-08 2019-10-22 深圳壹账通智能科技有限公司 黑名单共享方法、装置、计算机设备和存储介质
CN110598448A (zh) * 2019-09-19 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的操作数据处理方法、装置、设备及存储介质
CN111143476A (zh) * 2019-12-31 2020-05-12 杭州趣链科技有限公司 一种基于数据库的智能合约数据快速查询方法
CN111859470A (zh) * 2020-09-23 2020-10-30 支付宝(杭州)信息技术有限公司 一种业务数据上链方法及装置
CN111858677A (zh) * 2020-07-27 2020-10-30 中国平安财产保险股份有限公司 本地缓存数据访问方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190114433A (ko) * 2018-03-30 2019-10-10 주식회사 코인플러그 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN110365670A (zh) * 2019-07-08 2019-10-22 深圳壹账通智能科技有限公司 黑名单共享方法、装置、计算机设备和存储介质
CN110598448A (zh) * 2019-09-19 2019-12-20 腾讯科技(深圳)有限公司 基于区块链的操作数据处理方法、装置、设备及存储介质
CN111143476A (zh) * 2019-12-31 2020-05-12 杭州趣链科技有限公司 一种基于数据库的智能合约数据快速查询方法
CN111858677A (zh) * 2020-07-27 2020-10-30 中国平安财产保险股份有限公司 本地缓存数据访问方法、装置、设备及存储介质
CN111859470A (zh) * 2020-09-23 2020-10-30 支付宝(杭州)信息技术有限公司 一种业务数据上链方法及装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590375A (zh) * 2021-06-25 2021-11-02 北京电链科技有限公司 一种基于区块链的稳控装置信息校验方法及系统
CN113592669A (zh) * 2021-06-25 2021-11-02 北京电链科技有限公司 一种基于区块链的继电保护定值确认方法及系统
CN113592669B (zh) * 2021-06-25 2024-02-27 北京电链科技有限公司 一种基于区块链的继电保护定值确认方法及系统
CN113590375B (zh) * 2021-06-25 2024-07-12 北京电链科技有限公司 一种基于区块链的稳控装置信息校验方法及系统
CN113535661A (zh) * 2021-07-30 2021-10-22 天津光电通信技术有限公司 基于区块链技术的分布式共享文件管理方法及装置
CN114225381A (zh) * 2022-01-07 2022-03-25 广州炫动信息科技有限公司 基于区块链分布式共识算法的战斗数据处理方法及系统
CN114225381B (zh) * 2022-01-07 2022-07-19 广州炫动信息科技有限公司 基于区块链分布式共识算法的战斗数据处理方法及系统

Also Published As

Publication number Publication date
CN112905536B (zh) 2024-01-02

Similar Documents

Publication Publication Date Title
CN112905536B (zh) 基于区块链的数据校验同步方法和装置
CN109543065B (zh) 一种结合区块链的视频主动识别方法
US20110029555A1 (en) Method, system and apparatus for content identification
JP2020511059A (ja) 情報認証方法及びシステム
CN110851879A (zh) 一种基于存证区块链的侵权存证方法、装置及设备
US11888985B2 (en) Blockchain system, registration terminal, approval terminal, smart contract registration method, and smart contract registration program
CN114372296B (zh) 一种基于区块链的用户行为数据审计方法及系统
CN109447809B (zh) 一种结合区块链的视频主动识别方法
CN109861996B (zh) 基于区块链的关系证明方法、装置、设备及存储介质
CN111209339B (zh) 区块同步方法、装置、计算机以及存储介质
CN108234122B (zh) 令牌校验方法和装置
CN112950415B (zh) 基于区块链的司法固证方法、平台和系统
CN110059981B (zh) 信任度评估方法、装置及终端设备
JP2007028015A (ja) タイムスタンプ検証プログラム、タイムスタンプ検証システム、タイムスタンプ検証方法、タイムスタンプ生成依頼方法
KR20160042394A (ko) 인증 시스템, 인증 방법, 및 인증 장치
US11829411B2 (en) Data recovery method and apparatus, electronic device, and storage medium
CN111666205A (zh) 一种数据审计的方法、系统、计算机设备和存储介质
CN110532529A (zh) 一种文件类型的识别方法及装置
CN113312326B (zh) 用于存储管理的方法、电子设备和计算机程序产品
US11343107B2 (en) System for method for secured logging of events
KR102100178B1 (ko) 블록 체인 기반의 녹취 정보 위변조 확인 시스템 및 그 방법
CN114547701A (zh) 一种基于区块链的防篡改识别芯片信息可信存储系统
CN111698227B (zh) 信息同步管理方法、装置、计算机系统及可读存储介质
CN112182009A (zh) 区块链的数据更新方法及装置、可读存储介质
CN112214464A (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