CN108573741A - 业务数据记录方法、装置、设备和存储介质 - Google Patents
业务数据记录方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN108573741A CN108573741A CN201711423467.7A CN201711423467A CN108573741A CN 108573741 A CN108573741 A CN 108573741A CN 201711423467 A CN201711423467 A CN 201711423467A CN 108573741 A CN108573741 A CN 108573741A
- Authority
- CN
- China
- Prior art keywords
- business event
- target
- business
- event
- transaction
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/22—Social work
Abstract
本发明实施例提供了业务数据记录方法、装置、设备和存储介质,该方法包括:接收当前发起方发送的业务事件请求,根据接收的业务事件请求,对上述业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;获取上述业务数据的目标哈希值;若上述当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将上述目标哈希值发送到预设的目标区块链系统中,由上述目标区块链系统将上述目标哈希值作为创建的目标交易的参数,并将上述目标交易进行存储。本实施例提供的方法避免了业务数据被篡改的行为。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及业务数据记录方法、装置、设备和存储介质。
背景技术
信息化系统的数据往往是需要长期持久化存储的,为了防止数据被篡改,因此在安全方面如数据一致性上也有不同程度的要求。例如,医院信息化系统(HIS,HospitalInformationSystem),记录着卫生、医疗活动中的业务数据,其数据的敏感性、重要性是不言而喻的。由此可见,该业务数据需要长期持久化存储,而且数据应具备一致性和真实性。
目前,医院使用的医院信息化系统根据接收发送方发送的业务事件请求,对该业务事件请求对应的业务事件进行处理,得到该业务事件处理后的业务数据并发送到医院信息化系统中具有安全审计和日志功能的数据库,该数据库采用集中式存储。
虽然该数据库提供了安全审计和日志功能,由于数据库中的数据本身是可以删改的,因此安全审计和日志功能也是可能被Hack(增加、删除或者修改、优化)、关闭、或者删除数据的。如对数据库表记录的时间戳字段进行修改,就可以轻易的破坏一个事件的时间;或者可以插入一条数据,但使用假的时间字段。因此,一旦破坏者拥有数据库和操作系统的最高权限,安全审计和日志功能都无法起到保护作用;由此可知,这种集中式数据存储的方案,仍然难以避免甚至发现业务数据篡改的行为。
发明内容
本发明实施例的目的在于提供业务数据记录方法、装置、设备和存储介质,以避免业务数据被篡改的行为。
具体技术方案如下:
业务数据记录方法,应用于客户端,所述方法包括:
接收当前发起方发送的业务事件请求,其中,所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件;
根据接收的业务事件请求,对所述业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
获取所述业务数据的目标哈希值;
若所述当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储,所述存储位置由区块号和交易编码唯一确定,所述第一业务事件为上一个发起方对应的业务事件。
进一步地,所述获取所述业务数据的目标哈希值,包括:
获取所述客户端生成的标识号,所述标识号是由患者身份唯一标识和该患者的就诊号生成的唯一号;
获取所述业务事件的业务数据;
根据获取的所述标识号和所述业务数据,利用哈希函数算法计算所述业务数据的目标哈希值。
进一步地,在所述获取所述业务数据的目标哈希值之前或之后,所述方法还包括:
根据所述业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,所述第二业务事件为所述业务事件对应的下一个待处理的业务事件。
进一步地,所述业务处理流程规则是由点和有向边构成的有向图组成,其中,有向图中的一个点对应一个业务事件。
进一步地,所述根据所述业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,包括:
读取预设的有向图,得到所述业务事件对应的点;
根据所述点在预设的有向图中的位置关系,当所述点不是有向图的最后一个点时,生成第二业务事件对应的接收方。
进一步地,在所述根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,则将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储之后,所述方法还包括:
获取所述目标交易在所述目标区块链系统中的存储位置。
进一步地,在所述获取所述目标交易在所述目标区块链系统中的存储位置之前,所述方法还包括:
若所述当前发起方是首位发起方,则将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储。
进一步地,所述将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储,包括:
将所述目标哈希值和接收方生成的第二业务事件对应的业务事件请求发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值和接收方生成的第二业务事件对应的业务事件请求作为创建的目标交易的参数,并将所述目标交易进行存储。
进一步地,在所述对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中之前,所述方法还包括:
查询所述当前发起方是否有所述业务事件请求对应的待处理的业务事件;
如果查询到所述当前发起方有所述待处理的业务事件,执行所述根据接收的业务事件请求,对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中的步骤。
进一步地,在所述获取所述目标交易在所述目标区块链系统中的存储位置之后,所述方法还包括:
将所述第二业务事件对应的业务事件请求和所述第二业务事件对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行接收当前发起方发送的业务事件请求步骤。
进一步地,所述查询所述当前发起方是否存在所述待处理的业务事件请求对应的业务事件,包括:
接收当前发起方发送的公钥;
根据所述当前发起方发送的公钥,从预设的目标区块链系统中查询所述公钥对应的所有待处理的业务事件的目标交易;
遍历查询到的所有待处理的业务事件的目标交易,得到所述待处理的业务事件,从所有待处理的业务事件中检查所述当前发起方是否有与所述业务事件请求对应的待处理的业务事件。
进一步地,在所述查询所述当前发起方是否存在所述待处理的业务事件请求对应的业务事件之后,所述方法还包括:
如果从所述当前发起方中未查询到所述待处理的业务事件,输出预设的报警事件,其中,所述报警事件是由未查询到所述待处理的业务事件生成的报警事件。
进一步地,所述输出预设的报警事件,包括:
通过发送邮件的方式向客户端发送预设的报警事件,用于在所述客户端的显示屏上输出预设的报警事件。
进一步地,所述输出预设的报警事件,包括:
通过弹出对话框方式向客户端展示预设的报警事件对应的预设错误码。
进一步地,在所述将所述第二业务事件对应的业务事件请求和所述第二业务事件对应的业务事件请求对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行接收当前发起方发送的业务事件请求步骤之后,所述方法还包括:
获取所述客户端生成的标识号;
获取所述业务事件的业务数据;
根据获取的所述标识号和所述业务数据,利用哈希函数计算所述业务数据的目标哈希值,记为第一目标哈希值;
根据所述目标哈希值在所述目标区块链系统中的存储位置,从所述目标区块链系统中获取所述目标哈希值,记为第二目标哈希值;
判断所述第一目标哈希值和所述第二目标哈希值是否一致;
若为一致,将所述业务事件标定为无篡改;
若为不一致,将所述业务事件标定为有篡改。
业务数据记录方法,应用于目标区块链系统,所述方法包括:
当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在所述目标区块链系统中的存储位置,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
所述目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用所述业务数据获得的哈希值;所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件,所述第一业务事件为上一个发起方对应的业务事件。
进一步地,在所述当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在所述目标区块链系统中的存储位置,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中之前或之后,所述方法还包括:
当客户端判定当前发起方是首位发起方,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中。
进一步地,所述接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,包括:
接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,其中,
所述第二业务事件对应的业务事件请求的生成过程为客户端根据业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,所述第二业务事件为所述业务事件对应的下一个待处理的业务事件。
进一步地,在所述接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中之后,所述方法还包括:
将目标交易的存储位置发送到所述客户端中,其中,所述存储位置由区块号和交易编码唯一确定。
进一步地,在所述接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中之后,所述方法还包括:
接收所述客户端发送的目标请求,其中,所述目标请求为获取当前发送方对应的所有待处理业务事情的请求;
从所述客户端获取所述当前发起方发送的公钥,发送所述公钥对应的所有待处理的业务事件到所述客户端中。
进一步地,所述接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,包括:
获取业务事件记录生成程序的签名,作为目标签名,存储所述目标签名作为创建的第一目标交易的输入脚本;其中,一个目标交易对应一个业务事件,所述目标交易为第一目标交易或第二目标交易,所述第一目标交易为交易类型是普通交易对应的交易,所述普通交易为有前置交易的交易,所述第一目标交易包括输入脚本、输出脚本,所述第二目标交易为交易类型是特殊交易对应的交易,所述特殊交易为无前置交易的交易,所述第二目标交易包括输出脚本,所述输入脚本为获取的业务事件记录生成程序的签名,所述输出脚本包括该业务事件对应的OP_RETURN指令及其OP_RETURN的参数,所述业务事件记录包括上一业务事件对应的目标哈希值、区块号和交易编号;
获取备注信息,存储所述备注信息作为目标交易输出脚本OP_RETURN的参数,其中,所述备注信息包括业务事件的目标哈希值和接收方生成的第二业务事件对应的业务事件请求,所述存储位置由区块号和交易编码唯一确定。
进一步地,所述获取备注信息,存储所述备注信息作为创建的目标交易输出脚本OP_RETURN的参数,包括:
判断业务事件对应的创建的目标交易是否存在前置交易;
若存在,判定所述业务事件为增量事件,获取备注信息,存储所述备注信息作为创建的第一目标交易的输出脚本OP_RETURN的参数;
若不存在,判定所述业务事件为全量事件,获取备注信息,存储所述备注信息作为创建的第二目标交易的输出脚本OP_RETURN的参数。
业务数据记录装置,应用于客户端,所述装置包括:
业务事件请求接收模块,用于接收当前发起方发送的业务事件请求,其中,所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件;
业务事件处理模块,用于根据接收的业务事件请求,对所述业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
目标哈希值获取模块,用于获取所述业务数据的目标哈希值;
第一区块链调用模块,用于若所述当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储,所述存储位置由区块号和交易编码唯一确定,所述第一业务事件为上一个发起方对应的业务事件。
业务数据记录装置,应用于目标区块链系统,所述装置包括:
第一接收模块,用于当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在所述目标区块链系统中的存储位置,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
所述目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用所述业务数据获得的哈希值;所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件,所述第一业务事件为上一个发起方对应的业务事件。
本发明实施的又一方面,还提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:当其在计算机上运行时,使得计算机执行上述任一所述的业务数据记录方法。
本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的业务数据记录方法。
本发明实施例提供的业务数据记录方法、装置、设备和介质,可以通过接收当前发起方发送的业务事件请求,根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;获取业务数据的目标哈希值;若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储。该方法通过将当前发送方对应的待处理的业务事件处理后的业务数据存储在预设的数据库中,将该业务数据的目标哈希值存储在目标区块链系统中,避免了该业务数据被篡改的行为。当然,实施本发明的任一产品或方法必不一定需要同时达到以上的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的业务数据记录方法的第一种流程图;
图2为本发明实施例提供的业务数据记录方法的第二种流程图;
图3为本发明实施例提供的业务数据记录方法的第三种流程图;
图4为本发明实施例提供的业务数据记录方法的第四流程图;
图5本发明实施例提供的业务数据记录装置的结构示意图;
图6本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例应用于客户端一侧可以为医院信息化系统,现以医院信息化系统为例对本发明实施例进行描述。
目标区块链系统由一系列物理节点及其上运行的区块链软件程序所构成。节点之间有直接或间接的网络连接,采用P2P(peer-to-peer,点对点)方式通讯。每个节点都有写入数据权限,和同等的投票权。
每个区块链由该区块链对应的节点创建的多个区块构成,每个区块都有该区块数据内容和数据指纹签名,下一区块均会记录上一区块的区块号和指纹签名。
医院信息化系统(HIS,HospitalInformationSystem),主要承担院内的各种业务活动,包括挂号登记、门急诊、住院管理、收费、医保报销、药房药库管理、物资耗材管理等功能,甚至还会包括检验检查,电子病历等功能模块。
科室:医院内担负不同功能的科室,包括挂号处、收费处、各科门诊、护士站、住院登记处、各科住院部、护理部,以及药房、药库等科室。一般每个科室都会有医务人员使用自己的账号登录HIS,来完成本科室的业务操作。不同账号有不同的功能菜单和操作权限。
因此,本发明提供的实施例应用于目标区块链系统,以及基于该系统的医院信息化系统软件,二者皆需采用本发明提供的实施例,才可以配合工作。
为了对本发明实施例更加容易理解,现对本发明实施例出现的名称进行如下解释:
HIS记录着卫生、医疗活动中的业务数据,其数据的敏感性、重要性是不言而喻的。所以往往需要长期持久化存储,数据应具备一致性和真实性。
所谓持久化,即数据在长期和各种条件下保证不损坏、不丢失。
所谓一致性,即一旦数据产生和持久化,以后每次读取所得内容都是一致的,这个暗含数据不能再发生改变。
所谓真实性,即数据应当是真实业务事件中产生的数据,而非虚假的、伪造的数据。一个业务事件至少应当有发生的时间、地点场所如科室、相关的人如医务人员或患者、业务关键词如就诊记录ID等。一个业务事件不是孤立的,它会有前后、因果关系,这些业务事件之间的前后、因果关系也体现了数据的真实性。
区块链(block chain):是一种最早应用在比特币中的分布式记账技术。区块链可以用于数据存储,区别于集中式存储和一般的分布式存储技术,首先,区块链的数据存储,需要多个分布式节点的同意才被识别为有效,这就避免了由于单一或少数节点有意或无意的错误,引起的数据错误;其次,区块链的存储的数据内容都有数据指纹签名如采用SHA(Secure Hash Algorithm,安全哈希算法)算法,根据目前已知的技术这种指纹是无法伪造的,也就保证了数据的不可篡改性或即使篡改了也可以被发现;另外,记账者的身份可以采用基于公钥-密钥机制的数字签名,使得其身份通过公钥容易被识别,而且通过密钥使其行为不可抵赖。区块链作为比特币的基础技术,随着比特币近几年的发展已经得到了验证,开始在金融和支付领域蓬勃发展。
区块(block):是一个存储块,可以设想为一块硬盘。整个目标区块链系统,就是由一块接一块的硬盘组合而成一个巨大的存储空间。每一个区块都有其数据内容和数据指纹签名。下一块区块还会记录上一个区块的区块号和指纹签名,这样保证这个链条是完整的、一致的和不可伪造的。每个区块可以存储一定大小的任意内容,例如比特币的区块内存储的是一条条的“交易”。
节点(node):指加入区块链的一个节点,具备计算和存储能力,且通过网络直接或间接连接。每一个节点作为区块链的一个组成部分,运行目标区块链系统的节点进程。每个节点都可以往一个新区块自由写入数据,其它节点如果认可,也就是说该区块被授权,或被多个其它节点同意的话,该区块就会被所有节点永久记录和存储下来,并且不再被修改。新的数据将由新的区块接在其后来存储。
需要说明的是,本发明实施例提供的区块链包括如下功能:
1)具备N个对等的节点,N≥3,且为奇数。且任何一个机构或个人所管理和控制的节点数不超过全部节点数的1/2。节点通过网络互联,节点间通信采用P2P方式。
2)选取适合实际需求的平均区块生成期望时间T,以此决定节点获得新区块写入权的计算证明。并且,根据需要确定设定每个区块的大小(C),该值决定每个区块可容纳的数据量大小。例如,比特币区块链的T值为10分钟,C值为1MB。
3)节点对收到的有效数据,节点会将其按接收时的时间升序暂存在当前的区块中,当前区块位于内存中。当区块即将写满时,节点间会竞争当前区块的永久记账权,也就是写到磁盘中。这里规定:一旦有一半以上的节点接受了上一个区块,那么该区块视为生效,其内所有交易被确认。一个节点接受一个区块的条件是:该节点与自己记录的当前区块内的交易进行对比,认为该区块内的所有交易与自己记录一致、合法。而接受的表现是:该节点在接受的区块后,开始下一个区块。
4)为了确保本区块链系统安全,只有信任的节点可以加入区块链系统,为此要求节点间通信进行加密,并且使用数字签名身份认证机制,即所有节点以私钥对通信消息进行签名,接收方使用其公钥验证,非法的数据会被丢弃。
5)收到数据的每个节点,还要对该交易数据进行校验。如果发现一个交易的前置交易是虚假的,则节点可以拒绝记录该条数据。这与比特币区块链的机制是类似的。
图1为本发明实施例提供的业务数据记录方法的第一种流程图,应用于客户端,该方法包括:
S101,接收当前发起方发送的业务事件请求,其中,上述当前发起方用于根据待处理的业务事件发起业务事件请求,上述业务事件请求包括待处理的业务事件;
在HIS中,无论是由医务人员在客户端、还是外部系统均会通过应用程序接口(API,Application Programming Interface)发送业务事件请求。
S102,根据接收的业务事件请求,对上述业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
需要说明的是,该存储可以存储在分布式存储系统中,也可以存储在HIS自身的数据库中,本发明对此并不限定,其中,分布式存储系统可以理解为将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
在S102之前,该方法还包括:
查询上述当前发起方是否有上述业务事件请求对应的待处理的业务事件,
如果查询到上述当前发起方有上述待处理的业务事件,执行S102的步骤。
可见,本实施方式通过查询上述当前发起方是否有上述业务事件请求对应的待处理的业务事件,以防重复处理该业务事件和其他发起方发送的待处理的业务事件。
S103,获取上述业务数据的目标哈希值;
需要说明的是,上述业务数据的目标哈希值可以在HIS中计算该业务数据的目标哈希值,也可以是在第三方软件中计算目标哈希值,利用第三方软件计算哈希值的实施方式为:
将该业务数据发送到该第三软件中,该第三方软件接收到该业务数据后,执行如下步骤:
获取上述客户端生成的标识号,上述标识号是由患者身份唯一标识和该患者的就诊号生成的唯一号;
从HIS中获取上述业务事件的业务数据;
根据获取的上述标识号和上述业务数据,利用哈希函数计算上述业务数据的目标哈希值。
将该目标哈希值返回到HIS中。
该实施方式利用第三方软件可以减轻HIS的业务处理负担,减少HIS的计算空间,同时通过利用该标识号和该业务数据,计算该业务数据的目标哈希值,保证了目标哈希值的唯一性和不可逆性,同时该目标哈希值表征了原始业务数据的唯一代表信息。
值得一提的是,本步骤将目标哈希值作为目标交易的一个参数存储在目标区块链系统中,避免了业务数据被篡改的行为。
应用于HIS,获取上述业务数据的目标哈希值的方法,包括:
获取上述客户端生成的标识号,上述标识号是由患者身份唯一标识和该患者的就诊号生成的唯一号;
获取上述业务事件的业务数据;
根据获取的上述标识号和上述业务数据,利用哈希函数算法计算上述业务数据的目标哈希值。
可见,本实施方式通过利用该标识号和该业务数据,计算该业务数据的目标哈希值,保证了目标哈希值的唯一性和不可逆性,同时该目标哈希值表征了原始业务数据的唯一代表信息,并将目标哈希值存储在目标区块链系统中,保证了目标哈希值的安全和不可篡改性。
获取上述业务事件的业务数据可以为:获取上述业务事件以XML(eXtensibleMarkup Language)格式定义的业务数据,也可以为:获取上述业务事件以JSON(JavaScriptObject Notation,JS对象标记)格式定义的业务数据。XML格式定义的业务数据简单易于掌握和使用,JSON格式定义的业务数据易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
值得一提的是,利用哈希函数算法计算目标哈希值的表达式可以为:目标哈希值=SHA256(标识号,业务数据),SHA256(·)用于输出哈希值大小为256位的算法,SHA(Secure Hash Algorithm,安全哈希算法)主要适用于数字签名标准里的数字签名算法。
在S103之后或之前,该方法包括:
根据上述业务事件和预设的业务处理流程规则,当上述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,上述第二业务事件为上述业务事件对应的下一个待处理的业务事件。
可见,本实施方式通过设置业务处理流程规则使得快速且有规则的生成第二业务事件对应的业务事件请求对应的接收方,以备后续检查当前发送方的待处理的业务事件是否已存在。
上述业务处理流程规则可以是由点和有向边构成的有向图组成,其中,有向图中的一个点对应一个业务事件。
可见,本实施方式通过设置业务处理流程规则使得快速且有规则的生成下一个业务事件对应的接收方,增加了HIS的业务事件处理速度。
根据上述业务事件和预设的业务处理流程规则,当上述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,包括:
读取预设的有向图,得到上述业务事件对应的点;
根据上述点在预设的有向图中的位置关系,当上述点不是有向图的最后一个点时,生成第二业务事件对应的接收方。
可见,本实施方式通过利用业务事件对应的点在预设的有向图中的位置关系,在该点不是有向图的最后一个点时,得到业务事件的第二业务事件对应的接收方,准确便捷地获得了第二业务事件对应的接收方,提高了HIS系统响应速度。
S104,若上述当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将上述目标哈希值发送到预设的目标区块链系统中,由上述目标区块链系统将上述目标哈希值作为创建的目标交易的参数,并将上述目标交易进行存储,上述存储位置由区块号和交易编码唯一确定,上述第一业务事件为上一个发起方对应的业务事件。
需要说明的是,根据区块链的特性,本发明实施例中业务事件对应业务数据的目标哈希值以作为目标交易的参数存储在目标区块链系统中,可以使得业务数据和下一个业务事件请求不可能被伪造,且该目标交易在目标区块链系统的存储位置均是由其对应存储的区块号和其对应的交易编码唯一确定,可以被作为后续访问存储位置对应的数据,交易编码可以理解为该交易的哈希值;
在S104之后,该方法还包括:
获取上述目标交易在上述目标区块链系统中的存储位置。
可见,本实施方式获取上述目标交易在该目标区块链系统的存储位置是为了下一个发起方发送的业务事件对应的目标交易做准备。
在获取上述目标交易在上述目标区块链系统中的存储位置之前,该方法还包括:
若上述当前发起方是首位发起方,则将上述目标哈希值发送到预设的目标区块链系统中,由上述目标区块链系统将上述目标哈希值作为创建的目标交易的参数,并将上述目标交易进行存储。
可见,本实施方式通过判断当前发起方是首位发起方,调用预设的目标区块链系统存储上述当前发起方对应业务事件的目标交易,并将上述目标交易在目标区块链系统中的存储位置存储在HIS中,以备后续存储下一个目标交易时使用,也防止了业务数据被篡改,为后续对业务数据进行一致性检查时,提供原始的目标哈希值。
将上述目标哈希值发送到预设的目标区块链系统中,由上述目标区块链系统将上述目标哈希值作为创建的目标交易的参数,并将上述目标交易进行存储,包括:
将上述目标哈希值和接收方生成的第二业务事件对应的业务事件请求发送到预设的目标区块链系统中,由上述目标区块链系统将上述目标哈希值和接收方生成的第二业务事件对应的业务事件请求作为创建的目标交易的参数,并将上述目标交易进行存储。
可见,本实施方式将目标哈希值作为目标交易的参数存在目标区块链中,防止业务数据被篡改,将接收方生成的下一个业务事件请求作为目标交易的一个参数存储在目标区块链系统中,为后续检查待处理的业务事件时,提供当前发起方所有的待处理事件。
一种实施方式为:若上述当前发起方是首位发起方,则将上述目标哈希值和接收方生成的第二业务事件对应的业务事件请求发送到预设的目标区块链系统中,由上述目标区块链系统将上述目标哈希值和接收方生成的第二业务事件对应的业务事件请求作为创建的目标交易的参数,并将上述目标交易进行存储。
可见,本实施方式通过判断当前发起方是首位发起方,将下一个业务事件请求即第二业务事件对应的业务事件请求和目标哈希值作为创建的目标交易的参数,并调用预设的目标区块链系统存储上述当前发起方对应业务事件的目标交易,且将上述目标交易在目标区块链系统中的存储位置存储在HIS中,以备后续存储下一个目标交易时使用,为后续检查待处理的业务事件时,提供当前发起方所有的待处理事件。
查询上述当前发起方是否存在上述待处理的业务事件请求对应的业务事件,包括:
接收当前发起方发送的公钥;
根据上述当前发起方发送的公钥,从预设的目标区块链系统中查询所述公钥对应的所有待处理的业务事件的目标交易;
遍历查询到的所有待处理的业务事件的目标交易,得到所述待处理的业务事件,从所有待处理的业务事件中检查所述当前发起方是否有与所述业务事件请求对应的待处理的业务事件。
可见,本实施方式通过从预设的目标区块链系统中查询所述公钥对应的所有待处理的业务事件的交易,检查上述当前发起方是否有与上述业务事件请求对应的待处理的业务事件,以防重复处理该业务事件和其他的发起方发的待处理的业务事件。
在查询上述当前发起方是否有上述业务事件请求对应的待处理的业务事件之后,该方法还包括:
如果从上述当前发起方中未查询到上述待处理的业务事件,输出预设的报警事件,其中,上述报警事件是由未查询到上述待处理的业务事件生成的报警事件。
可见,本实施方式在未查询到上述待处理的业务事件时,通过输出预设的报警事件,提醒用户其发送的该业务事件请求对应的待处理业务事件未存在,以备用户自查。
上述输出预设的报警事件,包括:
通过发送邮件的方式向客户端发送预设的报警事件,用于在上述客户端的显示屏上输出预设的报警事件。
可见,本实施方式通过发送邮件的方式向客户端发送预设的报警事件,以备用户随时都可以阅读该邮件,即使用户忙于其他事件,也不会错过该报警事件。
上述输出预设的报警事件,包括:
展示预设的错误码,以用户检查该错误码对应的错误原因。
可见,本实施方式通过展示预设的错误码,以备用户自查该错误原因,减少了该报警事件的占用空间,也易于用户熟记该错误码对应的错误原因,以备用户快速处理。
上述输出预设的报警事件,包括:
通过弹出对话框的方式向客户端展示预设的报警事件。
可见,本实施方式通过弹出对话框的方式向客户端展示预设的报警事件,以备用户第一时间获知该报警事件,以备用户快速处理。
上述输出预设的报警事件,包括:
通过弹出对话框方式向客户端展示预设的报警事件对应的预设错误码。
需要说明的是,预设错误码是事先定义的,也可以理解为,出现未查询到当前发送方对应该业务事件请求对应的待处理事件,如:将未查询到业务事件请求对应的待处理事件,标定为828,则弹出对话框的内容为828,专业的技术人员便明白错误原因是什么。
可见,本实施方式通过弹出对话框的方式向客户端展示预设的报警事件,以备用户第一时间获知该报警事件,以备用户自查该错误原因,减少了该报警事件的占用空间,也易于用户熟记该错误码对应的错误原因,以备用户快速处理。
在获取目标交易在目标区块链系统中的存储位置之后,该方法还包括:
将第二业务事件对应的业务事件请求和第二业务事件对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行S101步骤。
可见,本实施方式通过循环处理业务事件请求,使该HIS更加自动化,提高了该HIS处理业务事件的效率。
在将第二业务事件对应的业务事件请求和第二业务事件对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行S101步骤之后,该方法还包括:
获取客户端生成的标识号;
获取业务事件的业务数据;
根据获取的标识号和业务数据,利用哈希函数计算业务数据的目标哈希值,记为第一目标哈希值;
根据目标哈希值在目标区块链系统中的存储位置,从目标区块链系统中获取目标哈希值,记为第二目标哈希值;
判断第一目标哈希值和第二目标哈希值是否一致;
若为一致,将该业务事件标定为无篡改;
若为不一致,将该业务事件标定为有篡改。
可见,本实施方式利用获取的标识号和该业务数据,计算第一目标哈希值;判断从目标区块链系统获取的第二目标哈希值和该第一目标哈希值是否一致,以在HIS中以实现在保持数据持久化存储的基础上,保证了数据的一致性,进而提高了客户端业务数据存储的安全性和可靠性。
由此可见,本发明实施例提供的方法通过对当前发起方发送的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值存储在目标区块链系统中,以防止该业务数据被篡改。
本发明实施例提供的业务数据记录方法,应用于目标区块链系统,上述方法包括:
步骤一,当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在目标区块链系统中的存储位置,将目标哈希值发送到目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,将从客户端获取的目标哈希值存储在创建的目标交易的参数中,其中,
目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对业务事件按照业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用业务数据获得的哈希值;业务事件请求包括待处理的业务事件,当前发起方用于根据待处理的业务事件发起业务事件请求。
需要说明的是,当从客户端获取得目标哈希值时,目标区块链系统创建目标交易后并将该目标交易按照时间戳存储。
在步骤一之后,该方法还包括:
当客户端判定当前发起方是首位发起方,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中。
可见,本实施方式通过将获取的业务事件对应的目标交易存储在上述目标区块链系统中,防止了业务数据的目标哈希值被篡改,进而提高了从客户端获得的目标哈希值的安全性和可靠性。
上述接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,具体包括:
接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,其中,
第二业务事件对应的业务事件请求的生成过程为客户端根据业务事件和预设的业务处理流程规则,当业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,第二业务事件为业务事件对应的下一个待处理的业务事件,第一业务事件为上一个发起方对应的业务事件。
可见,本实施方式通过设置业务处理流程规则使得快速且有规则的生成下一个业务事件即第二业务事件对应的接收方,为后续检查待处理的业务事件时,提供当前发起方所有的待处理事件。
在接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中之后,该方法还包括:
将目标哈希值的存储位置发送到客户端中,其中,存储位置由区块号和交易编码唯一确定。
可见,本实施方式通过将目标哈希值的存储位置发送到上述客户端中,以备客户端调用该目标区块系统存储下一个业务事件对应的目标交易。
在接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中之后,该方法还包括:
接收所述客户端发送的目标请求,其中,所述目标请求为获取当前发送方对应的所有待处理业务事情的请求;
从客户端获取当前发起方发送的公钥,发送公钥对应的所有待处理的业务事件到客户端中。
可见,本实施方式通过当前发起方对应的公钥,获知该公钥对应的所有待处理的业务事件,从而防止待处理的业务事件被重复处理。
上述接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,包括:
获取业务事件记录生成程序的签名,作为目标签名,存储目标签名作为创建的第一目标交易的输入脚本;其中,一个目标交易对应一个业务事件,目标交易为第一目标交易或第二目标交易,第一目标交易为交易类型是普通交易对应的交易,普通交易为有前置交易的交易,第一目标交易包括输入脚本、输出脚本,第二目标交易为交易类型是特殊交易对应的交易,特殊交易为无前置交易的交易,第二目标交易包括输出脚本,输入脚本为获取的业务事件记录生成程序的签名,输出脚本包括该业务事件对应的OP_RETURN指令及其OP_RETURN的参数,业务事件记录包括上一业务事件对应的目标哈希值、区块号和交易编号;
获取备注信息,存储所述备注信息作为目标交易输出脚本OP_RETURN的参数,其中,备注信息包括业务事件的目标哈希值和接收方生成的第二业务事件对应的业务事件请求,存储位置由区块号和交易编码唯一确定。
可见,本实施方式通过将存储目标签名作为第一目标交易的输入脚本,存储目标哈希值作为目标交易的输出脚本OP_RETURN的参数中,以固定业务事件内容在区块链中且使其不可篡改。
值得一提的是,上述的备注信息可以仅是目标哈希值也可以仅仅是接收方生成的下一个业务事件请求即第二业务事件对应的业务事件请求。也就是说,当目标交易的参数为目标哈希值或收方生成的下一个业务事件请求时,对从客户端获取的目标交易进行存储的一种实施方式为:
获取业务事件记录生成程序的签名,作为目标签名,存储目标签名作为创建的第一目标交易的输入脚本;
获取备注信息,存储备注信息作为目标交易输出脚本OP_RETURN的参数,其中,备注信息还包括接收方生成的下一个业务事件请求或目标哈希值。
可见,本实施方式通过将存储目标签名作为第一目标交易的输入脚本,存储接收方生成的下一个业务事件请求或目标哈希值作为目标交易的输出脚本OP_RETURN的参数中,以固定接收方生成的下一个业务事件请求或目标哈希值在区块链中且使其不可篡改。
上述获取备注信息,存储备注信息作为创建的目标交易输出脚本OP_RETURN的参数,包括:
判断业务事件对应的创建的目标交易是否存在前置交易;
若存在,判定该业务事件为增量事件,获取备注信息,存储备注信息作为创建的第一目标交易的输出脚本OP_RETURN的参数;
若不存在,判定该业务事件为全量事件,获取备注信息,存储备注信息作为创建的第二目标交易的输出脚本OP_RETURN的参数。
可见,本实施方式通过判定该业务事件为全量事件或增量文件,将目标哈希值永久的保存在目标区块链系统中,防止目标哈希值被篡改,为验证数据的一致性作准备。
由此可见,本发明实施例提供的方法只要从客户端获取到业务事件对应的目标交易便可对其进行存储,防止了业务数据的目标哈希值被篡改,进而提高了从客户端获得的目标哈希值的安全性和可靠性。
图2为本发明实施例提供的业务数据记录方法的第二种流程图,该方法包括:
S201,接收当前发起方发送的业务事件请求,其中,当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件;
其中,S201与图1实施例中的S101执行的方法相同。因此,图1中的所有实施例均适用于图2,且均能达到相同或相似的有益效果,在此不再赘述。
S202,查询当前发起方是否有业务事件请求对应的待处理的业务事件,如果查询到当前发起方有待处理的业务事件,执行S203;如果从当前发起方中未查询到待处理的业务事件,执行S204;
需要说明的是,当查询到当前发送方存在待处理的业务事件,则表明该业务事件还未被处理,因此需对该待处理的业务事件进行处理。
另外,HIS接收业务事件请求后,需检查下该业务事件请求的发起方是否存在了该业务事件需要被处理,以防重复处理该业务事件。
S203,根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
其中,S203与图1实施例中的S102执行的方法相同。因此,图1中的所有实施例均适用于图2,且均能达到相同或相似的有益效果,在此不再赘述。
S204,输出预设的报警事件,其中,报警事件是由未查询到待处理的业务事件生成的报警事件;
需要说明,报警事件是为了用户第一时间获知从当前发起方中未有待处理的业务事件。
S205,获取业务数据的目标哈希值;
其中,S205~S206与图1实施例中的S103~S104执行的方法相同。因此,图1中的所有实施例均适用于图2,且均能达到相同或相似的有益效果,在此不再赘述。
S206,若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储,存储位置由区块号和交易编码唯一确定,第一业务事件为上一个发起方对应的业务事件;
S207,若当前发起方是首位发起方,则将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储;
值得一提的是,若当前发起方是首位发起方意味着当前发起方是第一个发送业务事件请求的,目标区块链系统中还未对该业务事件的目标交易进行存储。
S208,获取目标交易在目标区块链系统中的存储位置;
需要说明的是,该目标交易在目标区块链系统的存储位置均是由其对应存储的区块号和其对应的交易编码唯一确定,可以被作为后续访问存储位置对应的数据,交易编码可以理解为该目标交易的哈希值;
另外,每当一份目标交易被提交到目标区块链系统中存储时,都会得到该目标区块链系统的返回值,该返回值为该目标交易在目标区块链系统中的存储位置。
S209,根据业务事件和预设的业务处理流程规则,当业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求;
其中,接收方是用于生成下一个业务事件请求的候选人,该人非自然人,可以是医院中的科室或部门的客户端。
需要说明的是,该业务事件的下一个业务事件对应的接收方可以是一个也可以是多个,也可以说,接收方个数的多少与业务处理流程规则有关,也就是说,根据业务处理流程,若与上述业务事件对应的点按照有向箭头指示连接下一个点是多少个时,表示下一个业务事件即第二业务事件是多少个,也就是下一个业务事件对应的接收方是多少个。
S210,将第二业务事件对应的业务事件请求和第二业务事件对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行S201步骤。
其中,返回执行S201的步骤可以理解为执行S201~S210的步骤。
由此可见,本发明实施例提供的方法通过对当前发起方查询是否存在有待处理的业务事件,以防止该业务事件被重复处理或其他当前发送方发送的待处理的业务事件,针对存在有待处理的业务事件对其处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值作为创建的目标交易的参数存储在目标区块链系统中,以防止该业务数据被篡改,业务处理流程规则的设置,为选取下一个业务事件即第二业务事件的接收方建立了规则,使得业务事件处理流程井然有序,且提高了HIS的响应速度。
图3为本发明实施例提供的业务数据记录方法的第三种流程图,该方法包括:
S301,接收当前发起方发送的业务事件请求,其中,当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件;
其中,S301与图1实施例中的S101执行的方法相同。因此,图1中的所有实施例均适用于图3,且均能达到相同或相似的有益效果,在此不再赘述。
S302,接收当前发起方发送的公钥;
其中,公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对即一个公钥和一个私钥,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
也就是说,在公钥私钥机制中,公钥是预先生成的,且公之于众的,可以唯一标识一个业务方的身份;只有公钥可以解密私钥加的密文。
S303,根据当前发起方发送的公钥,从预设的目标区块链系统中查询公钥对应的所有待处理的业务事件的目标交易;
需要说明的是,待处理的业务事件相当于目标区块链系统对应存储的一笔目标交易,待处理的业务事件对应的目标交易是其中一个接收方生成的待处理业务事件请求对应的待处理的业务事件,而且这笔交易没有下一比交易,如果有下一笔交易,表明该待处理的业务事件已经处理被处理。
S304,遍历查询到的所有待处理的业务事件的目标交易,得到待处理的业务事件,从所有待处理的业务事件中检查当前发起方是否有与业务事件请求对应的待处理的业务事件;如果查询到当前发起方有待处理的业务事件,执行S305;如果从当前发起方中未查询到待处理的业务事件,执行S306;
基于上述对待处理的业务事件对应目标区块链系统的描述可知,只要遍历目标区块链的目标交易有没有下一个目标交易,就可以知道当前发送方发送的业务事件请求对应的业务事件是否被处理。
S305,根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
其中,S305与图1实施例中的S102执行的方法相同。因此,图1中的所有实施例均适用于图3,且均能达到相同或相似的有益效果,在此不再赘述。
S306,通过发送邮件的方式向客户端发送预设的报警事件,用于在客户端的显示屏上输出预设的报警事件;
需要说明,报警事件可以被记录在邮件中,以邮件的形式被发送到客户端或HIS系统中,以备用户第一时间获知当前发起方中未有待处理的业务事件。
S307,读取预设的有向图,得到业务事件对应的点;
需要说明的是,有向图上的一个点对应一个业务事件,从一个点出发到另一个点的一条“边”,对应完成一个业务事件后可选的下一个待处理的业务事件,点包含如下属性:可以处理该点对应业务事件的下一个业务事件对应的接收方地址即公钥信息。
S308,根据点在预设的有向图中的位置关系,当点不是有向图的最后一个点时,生成第二业务事件对应的接收方;
值得一提的是,当点是有向图的最后一个点时,结束或以邮件的形式发送到用户的客户端,以展示业务事件已经处理完毕。
S309,获取业务数据的目标哈希值;
其中,S309与图1实施例中的S103执行的方法相同。因此,图1中的所有实施例均适用于图3,且均能达到相同或相似的有益效果,在此不再赘述。
S310,若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值和接收方生成的第二业务事件对应的业务事件请求发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值和接收方生成的第二业务事件对应的业务事件请求作为创建的目标交易的参数,并将目标交易进行存储,存储位置由区块号和交易编码唯一确定;
需要说明的是,根据区块链的特性,本发明实施例中业务事件对应业务数据的目标哈希值和接收方生成的下一个业务事件请求作为目标交易的参数存储在目标区块链系统中,可以使得业务数据和下一个业务事件请求不可能被伪造。
S311,若当前发起方是首位发起方,则将目标哈希值和接收方生成的第二业务事件对应的业务事件请求发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值和接收方生成的第二业务事件对应的业务事件请求作为创建的目标交易的参数,并将目标交易进行存储;
值得一提的是,若当前发起方是首位发起方,则意味着当前发起方是第一个发送业务事件请求的,目标区块链系统中还未对该业务事件的目标交易进行存储。
S312,获取目标交易在目标区块链系统中的存储位置;
其中,S312与图2实施例中的S208执行的方法相同。因此,图2中的所有实施例均适用于图3,且均能达到相同或相似的有益效果,在此不再赘述。
S313,将第二业务事件对应的业务事件请求和第二业务事件对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行S301步骤;
其中,返回执行S301的步骤可以理解为执行S301~S313的步骤。
S314,获取客户端生成的标识号;
其中,标识号可以理解为当前事件所属的一个就诊流程的唯一标识,可以是由患者身份唯一标识和该患者的就诊号生成的唯一号,患者身份的唯一标识可以是患者的身份证号。
S315,获取业务事件的业务数据;
需要说明的是,S305已经按照上述业务事件请求对该业务事件进行了处理,因此本步骤获取处理后该业务事件的业务数据。
值得一提的是,该业务数据可以是从该HIS中的数据库获取,也可以是从该业务数据备用在外部系统数据库获取,但是该业务数据所在的数据库也可能已经被篡改,当热也可能未被篡改,因此需要检查该业务数据是否被篡改。
S316,根据获取的标识号和业务数据,利用哈希函数计算业务数据的目标哈希值,记为第一目标哈希值;
值得一提的是,基于上述对业务数据的获取的描述可知,第一目标哈希值可能是已经被篡改后的业务数据获得的,也可能是未被篡改后的业务数据获得的。
S317,根据目标哈希值在目标区块链系统中的存储位置,从目标区块链系统中获取目标哈希值,记为第二目标哈希值;
值得一提的是,该第二目标哈希值就是原始业务数据对应的目标哈希值。
S318,判断第一目标哈希值和第二目标哈希值是否一致;若为一致,执行S319,若为不一致,执行S320;
值得一提的是,若该标识号被篡改了,获取的标识号与原始标识号不一致,则会造成后续生成的第一目标哈希值与第二目标哈希值不一致。
若该业务数据被篡改,获取的业务数据与原始业务数据不一致,因此会造成后续生成的第一目标哈希值与第二目标哈希值不一致。
S319,将该业务事件标定为无篡改;
若第一目标哈希值与第二目标哈希值一致,表示该原始业务数据和标识号均正确。
S320,将该业务事件标定为有篡改。
若第一目标哈希值与第二目标哈希值不一致,表示该原始业务数据或标识号至少有一个是与原始数据不符合。
综上所述,现有的存储方式,即采用多副本方式,或数据备份方式,基本上能够满足持久性要求,但数据一致性上则面临很大的问题,而利用本发明实施提供的方法进行对数据的保存时,即使被篡改后,也能够发现,而且又能长期保存,因此能够解决信息化系统对于数据持久化和一致性检查的要求。
由此可见,本发明实施例提供的方法通过对当前发起方查询是否存在有待处理的业务事件,以防止该业务事件被重复处理或其他当前发送方发送的待处理的业务事件,针对存在有待处理的业务事件对其处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值作为创建的目标交易的参数存储在目标区块链系统中,以防止该业务数据被篡改,有向图的设置,为选取下一个业务事件的接收方建立了规则,不仅使得业务事件处理流程井然有序,而且提高了HIS的响应速度,判断从目标区块链系统获取的第二目标哈希值和从数据库获取的业务数据和标识号计算后的第一目标哈希值是否一致,以在信息化系统中以实现在保持数据持久化存储的基础上,保证了数据的一致性,进而提高了客户端获得的业务数据的安全性和可靠性。
图4为本发明实施例提供的业务数据记录方法的第四种流程图,该方法包括:
S401,获取业务事件记录生成程序的签名,作为目标签名,存储目标签名作为创建的第一目标交易的输入脚本;其中,一个目标交易对应一个业务事件,目标交易为第一目标交易或第二目标交易,第一目标交易为交易类型是普通交易对应的交易,普通交易为有前置交易的交易,第一目标交易包括输入脚本、输出脚本,第二目标交易为交易类型是特殊交易对应的交易,特殊交易为无前置交易的交易,第二目标交易包括输出脚本,输入脚本为获取的业务事件记录生成程序的签名,输出脚本包括该业务事件对应的OP_RETURN指令及其OP_RETURN的参数,业务事件记录包括上一业务事件对应的目标哈希值、区块号和交易编号;
需要说明的是,OP_RETURN指令包含在输出脚本中,可以携带一个参数;
S402,判断业务事件对应的创建的目标交易是否存在前置交易;若存在,执行S403,若不存在,执行S404;
值得一提的是,将第一次处理的业务事件作为全量事件,将非第一次处理的业务事件作为增量事件,将可以根据生成全量事件或增量事件的时间,确定交易类型,因为一个全量事件对应一个生成第一时间,一个增量事件对应一个生成第二时间,根据第一时间和第二时间,可以很容易的辨别该目标交易的交易类型。
另外,一个完整的序列为:T0时刻处理的全量文件、T1时刻处理的第一个增量事件、T2时刻处理的第二个增量事件、……、TN时刻处理的第N个增量事件,T0为首次处理业务事件的时刻,T1、T2、……、TN为处理第一个增量事件、第二个增量事件、……、第N个增量事件对应的时刻,N为增量事件的个数。
该完整的处理业务数据序列对应目标区块链系统交易序列为:T0时刻交易的特殊交易、T1时刻交易的普通交易、T2时刻交易的普通交易、……、TN时刻交易的普通交易,其中,T0时刻交易的特殊交易未有前置交易,因此也未有输入脚本,T1时刻交易的前置交易为特殊交易,该交易对应的输入脚本用于解锁特殊交易,该交易对应的输出脚本包括该增量备份文件的OP_RETURN指令及其OP_RETURN的参数,第二个T1日交易的前置交易为普通交易,该交易对应的输入脚本用于解锁T1时刻对应的普通交易,该交易对应的输出脚本包括该增量备份文件的OP_RETURN指令及其OP_RETURN的参数。
S403,判定该业务事件为增量事件,获取备注信息,存储备注信息作为创建的第一目标交易的输出脚本OP_RETURN的参数;
基于上述对OP_RETURN指令的描述,该携带的参数即为目标哈希值和接收方生成的第二业务事件对应的业务事件请求,通过目标区块链系统存储该目标交易的输出脚本,使得目标哈希值和接收方生成的第二业务事件对应的业务事件请求被存储在区块链中。
基于上述对交易类型的描述,由于增量事件具有前置交易,因此根据上一时刻对应的目标交易的输入脚本,获取该目标交易的前置交易,判定该目标交易是增量事件对应的交易。
基于上述的描述可知,由于全量备份文件无前置交易,因此根据该目标交易无前置交易,判定该交易是增量备份文件。
S404,判定该业务事件为全量事件,获取备注信息,存储该备注信息作为创建的第二目标交易的输出脚本OP_RETURN的参数;
基于上述的描述可知,由于全量事件无前置交易,因此根据该目标交易无前置交易,判定该目标交易是全量事件对应的交易。
S405,将目标哈希值的存储位置发送到客户端中;
本步骤将目标哈希值的存储位置
S406,接收所述客户端发送的目标请求,其中,所述目标请求为获取当前发送方对应的所有待处理业务事情的请求;
S407,从客户端获取当前发起方发送的公钥,发送公钥对应的所有待处理的业务事件到客户端中。
由此可知,本发明实施例提供的方法通过创建目标交易,针对该业务事件是全量事件或增量事件,将该业务事件对应的目标哈希值和接收方生成的下一个业务事件即第二业务事件的业务事件请求保存在目标区块链系统中,防止目标哈希值和接收方生成的下一个业务事件的业务事件请求被篡改,进而提高了客户端获得的业务数据的安全性和可靠性。
与上述业务数据记录方法相对应,本申请实施例还提供了业务数据记录装置。
图5为本发明实施例提供的业务数据记录装置的结构示意图,应用于客户端,该方法包括:
业务事件请求接收模块501,用于接收当前发起方发送的业务事件请求,其中,当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件;
业务事件处理模块502,用于根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
目标哈希值获取模块503,用于获取业务数据的目标哈希值;
第一区块链调用模块504,用于若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储,存储位置由区块号和交易编码唯一确定,第一业务事件为上一个发起方对应的业务事件。
其中,上述目标哈希值获取模块503包括:
第一标识号获取子模块,用于获取客户端生成的标识号,标识号是由患者身份唯一标识和该患者的就诊号生成的唯一号;
第一业务数据获取子模块,用于获取业务事件的业务数据;
目标哈希值计算子模块,用于根据获取的标识号和业务数据,利用哈希函数算法计算业务数据的目标哈希值。
该装置还可以包括:
第一接收方生成模块,用于根据业务事件和预设的业务处理流程规则,当业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,第二业务事件为业务事件对应的下一个待处理的业务事件。
其中,业务处理流程规则包括是由点和有向边构成的有向图组成,其中,有向图中的一个点对应一个业务事件。
上述第一接收方生成模块包括:
点获得子模块,用于读取预设的有向图,得到业务事件对应的点;
第二接收方生成子模块,用于根据点在预设的有向图中的位置关系,当点不是有向图的最后一个点时,生成第二业务事件对应的接收方。
该装置还可以包括:
存储位置获取模块,用于获取目标交易在目标区块链系统中的存储位置。
该装置还可以包括:
第二区块链调用模块,用于若当前发起方是首位发起方,则将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储。
上述第一区块链调用模块604或第二区块链存储模块包括:
第三区块链存储模块,用于将目标哈希值和接收方生成的第二业务事件对应的业务事件请求发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值和接收方生成的第二业务事件对应的业务事件请求作为创建的目标交易的参数,并将目标交易进行存储。
该装置还可以包括:
第一查询模块,用于查询当前发起方是否有业务事件请求对应的待处理的业务事件,如果查询到当前发起方有待处理的业务事件,触发业务事件处理模块。
该装置还可以包括:
新的当前发起方生成模块,用于用于将第二业务事件对应的业务事件请求和第二业务事件对应的接收方分别作为新的业务事件请求和新的当前发起方,触发业务事件请求接收模块。
上述第一查询模块包括:
接收子模块,用于接收当前发起方发送的公钥;
目标交易获取模块,用于根据当前发起方发送的公钥,从预设的目标区块链系统中查询公钥对应的所有待处理的业务事件的目标交易;
待处理的业务事件获得模块,用于遍历查询到的所有待处理的业务事件的目标交易,得到待处理的业务事件,从所有待处理的业务事件中检查当前发起方是否有与业务事件请求对应的待处理的业务事件。
该装置还可以包括:
报警事件输出模块,用于如果从当前发起方中未查询到待处理的业务事件,输出预设的报警事件,其中,报警事件是由未查询到待处理的业务事件生成的报警事件。
上述报警事件输出模块包括:
第一报警事件输出子模块,用于通过发送邮件的方式向客户端发送预设的报警事件,用于在客户端的显示屏上输出预设的报警事件。
上述报警事件输出模块包括:
第二报警事件输出子模块,用于通过弹出对话框方式向客户端展示预设的报警事件对应的预设错误码。
该装置还可以包括:
第二标识号获取子模块,用于获取客户端生成的标识号;
第二业务数据获取子模块,用于获取业务事件的业务数据;
第一目标哈希值计算子模块,用于根据获取的标识号和业务数据,利用哈希函数计算业务数据的目标哈希值,记为第一目标哈希值;
第二目标哈希值获取模块,用于根据目标哈希值在目标区块链系统中的存储位置,从目标区块链系统中获取目标哈希值,记为第二目标哈希值;
判断模块,用于判断第一目标哈希值和第二目标哈希值是否一致;若为一致,触发第一标定模块,若为不一致,触发第二标定模块;
第一标定模块,用于将该业务事件标定为无篡改;
第二标定模块,用于将该业务事件标定为有篡改。
由此可见,本发明实施例提供的装置通过对当前发起方发送的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值存储在目标区块链系统中,以防止该业务数据被篡改。
本发明实施例提供的业务数据记录装置,应用于目标区块链系统,该装置包括:
第一接收模块,用于当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在目标区块链系统中的存储位置,将目标哈希值发送到目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对业务事件按照业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用业务数据获得的哈希值;当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件,第一业务事件为上一个发起方对应的业务事件。
其中,该装置还包括:
第二接收模块,用于当客户端判定当前发起方是首位发起方,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中。
上述第一接收模块包括:
第二接收子模块,用于接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,其中,
所述第二业务事件对应的业务事件请求的生成过程为客户端根据业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,所述第二业务事件为所述业务事件对应的下一个待处理的业务事件。
上述第二接收模块包括:
第三接收子模块,用于接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,其中,
所述第二业务事件对应的业务事件请求的生成过程为客户端根据业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,所述第二业务事件为所述业务事件对应的下一个待处理的业务事件。
该装置还包括:
第三发送模块,用于将目标交易的存储位置发送到所述客户端中,其中,所述存储位置由区块号和交易编码唯一确定。
该装置还包括:
第四发送模块,用于将目标交易的存储位置发送到所述客户端中,其中,所述存储位置由区块号和交易编码唯一确定。
该装置还包括:
目标请求接收模块,用于接收所述客户端发送的目标请求,其中,所述目标请求为获取当前发送方对应的所有待处理业务事情的请求;
第五发送模块,用于从所述客户端获取所述当前发起方发送的公钥,发送所述公钥对应的所有待处理的业务事件到所述客户端中。
该第一接收模块包括:
第一获取子模块,用于获取业务事件记录生成程序的签名,作为目标签名,存储所述目标签名作为创建的第一目标交易的输入脚本;其中,一个目标交易对应一个业务事件,所述目标交易为第一目标交易或第二目标交易,所述第一目标交易为交易类型是普通交易对应的交易,所述普通交易为有前置交易的交易,所述第一目标交易包括输入脚本、输出脚本,所述第二目标交易为交易类型是特殊交易对应的交易,所述特殊交易为无前置交易的交易,所述第二目标交易包括输出脚本,所述输入脚本为获取的业务事件记录生成程序的签名,所述输出脚本包括该业务事件对应的OP_RETURN指令及其OP_RETURN的参数,所述业务事件记录包括上一业务事件对应的目标哈希值、区块号和交易编号;
第二获取子模块,用于获取备注信息,存储所述备注信息作为目标交易输出脚本OP_RETURN的参数,其中,所述备注信息包括业务事件的目标哈希值和接收方生成的第二业务事件对应的业务事件请求,所述存储位置由区块号和交易编码唯一确定。
上述第二获取子模块包括:
第二判断单元,用于判断业务事件对应的创建的目标交易是否存在前置交易;若存在,触发第三判定单元,若不存在,触发第四判定单元;
第三判定单元,用于判定该业务事件为增量事件,获取备注信息,存储所述备注信息作为创建的第一目标交易的输出脚本OP_RETURN的参数;
第四判定单元,用于判定该业务事件为全量事件,获取备注信息,存储所述备注信息作为创建的第二目标交易的输出脚本OP_RETURN的参数。
由此可见,本发明实施例提供的装置只要从客户端获取到业务事件对应的目标交易便可对其进行存储,防止了业务数据的目标哈希值被篡改,进而提高了从客户端获得的目标哈希值的安全性和可靠性。
本发明实施例还提供了一种电子设备,包括处理器和机器可读存储介质,上述机器可读存储介质存储有能够被上述处理器执行的机器可执行指令,上述处理器被上述机器可执行指令促使:实现本发明实施例提供的两种业务数据记录方法。
具体的,业务数据记录方法,包括:
接收当前发起方发送的业务事件请求,其中,当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件;
根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
获取业务数据的目标哈希值;
若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储,存储位置由区块号和交易编码唯一确定,第一业务事件为上一个发起方对应的业务事件。
由此可知,执行本实施例提供的电子设备,通过对当前发起方发送的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值存储在目标区块链系统中,以防止该业务数据被篡改。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
第二种业务数据记录方法,包括:
当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在目标区块链系统中的存储位置,将目标哈希值发送到目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对业务事件按照业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用业务数据获得的哈希值;当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件,第一业务事件为上一个发起方对应的业务事件。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
由此可知,执行本实施例提供的电子设备,通过只要从客户端获取到业务事件对应的目标交易便可对其进行存储,防止了业务数据的目标哈希值被篡改,进而提高了从客户端获得的目标哈希值的安全性和可靠性。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
本发明实施例还提供了又一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现本发明实施例提供的两种业务数据记录方法。
具体的,业务数据记录方法,包括:
接收当前发起方发送的业务事件请求,其中,当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件;
根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
获取业务数据的目标哈希值;
若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储,存储位置由区块号和交易编码唯一确定,第一业务事件为上一个发起方对应的业务事件。
由此可知,执行本实施例提供的电子设备,通过对当前发起方发送的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值存储在目标区块链系统中,以防止该业务数据被篡改。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
第二种业务数据记录方法,包括:
当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在目标区块链系统中的存储位置,将目标哈希值发送到目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对业务事件按照业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用业务数据获得的哈希值;当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件,第一业务事件为上一个发起方对应的业务事件。
由此可知,执行本实施例提供的电子设备,通过只要从客户端获取到业务事件对应的目标交易便可对其进行存储,防止了业务数据的目标哈希值被篡改,进而提高了从客户端获得的目标哈希值的安全性和可靠性。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述本发明实施例提供的两种业务数据记录方法。
具体的,业务数据记录方法,包括:
接收当前发起方发送的业务事件请求,其中,当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件;
根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
获取业务数据的目标哈希值;
若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储,存储位置由区块号和交易编码唯一确定,第一业务事件为上一个发起方对应的业务事件。
由此可知,执行本实施例提供的计算机可读存储介质中存储的应用程序时,通过对当前发起方发送的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值存储在目标区块链系统中,以防止该业务数据被篡改。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
第二种业务数据记录方法,包括:
当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在目标区块链系统中的存储位置,将目标哈希值发送到目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对业务事件按照业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用业务数据获得的哈希值;当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件,第一业务事件为上一个发起方对应的业务事件。
由此可知,执行本实施例提供的计算机可读存储介质中存储的应用程序时,通过只要从客户端获取到业务事件对应的目标交易便可对其进行存储,防止了业务数据的目标哈希值被篡改,进而提高了从客户端获得的目标哈希值的安全性和可靠性。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述本发明实施例提供的两种业务数据记录方法。
具体的,业务数据记录方法,包括:
接收当前发起方发送的业务事件请求,其中,当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件;
根据接收的业务事件请求,对业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
获取业务数据的目标哈希值;
若当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将目标哈希值发送到预设的目标区块链系统中,由目标区块链系统将目标哈希值作为创建的目标交易的参数,并将目标交易进行存储,存储位置由区块号和交易编码唯一确定,第一业务事件为上一个发起方对应的业务事件。
由此可知,执行本实施例提供的计算机程序产品时,通过对当前发起方发送的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中,以用于业务数据得到持续化保存,将获取的业务数据的目标哈希值存储在目标区块链系统中,以防止该业务数据被篡改。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
第二种业务数据记录方法,包括:
当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在目标区块链系统中的存储位置,将目标哈希值发送到目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对业务事件按照业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用业务数据获得的哈希值;当前发起方用于根据待处理的业务事件发起业务事件请求,业务事件请求包括待处理的业务事件,第一业务事件为上一个发起方对应的业务事件。
由此可知,执行本实施例提供的计算机程序产品时,通过只要从客户端获取到业务事件对应的目标交易便可对其进行存储,防止了业务数据的目标哈希值被篡改,进而提高了从客户端获得的目标哈希值的安全性和可靠性。
上述的相关业务数据记录方法的实施方式与前述方法实施例部分提供的记录业务数据方式相同,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、计算机可读存储介质、计算机程序产品、设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (28)
1.业务数据记录方法,其特征在于,应用于客户端,所述方法包括:
接收当前发起方发送的业务事件请求,其中,所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件;
根据接收的业务事件请求,对所述业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
获取所述业务数据的目标哈希值;
若所述当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储,所述存储位置由区块号和交易编码唯一确定,所述第一业务事件为上一个发起方对应的业务事件。
2.如权利要求1所述的方法,其特征在于,所述获取所述业务数据的目标哈希值,包括:
获取所述客户端生成的标识号,所述标识号是由患者身份唯一标识和该患者的就诊号生成的唯一号;
获取所述业务事件的业务数据;
根据获取的所述标识号和所述业务数据,利用哈希函数算法计算所述业务数据的目标哈希值。
3.如权利要求1所述的方法,其特征在于,在所述获取所述业务数据的目标哈希值之前或之后,所述方法还包括:
根据所述业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,所述第二业务事件为所述业务事件对应的下一个待处理的业务事件。
4.如权利要求3所述的方法,其特征在于,所述业务处理流程规则是由点和有向边构成的有向图组成,其中,有向图中的一个点对应一个业务事件。
5.如权利要求4所述的方法,其特征在于,所述根据所述业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,包括:
读取预设的有向图,得到所述业务事件对应的点;
根据所述点在预设的有向图中的位置关系,当所述点不是有向图的最后一个点时,生成第二业务事件对应的接收方。
6.如权利要求5所述的方法,其特征在于,在所述根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,则将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储之后,所述方法还包括:
获取所述目标交易在所述目标区块链系统中的存储位置。
7.如权利要求6所述的方法,其特征在于,在所述获取所述目标交易在所述目标区块链系统中的存储位置之前,所述方法还包括:
若所述当前发起方是首位发起方,则将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储。
8.如权利要求1或7所述的方法,其特征在于,所述将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储,包括:
将所述目标哈希值和接收方生成的第二业务事件对应的业务事件请求发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值和接收方生成的第二业务事件对应的业务事件请求作为创建的目标交易的参数,并将所述目标交易进行存储。
9.如权利要求8所述的方法,其特征在于,在所述对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中之前,所述方法还包括:
查询所述当前发起方是否有所述业务事件请求对应的待处理的业务事件;
如果查询到所述当前发起方有所述待处理的业务事件,执行所述根据接收的业务事件请求,对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中的步骤。
10.如权利要求9所述的方法,其特征在于,在所述获取所述目标交易在所述目标区块链系统中的存储位置之后,所述方法还包括:
将所述第二业务事件对应的业务事件请求和所述第二业务事件对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行接收当前发起方发送的业务事件请求步骤。
11.如权利要求10所述的方法,其特征在于,所述查询所述当前发起方是否存在所述待处理的业务事件请求对应的业务事件,包括:
接收当前发起方发送的公钥;
根据所述当前发起方发送的公钥,从预设的目标区块链系统中查询所述公钥对应的所有待处理的业务事件的目标交易;
遍历查询到的所有待处理的业务事件的目标交易,得到所述待处理的业务事件,从所有待处理的业务事件中检查所述当前发起方是否有与所述业务事件请求对应的待处理的业务事件。
12.如权利要求11所述的方法,其特征在于,在所述查询所述当前发起方是否存在所述待处理的业务事件请求对应的业务事件之后,所述方法还包括:
如果从所述当前发起方中未查询到所述待处理的业务事件,输出预设的报警事件,其中,所述报警事件是由未查询到所述待处理的业务事件生成的报警事件。
13.如权利要求12所述的方法,其特征在于,所述输出预设的报警事件,包括:
通过发送邮件的方式向客户端发送预设的报警事件,用于在所述客户端的显示屏上输出预设的报警事件。
14.如权利要求12所述的方法,其特征在于,所述输出预设的报警事件,包括:
通过弹出对话框方式向客户端展示预设的报警事件对应的预设错误码。
15.如权利要求11~14中任一项所述的方法,其特征在于,在所述将所述第二业务事件对应的业务事件请求和所述第二业务事件对应的业务事件请求对应的接收方分别作为新的业务事件请求和新的当前发起方,返回执行接收当前发起方发送的业务事件请求步骤之后,所述方法还包括:
获取所述客户端生成的标识号;
获取所述业务事件的业务数据;
根据获取的所述标识号和所述业务数据,利用哈希函数计算所述业务数据的目标哈希值,记为第一目标哈希值;
根据所述目标哈希值在所述目标区块链系统中的存储位置,从所述目标区块链系统中获取所述目标哈希值,记为第二目标哈希值;
判断所述第一目标哈希值和所述第二目标哈希值是否一致;
若为一致,将所述业务事件标定为无篡改;
若为不一致,将所述业务事件标定为有篡改。
16.业务数据记录方法,其特征在于,应用于目标区块链系统,所述方法包括:
当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在所述目标区块链系统中的存储位置,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
所述目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用所述业务数据获得的哈希值;所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件,所述第一业务事件为上一个发起方对应的业务事件。
17.如权利要求16所述的方法,其特征在于,在所述当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在所述目标区块链系统中的存储位置,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中之前或之后,所述方法还包括:
当客户端判定当前发起方是首位发起方,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中。
18.如权利要求16~17中任一项所述的方法,其特征在于,所述接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,包括:
接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,其中,
所述第二业务事件对应的业务事件请求的生成过程为客户端根据业务事件和预设的业务处理流程规则,当所述业务事件不是业务处理流程规则的最后一个业务事件时,生成第二业务事件对应的接收方,以生成第二业务事件对应的业务事件请求,所述第二业务事件为所述业务事件对应的下一个待处理的业务事件。
19.如权利要求18所述的方法,其特征在于,在所述接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中之后,所述方法还包括:
将目标交易的存储位置发送到所述客户端中,其中,所述存储位置由区块号和交易编码唯一确定。
20.如权利要求19所述的方法,其特征在于,在所述接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中之后,所述方法还包括:
接收所述客户端发送的目标请求,其中,所述目标请求为获取当前发送方对应的所有待处理业务事情的请求;
从所述客户端获取所述当前发起方发送的公钥,发送所述公钥对应的所有待处理的业务事件到所述客户端中。
21.如权利要求20所述的方法,其特征在于,所述接收从客户端获取的目标哈希值和接收方生成的第二业务事件对应的业务事件请求并存储在创建的目标交易的参数中,包括:
获取业务事件记录生成程序的签名,作为目标签名,存储所述目标签名作为创建的第一目标交易的输入脚本;其中,一个目标交易对应一个业务事件,所述目标交易为第一目标交易或第二目标交易,所述第一目标交易为交易类型是普通交易对应的交易,所述普通交易为有前置交易的交易,所述第一目标交易包括输入脚本、输出脚本,所述第二目标交易为交易类型是特殊交易对应的交易,所述特殊交易为无前置交易的交易,所述第二目标交易包括输出脚本,所述输入脚本为获取的业务事件记录生成程序的签名,所述输出脚本包括该业务事件对应的OP_RETURN指令及其OP_RETURN的参数,所述业务事件记录包括上一业务事件对应的目标哈希值、区块号和交易编号;
获取备注信息,存储所述备注信息作为目标交易输出脚本OP_RETURN的参数,其中,所述备注信息包括业务事件的目标哈希值和接收方生成的第二业务事件对应的业务事件请求,所述存储位置由区块号和交易编码唯一确定。
22.如权利要求21所述的方法,其特征在于,所述获取备注信息,存储所述备注信息作为创建的目标交易输出脚本OP_RETURN的参数,包括:
判断业务事件对应的创建的目标交易是否存在前置交易;
若存在,判定所述业务事件为增量事件,获取备注信息,存储所述备注信息作为创建的第一目标交易的输出脚本OP_RETURN的参数;
若不存在,判定所述业务事件为全量事件,获取备注信息,存储所述备注信息作为创建的第二目标交易的输出脚本OP_RETURN的参数。
23.业务数据记录装置,其特征在于,应用于客户端,所述装置包括:
业务事件请求接收模块,用于接收当前发起方发送的业务事件请求,其中,所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件;
业务事件处理模块,用于根据接收的业务事件请求,对所述业务事件请求对应的待处理的业务事件进行处理,得到处理后的业务数据并存储在预设的数据库中;
目标哈希值获取模块,用于获取所述业务数据的目标哈希值;
第一区块链调用模块,用于若所述当前发起方不是首位发起方,则根据获取的第一业务事件的目标交易在预设的目标区块链系统中的存储位置,将所述目标哈希值发送到预设的目标区块链系统中,由所述目标区块链系统将所述目标哈希值作为创建的目标交易的参数,并将所述目标交易进行存储,所述存储位置由区块号和交易编码唯一确定,所述第一业务事件为上一个发起方对应的业务事件。
24.业务数据记录装置,其特征在于,应用于目标区块链系统,所述装置包括:
第一接收模块,用于当客户端判定当前发起方不是首位发起方,根据获取的第一业务事件的目标交易在所述目标区块链系统中的存储位置,将所述目标哈希值发送到所述目标区块链系统中时,接收从客户端获取的目标哈希值并存储在创建的目标交易的参数中,其中,
所述目标哈希值为客户端根据接收的当前发起方发送的待处理的业务事件请求,对所述业务事件按照所述业务事件请求进行处理,得到处理后的业务数据并存储在预设的数据库中,利用所述业务数据获得的哈希值;所述当前发起方用于根据待处理的业务事件发起业务事件请求,所述业务事件请求包括待处理的业务事件,所述第一业务事件为上一个发起方对应的业务事件。
25.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1~15任一所述的方法步骤。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~15任一所述的方法步骤。
27.一种电子设备,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求16~21任一所述的方法步骤。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求16~21任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711423467.7A CN108573741A (zh) | 2017-12-25 | 2017-12-25 | 业务数据记录方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711423467.7A CN108573741A (zh) | 2017-12-25 | 2017-12-25 | 业务数据记录方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108573741A true CN108573741A (zh) | 2018-09-25 |
Family
ID=63575889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711423467.7A Pending CN108573741A (zh) | 2017-12-25 | 2017-12-25 | 业务数据记录方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108573741A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327312A (zh) * | 2018-10-26 | 2019-02-12 | 阿里巴巴集团控股有限公司 | 认证方法及装置、电子设备 |
CN109377230A (zh) * | 2018-12-11 | 2019-02-22 | 四川大学 | 一种基于有向图的智能合约在区块链中实现的方法及装置 |
CN109597822A (zh) * | 2018-11-28 | 2019-04-09 | 中国联合网络通信集团有限公司 | 一种用户数据的存储及查询方法和用户数据处理装置 |
CN110099108A (zh) * | 2019-04-26 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 一种区块链事件去重方法、装置、计算机设备及存储介质 |
CN110138723A (zh) * | 2019-03-25 | 2019-08-16 | 中国科学院信息工程研究所 | 一种邮件网络中恶意社区的确定方法及系统 |
CN110516463A (zh) * | 2019-09-02 | 2019-11-29 | 北京海益同展信息科技有限公司 | 用于生成信息的方法和装置 |
CN110598463A (zh) * | 2019-04-19 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的信息处理方法、装置和计算机可读存储介质 |
WO2020228292A1 (zh) * | 2019-05-13 | 2020-11-19 | 平安科技(深圳)有限公司 | 数据提交请求的处理方法、装置和计算机设备 |
WO2020232885A1 (zh) * | 2019-05-22 | 2020-11-26 | 平安科技(深圳)有限公司 | 数据入链事务处理方法、装置、计算机设备及存储介质 |
WO2021068726A1 (zh) * | 2019-10-08 | 2021-04-15 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
CN113392144A (zh) * | 2021-08-18 | 2021-09-14 | 北京邮电大学 | 基于区块链的博物馆业务数据存储、查询方法及系统 |
CN113610315A (zh) * | 2021-08-16 | 2021-11-05 | 傲林科技有限公司 | 一种基于事件网的预测方法、装置及电子设备 |
CN113793087A (zh) * | 2021-02-26 | 2021-12-14 | 北京京东振世信息技术有限公司 | 用于分拣物品的方法和装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404050A (zh) * | 2008-11-25 | 2009-04-08 | 中国网络通信集团公司 | 协同医疗业务关联方法和协同医疗业务关联系统 |
CN104735164A (zh) * | 2015-04-10 | 2015-06-24 | 网易(杭州)网络有限公司 | 一种保存文件信息的方法和装置 |
CN106230851A (zh) * | 2016-08-29 | 2016-12-14 | 中金云金融(北京)大数据科技股份有限公司 | 基于区块链的数据保全方法及系统 |
CN106354994A (zh) * | 2016-08-22 | 2017-01-25 | 布比(北京)网络技术有限公司 | 处理医疗数据的方法及系统 |
CN106682984A (zh) * | 2016-10-27 | 2017-05-17 | 上海亿账通区块链科技有限公司 | 基于区块链的交易事务处理方法及系统 |
CN107291862A (zh) * | 2017-06-12 | 2017-10-24 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质及电子设备 |
CN107315786A (zh) * | 2017-06-12 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 业务数据存储方法及装置 |
WO2017195160A1 (en) * | 2016-05-13 | 2017-11-16 | nChain Holdings Limited | A method and system for verifying integrity of a digital asset using a distributed hash table and a peer-to-peer distributed ledger |
CN107368750A (zh) * | 2017-06-23 | 2017-11-21 | 雷虹 | 基于区块链的电子病历的实现方法及装置 |
CN107395360A (zh) * | 2017-07-23 | 2017-11-24 | 刘志强 | 一种基于区块链技术的文物及艺术品数字存证的方法 |
-
2017
- 2017-12-25 CN CN201711423467.7A patent/CN108573741A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404050A (zh) * | 2008-11-25 | 2009-04-08 | 中国网络通信集团公司 | 协同医疗业务关联方法和协同医疗业务关联系统 |
CN104735164A (zh) * | 2015-04-10 | 2015-06-24 | 网易(杭州)网络有限公司 | 一种保存文件信息的方法和装置 |
WO2017195160A1 (en) * | 2016-05-13 | 2017-11-16 | nChain Holdings Limited | A method and system for verifying integrity of a digital asset using a distributed hash table and a peer-to-peer distributed ledger |
CN106354994A (zh) * | 2016-08-22 | 2017-01-25 | 布比(北京)网络技术有限公司 | 处理医疗数据的方法及系统 |
CN106230851A (zh) * | 2016-08-29 | 2016-12-14 | 中金云金融(北京)大数据科技股份有限公司 | 基于区块链的数据保全方法及系统 |
CN106682984A (zh) * | 2016-10-27 | 2017-05-17 | 上海亿账通区块链科技有限公司 | 基于区块链的交易事务处理方法及系统 |
CN107291862A (zh) * | 2017-06-12 | 2017-10-24 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质及电子设备 |
CN107315786A (zh) * | 2017-06-12 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 业务数据存储方法及装置 |
CN107368750A (zh) * | 2017-06-23 | 2017-11-21 | 雷虹 | 基于区块链的电子病历的实现方法及装置 |
CN107395360A (zh) * | 2017-07-23 | 2017-11-24 | 刘志强 | 一种基于区块链技术的文物及艺术品数字存证的方法 |
Non-Patent Citations (1)
Title |
---|
陈东敏 等编著: "《青岛"链湾"区块链系列丛书 区块链技术原理及底层架构》", 31 May 2017, 北京:北京航空航天大学出版社 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327312A (zh) * | 2018-10-26 | 2019-02-12 | 阿里巴巴集团控股有限公司 | 认证方法及装置、电子设备 |
CN109327312B (zh) * | 2018-10-26 | 2020-03-24 | 阿里巴巴集团控股有限公司 | 认证方法及装置、电子设备 |
CN109597822A (zh) * | 2018-11-28 | 2019-04-09 | 中国联合网络通信集团有限公司 | 一种用户数据的存储及查询方法和用户数据处理装置 |
CN109597822B (zh) * | 2018-11-28 | 2021-02-23 | 中国联合网络通信集团有限公司 | 一种用户数据的存储及查询方法和用户数据处理装置 |
CN109377230A (zh) * | 2018-12-11 | 2019-02-22 | 四川大学 | 一种基于有向图的智能合约在区块链中实现的方法及装置 |
CN110138723A (zh) * | 2019-03-25 | 2019-08-16 | 中国科学院信息工程研究所 | 一种邮件网络中恶意社区的确定方法及系统 |
CN110138723B (zh) * | 2019-03-25 | 2020-05-12 | 中国科学院信息工程研究所 | 一种邮件网络中恶意社区的确定方法及系统 |
CN110598463A (zh) * | 2019-04-19 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的信息处理方法、装置和计算机可读存储介质 |
CN110099108B (zh) * | 2019-04-26 | 2022-04-01 | 深圳前海微众银行股份有限公司 | 一种区块链事件去重方法、装置、计算机设备及存储介质 |
CN110099108A (zh) * | 2019-04-26 | 2019-08-06 | 深圳前海微众银行股份有限公司 | 一种区块链事件去重方法、装置、计算机设备及存储介质 |
WO2020228292A1 (zh) * | 2019-05-13 | 2020-11-19 | 平安科技(深圳)有限公司 | 数据提交请求的处理方法、装置和计算机设备 |
WO2020232885A1 (zh) * | 2019-05-22 | 2020-11-26 | 平安科技(深圳)有限公司 | 数据入链事务处理方法、装置、计算机设备及存储介质 |
CN110516463A (zh) * | 2019-09-02 | 2019-11-29 | 北京海益同展信息科技有限公司 | 用于生成信息的方法和装置 |
CN110516463B (zh) * | 2019-09-02 | 2021-03-05 | 北京海益同展信息科技有限公司 | 用于生成信息的方法和装置 |
WO2021068726A1 (zh) * | 2019-10-08 | 2021-04-15 | 深圳前海微众银行股份有限公司 | 一种区块链中的交易哈希值存储和搜索方法及装置 |
CN113793087A (zh) * | 2021-02-26 | 2021-12-14 | 北京京东振世信息技术有限公司 | 用于分拣物品的方法和装置 |
CN113793087B (zh) * | 2021-02-26 | 2024-04-16 | 北京京东振世信息技术有限公司 | 用于分拣物品的方法和装置 |
CN113610315A (zh) * | 2021-08-16 | 2021-11-05 | 傲林科技有限公司 | 一种基于事件网的预测方法、装置及电子设备 |
CN113610315B (zh) * | 2021-08-16 | 2023-10-13 | 傲林科技有限公司 | 一种基于事件网的预测方法、装置及电子设备 |
CN113392144A (zh) * | 2021-08-18 | 2021-09-14 | 北京邮电大学 | 基于区块链的博物馆业务数据存储、查询方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108573741A (zh) | 业务数据记录方法、装置、设备和存储介质 | |
US11386985B2 (en) | Healthcare transaction validation via blockchain systems and methods | |
Saha et al. | Review on “Blockchain technology based medical healthcare system with privacy issues” | |
US10218687B2 (en) | Differential client-side encryption of information originating from a client | |
CN111316278B (zh) | 安全身份和档案管理系统 | |
US10282558B2 (en) | System and method for maintaining a segregated database in a multiple distributed ledger system | |
WO2020103566A1 (zh) | 一种区块链存证方法、装置和计算机设备 | |
US20160342977A1 (en) | Device, method and system for virtual asset transactions | |
US8495384B1 (en) | Data comparison system | |
US20200090795A1 (en) | Method and system for sharing privacy data based on smart contracts | |
US11270029B2 (en) | Data check methods, apparatuses, and devices | |
Al Omar et al. | A transparent and privacy-preserving healthcare platform with novel smart contract for smart cities | |
US20190392407A1 (en) | Encrypted asset transfer system and method for facilitating transfer of digital assets | |
US11503026B2 (en) | Email address with identity string and methods of use | |
JP2018520447A (ja) | トークン化のためのシステムおよび方法 | |
CN112804218A (zh) | 基于区块链的数据处理方法、装置、设备及储存介质 | |
US20230259899A1 (en) | Method, participant unit, transaction register and payment system for managing transaction data sets | |
KR20200124121A (ko) | 간편하고 안전한 마이데이터이동 인증방법 | |
US20220138760A1 (en) | Dynamic Ledger Address Masking | |
KR102086234B1 (ko) | 블록체인을 가지는 가상화폐 거래시스템 | |
JP2020106927A (ja) | 情報処理システム、情報処理プログラム、情報処理方法及び情報処理装置 | |
WO2023074878A1 (ja) | 情報処理システム | |
Charanya et al. | Design of Secure Ehealth System Through Temporal Shadow using Blockchain | |
CN113689601B (zh) | 基于区块链的通行验证方法、装置、电子设备及存储介质 | |
US20230419302A1 (en) | Api for incremental and periodic crypto asset transfer |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180925 |
|
RJ01 | Rejection of invention patent application after publication |