CN113254539B - 一种基于区块链的数据记录溯源系统及方法 - Google Patents

一种基于区块链的数据记录溯源系统及方法 Download PDF

Info

Publication number
CN113254539B
CN113254539B CN202110722541.5A CN202110722541A CN113254539B CN 113254539 B CN113254539 B CN 113254539B CN 202110722541 A CN202110722541 A CN 202110722541A CN 113254539 B CN113254539 B CN 113254539B
Authority
CN
China
Prior art keywords
verification
dynamic code
signature
uplink
block
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.)
Active
Application number
CN202110722541.5A
Other languages
English (en)
Other versions
CN113254539A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202110722541.5A priority Critical patent/CN113254539B/zh
Publication of CN113254539A publication Critical patent/CN113254539A/zh
Application granted granted Critical
Publication of CN113254539B publication Critical patent/CN113254539B/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/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
    • 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/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于区块链的数据记录溯源系统及方法。该系统包括:动态码生成模块、区块链验证与上链模块、非关系数据库以及溯源查询模块;所述动态码生成模块用于生成动态码;所述动态码用于码标识每一项日志;所述区块链验证与上链模块用于将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库;所述非关系数据库分别与所述区块链验证与上链模块以及所述溯源查询模块连接;所述溯源查询模块用于对所述非关系数据库中存储的区块链进行溯源查询。本发明实现了数据记录溯源功能,保证了记录的可信和可靠。

Description

一种基于区块链的数据记录溯源系统及方法
技术领域
本发明涉及区块链技术领域,特别是涉及一种基于区块链的数据记录溯源系统及方法。
背景技术
区块链是一个信息技术领域的术语。从本质上讲,它是一个共享数据库,存储于其中的数据或信息,具有“不可伪造”“全程留痕”“可以追溯”“公开透明”“集体维护”等特征。基于这些特征,区块链技术奠定了坚实的“信任”基础,创造了可靠的“合作”机制,具有广阔的运用前景。
但是,由于区块链的安全性,很难了解区块链上的数据记录的溯源,无法实现上链数据记录的存证溯源。
发明内容
本发明的目的是提供一种基于区块链的数据记录溯源系统及方法,实现数据记录溯源功能,保证了记录的可信和可靠。
为实现上述目的,本发明提供了如下方案:
一种基于区块链的数据记录溯源系统,包括:动态码生成模块、区块链验证与上链模块、非关系数据库以及溯源查询模块;
所述动态码生成模块用于生成动态码;所述动态码用于码标识每一项日志;
所述区块链验证与上链模块用于将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库;
所述非关系数据库分别与所述区块链验证与上链模块以及所述溯源查询模块连接;
所述溯源查询模块用于对所述非关系数据库中存储的区块链进行溯源查询。
可选地,还包括:请求生成动态码和获取所生成的动态码接口、接受数据上链请求的接口以及接受溯源查询请求并返回查询结果的接口;
所述请求生成动态码和获取所生成的动态码接口分别与所述动态码生成模块以及外部程序连接;所述请求生成动态码和获取所生成的动态码接口用于获取所述动态码生成模块生成的动态码;
所述接受数据上链请求的接口分别与所述动态码生成模块以及区块链验证与上链模块连接;所述接受数据上链请求的接口用于将通过验证后的数据进行上链;
所述接受溯源查询请求并返回查询结果的接口分别与所述非关系数据库以及所述溯源查询模块连接。
一种基于区块链的数据记录溯源方法,应用于所述的一种基于区块链的数据记录溯源系统,包括:
获取动态码生成模块生成的动态码;
利用动态码将外部程序的日志进行标识;
利用区块链验证与上链模块将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库;
利用溯源查询模块用于对非关系数据库中存储的区块链进行溯源查询。
可选地,所述获取动态码生成模块生成的动态码,之前还包括:
在系统主节点递增生成全局唯一的动态码;所述动态码为二进制数据或64位无符号整形数;
利用文件系统记录动态码生成记录。
可选地,所述获取动态码生成模块生成的动态码,具体包括:
外部程序通过请求生成动态码和获取所生成的动态码接口调用所述动态码生成模块中的动态码生成程序;
利用所述动态码生成程序对动态码生成记录上锁;并读取动态码生成记录;
判断动态码生成记录是否有异常;
若判断无异常,则利用动态码生成程序从动态码生成记录中获取最后生成的动态码;
利用所述动态码生成程序对最后生成的动态码递增产生新的动态码,并更新动态码生成记录;
利用动态码生成程序解锁动态码生成记录;
利用动态码生成程序将新的动态码通过请求生成动态码和获取所生成的动态码接口发送至外部程序。
可选地,所述利用区块链验证与上链模块将标识后的日志进行验证,并验证通过后进行上链,具体包括:
外部程序通过接受数据上链请求的接口将上链请求加入上链请求队列;
验证线程从上链请求队列中获取上链请求;
验证线程根据上链请求创建一个新的区块;此时所述新的区块缺失签名表;
验证线程对新的区块的前三部分进行第一次签名,并将签名插入签名表;所述新的区块的前三部分为格式码、区块头和区块体;
验证线程将新的区块广播,发起验证请求,请求全网所有节点参与验证;
验证线程启动签名验证线程收集签名,并阻塞自身;
若某个节点接收到了验证请求,则对接收到的新的区块进行真伪验证;
若验证通过则继续,否则终止验证;
完成验证的节点对新的区块的前三部分进行签名,并将签名回复给主节点的签名验证线程;
若签名验证线程接收到了签名,则对签名进行验证;
若验证通过,则将其加入签名表,否则跳过;
若一定时间内签名验证线程收集到了90%通过验证的签名;则新的区块验证成功开始上链,否则终止签名验证线程,并重置验证线程;
签名验证线程对验证成功的新的区块的签名表做最后一次签名,并将该签名缀入签名表最后一项;
签名验证线程将新的区块以动态码为键插入非关系数据库,区块上链完成。
可选地,所述所述利用区块链验证与上链模块将标识后的日志进行验证,并验证通过后进行上链,还包括:
将标识后的日志作为新的区块的区块体的内容;
将标识后的日志对应的动态码与新的区块进行绑定。
可选地,所述利用溯源查询模块用于对非关系数据库中存储的区块链进行溯源查询,具体包括:
外部程序通过调用接受溯源查询请求并返回查询结果的接口发起溯源查询请求;
利用溯源查询模块中的查询请求处理程序将查询请求中的查询条件进行转译;转译后的查询条件为非关系数据库识别的对象;
非关系数据库根据转译后的查询条件进行查询,并将查询结果发送至查询请求处理程序;
查询请求处理程序将查询结果发送至发起查询请求的外部程序,完成溯源查询。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种基于区块链的数据记录溯源系统及方法,通过对每一项日志增加唯一标识动态码来唯一标识日志,再将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库,借助非关系数据库提供的同步功能在不同节点间对区块链进行同步,再通过非关系数据库的查询功能对数据记录进行溯源查询。进而实现数据记录溯源功能,保证了记录的可信和可靠。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种基于区块链的数据记录溯源系统结构示意图;
图2为本发明所提供的一种基于区块链的数据记录溯源系统的具体结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于区块链的数据记录溯源系统及方法,实现数据记录溯源功能,保证了记录的可信和可靠。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明所提供的一种基于区块链的数据记录溯源系统结构示意图,如图1所示,本发明所提供的一种基于区块链的数据记录溯源系统,包括:动态码生成模块1、区块链验证与上链模块2、非关系数据库3以及溯源查询模块4;
所述动态码生成模块1用于生成动态码;所述动态码用于码标识每一项日志;
所述区块链验证与上链模块2用于将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库3;
所述非关系数据库3分别与所述区块链验证与上链模块2以及所述溯源查询模块4连接;
所述溯源查询模块4用于对所述非关系数据库3中存储的区块链进行溯源查询。
作为一个具体的实施例,在主节点递增生成全局唯一的动态码。该动态码为一个唯一的标识符,在实际实施中可能因部署环境选择不同的数据类型,如选择二进制数据、64位无符号整形数等。
使用文件系统记录动态码生成记录。所述系统将在所述特定节点文件系统中创建并维护一个文件,用来保存动态码生成记录。在实际实施中可能因部署环境选择不同的文件格式,如使用系统日志格式记录所有生成记录、使用二进制字节流格式仅存储最后一个生成的动态码等。
将动态码作为日志的唯一标识。所述系统中,日志由上文所述动态码唯一标识。
将动态码与区块唯一绑定。所述系统中,通过特定区块格式将标识后的日志作为区块内容,并将标识后的日志对应的动态码绑定到区块上,作为区块的唯一标识。所述特定区块格式如下:
格式代码
标识当前区块是否为已上链区块。
区块头
版本号:
标识本区块生成时使用的共识算法版本,用于版本兼容;
区块高度:标识当前区块在区块链中的次序;
父区块哈希值:上一个区块的SHA256哈希值,用于对整个区块链进行验证;
时间戳:本区块生成的时间戳;本区块哈希值为本区块的SHA256哈希值,用于对本区块的区块体进行验证。
区块体
区块体中包含了上链的日志内容;
上链数据类型:标识当前区块体的内容格式;
动态码:标识日志的唯一标识符;
生成时间:日志的生成时间;
暂时留空的特殊标记位;
序号:当日志需要拆分时用来标识拆分部分的序号;
操作者:上链请求发起人;
操作文件绝对地址:用于标识文件关联的标识位;
机构名:发起上链请求的机构名;
日志长度:日志内容的长度;
上链数据子类型:准确标识日志内容类型;
日志内容。
签名表
所有对该区块的签名将记录在本部分,每个签名包括签名机构的机构ID和签名的值,格式如下:
主节点发起签名请求时的第一次签名
子节点签名1;
……;
子节点签名n;
主节点对此前所有签名组成的签名表的签名。
在实际实施中可能因部署环境的不同对所述区块格式进行一定程度的删改。在没有对该格式做出有创造性意义的更改之前,任何修改都应属于本发明的保护范围。
本发明所提供的一种基于区块链的数据记录溯源系统,其特征在于,还包括:请求生成动态码和获取所生成的动态码接口、接受数据上链请求的接口以及接受溯源查询请求并返回查询结果的接口;这三个接口对应三个模块,实现三个功能:一是为每一个日志生成唯一标识动态码,二是将外部程序请求上链的日志上链,三是对区块链进行溯源查询。
所述请求生成动态码和获取所生成的动态码接口分别与所述动态码生成模块1以及外部程序连接;所述请求生成动态码和获取所生成的动态码接口用于获取所述动态码生成模块1生成的动态码;
所述接受数据上链请求的接口分别与所述动态码生成模块1以及区块链验证与上链模块2连接;所述接受数据上链请求的接口用于将通过验证后的数据进行上链;
所述接受溯源查询请求并返回查询结果的接口分别与所述非关系数据库3以及所述溯源查询模块4连接。
本系统部署时需要部署一个主节点和多个子节点,节点之间需要保证具有一定稳定性的网络连接,从而保证节点之间能够进行通信。主节点拥有完整的动态码生成模块1、验证与上链模块和溯源查询模块4,而子节点只有无法发起上链的验证与上链模块和溯源查询模块4。
首先介绍区块链的实现和维护。区块链由区块构成。逻辑意义上,每个区块包含对之前区块链的一个完整描述、当前区块所上链的日志和当前区块的凭证;存储意义上每个区块是诸如MongoDB的非关系数据库3中的一个以动态码为键的文档,其内容为一个格式如下的JSON对象:
1、格式代码:标识当前区块是否为已上链区块。
2、区块头:
a、版本号:标识本区块生成时使用的共识算法版本,用于版本兼容;
b、区块高度:标识当前区块在区块链中的次序;
c、父区块哈希值:上一个区块的SHA256哈希值,用于对整个区块链进行验证;
d、时间戳:本区块生成的时间戳;
e、本区块哈希值:本区块的SHA256哈希值,用于对本区块的区块体进行验证。
3、区块体
a.区块体中包含了上链的日志内容;
b. 上链数据类型:标识当前区块体的内容格式;
c.动态码:标识日志的唯一标识符;
d. 生成时间:日志的生成时间;
e.暂时留空的特殊标记位;
f.序号:当日志需要拆分时用来标识拆分部分的序号;
g. 操作者:上链请求发起人;
h. 操作文件绝对地址:用于标识文件关联的标识位;
i.机构名:发起上链请求的机构名;
j.日志长度:日志内容的长度
k. 上链数据子类型:准确标识日志内容类型;
l.日志内容;
4、签名表
所有对该区块的签名将记录在本部分,每个签名包括签名机构的机构ID和签名的值,格式如下:
(1)主节点发起签名请求时的第一次签名;
(2)子节点签名1;
(3)……;
(4)子节点签名n;
(5)主节点对此前所有签名组成的签名表的签名;
若任一外部程序P有需要上链的区块,则执行如下流程:
1)外部程序P将日志打包成一个上链请求;
2)外部程序P访问请求生成动态码和获取所生成的动态码接口获取一个新的动态码,作为当前日志的唯一标识符;
3)外部程序P将动态码填入上链请求;
4)外部程序P将填好动态码的上链请求通过接受数据上链请求的接口传递给本系统的验证与上链模块;
5)验证与上链模块根据上链请求创建区块B,发起验证请求,全网节点参与验证新创建的区块B;
6)通过验证的区块B插入诸如MongoDB的非关系数据库3,连接上已有区块链;
7)此后经过数个区块上链,区块B在区块链上的连接确定,区块B固化为永久区块;
8)每经过一段时间,所有节点的诸如MongoDB的非关系数据库3都会与其他节点同步;
以上完成了对区块链的实现和维护。其中,外部程序通过调用请求生成动态码和获取所生成的动态码接口获取了一个新的动态码作为要上链的日志的唯一标识符。该过程在动态码生成模块1中步骤如下(可参考图2):
1.外部程序通过请求生成动态码和获取所生成的动态码接口调用动态码生成程序;
2.动态码生成程序对动态码生成记录上锁;
3.动态码生成程序读取动态码生成记录,并判断是否有异常;
4.动态码生成程序从动态码生成记录获取最后生成的动态码;
5.动态码生成程序根据最后生成的动态码递增产生新的动态码;
6.动态码生成程序更新动态码生成记录;
7.动态码生成程序解锁动态码生成记录;
8.动态码生成程序将新生成的动态码回复给调用请求生成动态码和获取所生成的动态码接口的外部程序。
在验证和上链模块中步骤如下(可参考图2):
1.外部程序通过接受数据上链请求的接口将上链请求加入上链请求队列;
2.验证线程从上链请求队列中获取上链请求;
3.验证线程根据上链请求创建一个新的区块,此时该区块缺失签名表;
4.验证线程对新区块前三部分(格式码、区块头和区块体)进行第一次签名,并将签名插入签名表;
5.验证线程将新区块广播,发起验证请求,请求全网所有节点参与验证
验证线程启动签名验证线程收集签名,并阻塞自身;
6.若某个节点接收到了验证请求,则对接收到的新区块进行真伪验证。若验证通过则继续,否则终止验证;
7.完成验证的节点对新区块前三部分(格式码、区块头和区块体)进行签名,并将签名(格式同4)回复给主节点的签名验证线程;
8.若签名验证线程接收到了签名,则对签名进行验证。若验证通过则将其加入签名表,否则跳过;
9.若一定时间内签名验证线程收集到了足够多(通常取90%)通过验证的签名则区块验证成功开始上链,否则终止签名验证线程并重置验证线程;
10.签名验证线程对验证成功的区块的签名表做最后一次签名并将该签名缀入签名表最后一项;
11.签名验证线程将该区块以动态码为键插入诸如MongoDB的非关系数据库3,区块上链完成;
12.数据库同步,是借助诸如MongoDB的非关系数据库3及其驱动本身提供的数据库同步功能进行的。
接下来介绍区块链的溯源查询。为了保证稳定性和提高性能,该功能的实现需要借助诸如MongoDB的非关系数据库3及其驱动提供的查询方法。由于区块链的格式和非关系数据库3诸如MongoDB的非关系数据库3的特殊性,本系统可以提供多种溯源查询方式:
通过任一日志的动态码进行溯源;
通过区块头中的任一属性进行溯源,包括区块高度、父区块哈希值、本区块哈希值、时间戳等;
通过区块体中除动态码外的某一字段进行溯源,如操作者等。
具体溯源过程如下:
1.外部程序通过调用接受溯源查询请求并返回查询结果的接口发起溯源查询请求;
2.溯源查询模块4的查询请求处理程序接受查询请求中的查询条件;
3.查询请求处理程序将查询条件转译成诸如MongoDB的非关系数据库3可以识别的BSON对象
4.查询请求处理程序将BSON对象通过诸如MongoDB的非关系数据库3驱动程序发送至诸如MongoDB的非关系数据库3进行查询;
5.诸如MongoDB的非关系数据库3将查询结果通过诸如MongoDB的非关系数据库3驱动程序回复给查询请求处理程序;
6.查询请求处理程序将查询结果回复给发起查询请求的外部程序,完成溯源查询。
综上所述,本系统通过生成唯一动态码唯一标识每份日志,使用特定格式的区块将动态码与日志绑定,将区块上链后作为文档保存至诸如MongoDB的非关系数据库3,并通过诸如MongoDB的非关系数据库3进行节点间同步,然后通过查询诸如MongoDB的非关系数据库3中的文档来实现对数据记录的溯源查询。
本发明所提供一种基于区块链的数据记录溯源方法,应用于所述的一种基于区块链的数据记录溯源系统,包括:
获取动态码生成模块1生成的动态码;
利用动态码将外部程序的日志进行标识;
利用区块链验证与上链模块2将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库3;
利用溯源查询模块4用于对非关系数据库3中存储的区块链进行溯源查询。
所述获取动态码生成模块1生成的动态码,之前还包括:
在系统主节点递增生成全局唯一的动态码;所述动态码为二进制数据或64位无符号整形数;
利用文件系统记录动态码生成记录。
所述获取动态码生成模块1生成的动态码,具体包括:
外部程序通过请求生成动态码和获取所生成的动态码接口调用所述动态码生成模块1中的动态码生成程序;
利用所述动态码生成程序对动态码生成记录上锁;并读取动态码生成记录;
判断动态码生成记录是否有异常;
若判断无异常,则利用动态码生成程序从动态码生成记录中获取最后生成的动态码;
利用所述动态码生成程序对最后生成的动态码递增产生新的动态码,并更新动态码生成记录;
利用动态码生成程序解锁动态码生成记录;
利用动态码生成程序将新的动态码通过请求生成动态码和获取所生成的动态码接口发送至外部程序。
所述利用区块链验证与上链模块2将标识后的日志进行验证,并验证通过后进行上链,具体包括:
外部程序通过接受数据上链请求的接口将上链请求加入上链请求队列;
验证线程从上链请求队列中获取上链请求;
验证线程根据上链请求创建一个新的区块;此时所述新的区块缺失签名表;
验证线程对新的区块的前三部分进行第一次签名,并将签名插入签名表;所述新的区块的前三部分为格式码、区块头和区块体;
验证线程将新的区块广播,发起验证请求,请求全网所有节点参与验证;
验证线程启动签名验证线程收集签名,并阻塞自身;
若某个节点接收到了验证请求,则对接收到的新的区块进行真伪验证;
若验证通过则继续,否则终止验证;
完成验证的节点对新的区块的前三部分进行签名,并将签名回复给主节点的签名验证线程;
若签名验证线程接收到了签名,则对签名进行验证;
若验证通过,则将其加入签名表,否则跳过;
若一定时间内签名验证线程收集到了90%通过验证的签名;则新的区块验证成功开始上链,否则终止签名验证线程,并重置验证线程;
签名验证线程对验证成功的新的区块的签名表做最后一次签名,并将该签名缀入签名表最后一项;
签名验证线程将新的区块以动态码为键插入非关系数据库3,区块上链完成。
所述所述利用区块链验证与上链模块2将标识后的日志进行验证,并验证通过后进行上链,还包括:
将标识后的日志作为新的区块的区块体的内容;
将标识后的日志对应的动态码与新的区块进行绑定。
所述利用溯源查询模块4用于对非关系数据库3中存储的区块链进行溯源查询,具体包括:
外部程序通过调用接受溯源查询请求并返回查询结果的接口发起溯源查询请求;
利用溯源查询模块4中的查询请求处理程序将查询请求中的查询条件进行转译;转译后的查询条件为非关系数据库3识别的对象;
非关系数据库3根据转译后的查询条件进行查询,并将查询结果发送至查询请求处理程序;
查询请求处理程序将查询结果发送至发起查询请求的外部程序,完成溯源查询。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种基于区块链的数据记录溯源系统,其特征在于,包括:动态码生成模块、区块链验证与上链模块、非关系数据库以及溯源查询模块;
所述动态码生成模块用于生成动态码;所述动态码用于码标识每一项日志;
所述区块链验证与上链模块用于将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库;
所述非关系数据库分别与所述区块链验证与上链模块以及所述溯源查询模块连接;
所述溯源查询模块用于对所述非关系数据库中存储的区块链进行溯源查询;
区块链验证与上链模块将标识后的日志进行验证,并验证通过后进行上链,具体包括:
外部程序通过接受数据上链请求的接口将上链请求加入上链请求队列;
验证线程从上链请求队列中获取上链请求;
验证线程根据上链请求创建一个新的区块;此时所述新的区块缺失签名表;
验证线程对新的区块的前三部分进行第一次签名,并将签名插入签名表;所述新的区块的前三部分为格式码、区块头和区块体;
验证线程将新的区块广播,发起验证请求,请求全网所有节点参与验证;
验证线程启动签名验证线程收集签名,并阻塞自身;
若某个节点接收到了验证请求,则对接收到的新的区块进行真伪验证;
若验证通过则继续,否则终止验证;
完成验证的节点对新的区块的前三部分进行签名,并将签名回复给主节点的签名验证线程;
若签名验证线程接收到了签名,则对签名进行验证;
若验证通过,则将其加入签名表,否则跳过;
若一定时间内签名验证线程收集到了90%通过验证的签名;则新的区块验证成功开始上链,否则终止签名验证线程,并重置验证线程;
签名验证线程对验证成功的新的区块的签名表做最后一次签名,并将该签名缀入签名表最后一项;
签名验证线程将新的区块以动态码为键插入非关系数据库,区块上链完成。
2.根据权利要求1所述的一种基于区块链的数据记录溯源系统,其特征在于,还包括:请求生成动态码和获取所生成的动态码接口、接受数据上链请求的接口以及接受溯源查询请求并返回查询结果的接口;
所述请求生成动态码和获取所生成的动态码接口分别与所述动态码生成模块以及外部程序连接;所述请求生成动态码和获取所生成的动态码接口用于获取所述动态码生成模块生成的动态码;
所述接受数据上链请求的接口分别与所述动态码生成模块以及区块链验证与上链模块连接;所述接受数据上链请求的接口用于将通过验证后的数据进行上链;
所述接受溯源查询请求并返回查询结果的接口分别与所述非关系数据库以及所述溯源查询模块连接。
3.一种基于区块链的数据记录溯源方法,应用于权利要求1-2任意一项所述的一种基于区块链的数据记录溯源系统,其特征在于,包括:
获取动态码生成模块生成的动态码;
利用动态码将外部程序的日志进行标识;
利用区块链验证与上链模块将标识后的日志进行验证,并验证通过后进行上链;并将上链后的区块链保存至非关系数据库;
利用溯源查询模块用于对非关系数据库中存储的区块链进行溯源查询;
所述利用区块链验证与上链模块将标识后的日志进行验证,并验证通过后进行上链,具体包括:
外部程序通过接受数据上链请求的接口将上链请求加入上链请求队列;
验证线程从上链请求队列中获取上链请求;
验证线程根据上链请求创建一个新的区块;此时所述新的区块缺失签名表;
验证线程对新的区块的前三部分进行第一次签名,并将签名插入签名表;所述新的区块的前三部分为格式码、区块头和区块体;
验证线程将新的区块广播,发起验证请求,请求全网所有节点参与验证;
验证线程启动签名验证线程收集签名,并阻塞自身;
若某个节点接收到了验证请求,则对接收到的新的区块进行真伪验证;
若验证通过则继续,否则终止验证;
完成验证的节点对新的区块的前三部分进行签名,并将签名回复给主节点的签名验证线程;
若签名验证线程接收到了签名,则对签名进行验证;
若验证通过,则将其加入签名表,否则跳过;
若一定时间内签名验证线程收集到了90%通过验证的签名;则新的区块验证成功开始上链,否则终止签名验证线程,并重置验证线程;
签名验证线程对验证成功的新的区块的签名表做最后一次签名,并将该签名缀入签名表最后一项;
签名验证线程将新的区块以动态码为键插入非关系数据库,区块上链完成。
4.根据权利要求3所述的一种基于区块链的数据记录溯源方法,其特征在于,所述获取动态码生成模块生成的动态码,之前还包括:
在系统主节点递增生成全局唯一的动态码;所述动态码为二进制数据或64位无符号整形数;
利用文件系统记录动态码生成记录。
5.根据权利要求4所述的一种基于区块链的数据记录溯源方法,其特征在于,所述获取动态码生成模块生成的动态码,具体包括:
外部程序通过请求生成动态码和获取所生成的动态码接口调用所述动态码生成模块中的动态码生成程序;
利用所述动态码生成程序对动态码生成记录上锁;并读取动态码生成记录;
判断动态码生成记录是否有异常;
若判断无异常,则利用动态码生成程序从动态码生成记录中获取最后生成的动态码;
利用所述动态码生成程序对最后生成的动态码递增产生新的动态码,并更新动态码生成记录;
利用动态码生成程序解锁动态码生成记录;
利用动态码生成程序将新的动态码通过请求生成动态码和获取所生成的动态码接口发送至外部程序。
6.根据权利要求3所述的一种基于区块链的数据记录溯源方法,其特征在于,所述利用区块链验证与上链模块将标识后的日志进行验证,并验证通过后进行上链,还包括:
将标识后的日志作为新的区块的区块体的内容;
将标识后的日志对应的动态码与新的区块进行绑定。
7.根据权利要求3所述的一种基于区块链的数据记录溯源方法,其特征在于,所述利用溯源查询模块用于对非关系数据库中存储的区块链进行溯源查询,具体包括:
外部程序通过调用接受溯源查询请求并返回查询结果的接口发起溯源查询请求;
利用溯源查询模块中的查询请求处理程序将查询请求中的查询条件进行转译;转译后的查询条件为非关系数据库识别的对象;
非关系数据库根据转译后的查询条件进行查询,并将查询结果发送至查询请求处理程序;
查询请求处理程序将查询结果发送至发起查询请求的外部程序,完成溯源查询。
CN202110722541.5A 2021-06-29 2021-06-29 一种基于区块链的数据记录溯源系统及方法 Active CN113254539B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110722541.5A CN113254539B (zh) 2021-06-29 2021-06-29 一种基于区块链的数据记录溯源系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110722541.5A CN113254539B (zh) 2021-06-29 2021-06-29 一种基于区块链的数据记录溯源系统及方法

Publications (2)

Publication Number Publication Date
CN113254539A CN113254539A (zh) 2021-08-13
CN113254539B true CN113254539B (zh) 2021-11-02

Family

ID=77190068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110722541.5A Active CN113254539B (zh) 2021-06-29 2021-06-29 一种基于区块链的数据记录溯源系统及方法

Country Status (1)

Country Link
CN (1) CN113254539B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108364181A (zh) * 2018-01-08 2018-08-03 广州中国科学院计算机网络信息中心 基于区块链与物联网标识的溯源方法及系统
CN110807641A (zh) * 2018-08-01 2020-02-18 隽名有限公司 宠物食品溯源系统
CN111695648A (zh) * 2019-06-24 2020-09-22 刘启强 一种区块链电子标签装置以及产品溯源认证系统
CN112365261A (zh) * 2020-11-10 2021-02-12 广州搜料信息技术有限公司 一种基于区块链的数据溯源方法及系统
CN112149187B (zh) * 2020-11-25 2024-04-05 支付宝(杭州)信息技术有限公司 一种基于区块链的溯源信息的处理方法及装置

Also Published As

Publication number Publication date
CN113254539A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN110263035B (zh) 基于区块链的数据存储、查询方法及装置和电子设备
CN110785760B (zh) 用于登记数字文档的方法和系统
US11206147B2 (en) Method and apparatus for generating a cryptographic time stamp for a digital document on a majority basis
US9305055B2 (en) Method and apparatus for analysing data packets
US8489548B2 (en) Method, system, and device for data synchronization
JP2020517200A (ja) Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same}
GB2558688A (en) Event attestation for an electronic device
WO2022134951A1 (zh) 一种数据同步方法、装置、设备以及计算机可读存储介质
CN109861996B (zh) 基于区块链的关系证明方法、装置、设备及存储介质
CN112905536B (zh) 基于区块链的数据校验同步方法和装置
CN111444257A (zh) 一种基于区块链的电子证据的存储方法及系统
CN111339551B (zh) 数据的验证方法及相关装置、设备
CN111367923A (zh) 数据处理方法、装置、节点设备及存储介质
CN111459935B (zh) 物联网数据存储方法、存储系统、查询方法及存储介质
CN113254539B (zh) 一种基于区块链的数据记录溯源系统及方法
CN111414417B (zh) 一种基于区块链的视频版权管理方法
CN111026724B (zh) 一种基于分布式系统的文件同步方法、装置、设备及介质
CN112671603A (zh) 故障检测方法和服务器
WO2023168993A1 (zh) 基于区块链的数据处理方法、装置、设备、介质及产品
CN111460436B (zh) 一种基于区块链的非结构化数据操作方法和系统
CN112559546A (zh) 数据库同步方法、装置、计算机设备及可读存储介质
CN111079199B (zh) 基于区块链技术的企业信用数据截图防篡改方法
CN117692149B (zh) 一种日志透明实体诚实性的检验方法、设备以及介质
CN111367867B (zh) 日志信息处理方法、装置、电子设备及存储介质
CN117155953A (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