本申请适用于计算机技术领域,提出一种区块链的数据上链方法、装置、存储介质和服务器。该数据上链方法包括:通过第一线程获取客户端发送的携带有待上链数据的数据上链请求,将所述待上链数据更新到预先构建的数据库中,并返回数据上链的受理信息至所述客户端;通过第二线程定时读取所述数据库,检测所述数据库中出现更新的数据,并将所述出现更新的数据批量写入区块链。由于数据上链的操作在不同的线程中异步执行,在异步上链模式下交易处理能力不依赖于区块链的处理能力,而是取决于数据库的处理能力,因此交易处理效率可以显著得到提升。
A data link method, device, storage medium and server of blockchain
【技术实现步骤摘要】
一种区块链的数据上链方法、装置、存储介质和服务器
本申请属于计算机
,尤其涉及一种区块链的数据上链方法、装置、存储介质和服务器。
技术介绍
向区块链写入数据的过程,称为数据上链过程。基于区块链的特性,向区块链写入数据需分为提案、共识、记账等多个过程,故区块链的数据写入速度相比关系型数据库一般要慢很多。随着区块链对交易处理效率的要求提高,如何提高区块链的数据写入速度,成为技术人员函待解决的问题。
技术实现思路
本申请实施例提供了一种区块链的数据上链方法、装置、存储介质和服务器,可以提高区块链的数据写入速度。第一方面,本申请实施例提供了一种区块链的数据上链方法,包括:通过第一线程获取客户端发送的携带有待上链数据的数据上链请求,将所述待上链数据更新到预先构建的数据库中,并返回数据上链的受理信息至所述客户端;通过第二线程定时读取所述数据库,检测所述数据库中出现更新的数据,并将所述出现更新的数据批量写入区块链。该数据库相当于在区块链存储之上额外增加的一个速度更快的数据缓冲层,在将数据写入区块链时,首先将数据更新到该数据缓冲层中,与此同时采用不同的线程定时检测该数据缓冲层中出现更新的数据,将出现更新的数据批量写入区块链。这是一种将数据上链操作分解于不同的线程中异步执行的方式,与传统的同步数据上链方式相比,能够显著提高区块链的数据写入速度。在第一方面的一种可能的实现方式中,在将所述待上链数据更新到预先构建的数据库中之后,还可以包括:为所述待上链数据分配一个上链状态标记位,并将所述上链状态标记位初始化为第一数值;相应的,在通过所述第二线程将所述待上链数据写入区块链之后,还可以包括:将所述上链状态标记位由所述第一数值变更为第二数值。通过为待上链数据分配一个上链状态标记位,服务器可以通过该标记位清楚地区分数据库中哪些数据未写入区块链,哪些数据已写入区块链。而且,在为所述待上链数据分配一个上链状态标记位之后,还可以包括:当检测到所述客户端发送的上链进度查询请求时,读取所述上链状态标记位;若读取到的所述上链状态标记位为第一数值,则返回数据上链未完成的指示信息至所述客户端;若读取到的所述上链状态标记位为第二数值,则返回数据上链已完成的指示信息至所述客户端。用户可于客户端发送上链进度查询请求,服务器会根据待上链数据的上链状态标记位的数值返回相应的指示信息至该客户端,便于用户了解数据上链操作是否已完成。另外,服务器也可以定时自动检测该待上链数据的上链状态标记位的数值,若检测到该数值为第二数值,则主动发送数据上链已完成的信息至该客户端。在第一方面的一种可能的实现方式中,所述通过第二线程定时读取所述数据库,检测所述数据库中出现更新的数据,并将所述出现更新的数据批量写入区块链可以包括:通过所述第二线程定时读取所述数据库中上链状态标记位为第一数值的目标数据,将所述目标数据写入区块链,并在所述目标数据写入区块链成功之后将所述目标数据的上链状态标记位变更为第二数值。服务器会定时读取所述数据库中上链状态标记位为第一数值的数据,这部分数据是需要写入区块链的数据;在将这部分数据写入区块链成功之后,服务器会将这部分数据的上链状态标记位变更为第二数值,表示这部分数据已上链。进一步的,所述将所述目标数据写入区块链,并在所述目标数据写入区块链成功之后将所述目标数据的上链状态标记位变更为第二数值可以包括:为所述目标数据添加一个ID字段;计算所述目标数据的第一哈希值,并将所述第一哈希值填入所述ID字段中;在与区块链的节点建立通信连接之后,计算所述目标数据的第二哈希值;若所述第二哈希值和所述ID字段中的所述第一哈希值相同,则将所述目标数据写入区块链;当所述目标数据写入区块链成功后,计算所述目标数据的第三哈希值;若所述第三哈希值和所述ID字段中的所述第一哈希值相同,则将所述目标数据的上链状态标记位变更为第二数值。在服务器和区块链的节点建立连接的过程中,若待上链的数据又发生了变更,则该数据的哈希值会产生变化。因此,在连接建立完毕后,通过验证该数据的哈希值是否未变,若未变则表明选取的数据没有再次变更,此时再将读取到的数据写入到该区块链节点中,能够解决上述数据库和区块链两边数据不一致的问题。在第一方面的一种可能的实现方式中,在将所述待上链数据更新到预先构建的数据库中之前,还可以包括:将所述数据库中与所述待上链数据对应的原始数据转存到预先构建的原始数据表中;在将所述出现更新的数据批量写入区块链之后,还可以包括:若所述出现更新的数据写入区块链失败,则读取所述原始数据表,并将所述数据库中所述出现更新的数据还原为所述原始数据表中记录的相应原始数据。该过程为数据上链失败之后的数据回滚过程,即将数据恢复到更新之前的状态,能够进一步保证数据库和区块链两边数据的一致性。第二方面,本申请实施例提供了一种区块链的数据上链装置,包括:第一线程处理模块,用于通过第一线程获取客户端发送的携带有待上链数据的数据上链请求,将所述待上链数据更新到预先构建的数据库中,并返回数据上链的受理信息至所述客户端;第二线程处理模块,用于通过第二线程定时读取所述数据库,检测所述数据库中出现更新的数据,并将所述出现更新的数据批量写入区块链。第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面提出的区块链的数据上链方法。第四方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的区块链的数据上链方法。第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面所述的区块链的数据上链方法。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1本申请实施例提供的一种区块链的数据上链方法的第一个实施例的流程图;图2是本申请实施例提供的区块链的数据上链方法的操作示意图;图3是本申请实施例提供的一种区块链的数据上链方法的第二个实施例的流程图;图4是本申请实施例提供的一种区块链的数据上链方法的第三个实施例的流程图;图5是本申请实施例提供的一种区块链的数据上链装置的一个实施例的结构图;图6是本申请实施例提供的一种服务器的示意图。...
【技术保护点】
1.一种区块链的数据上链方法,其特征在于,包括:/n通过第一线程获取客户端发送的携带有待上链数据的数据上链请求,将所述待上链数据更新到预先构建的数据库中,并返回数据上链的受理信息至所述客户端;/n通过第二线程定时读取所述数据库,检测所述数据库中出现更新的数据,并将所述出现更新的数据批量写入区块链。/n
【技术特征摘要】
1.一种区块链的数据上链方法,其特征在于,包括:
通过第一线程获取客户端发送的携带有待上链数据的数据上链请求,将所述待上链数据更新到预先构建的数据库中,并返回数据上链的受理信息至所述客户端;
通过第二线程定时读取所述数据库,检测所述数据库中出现更新的数据,并将所述出现更新的数据批量写入区块链。
2.如权利要求1所述的数据上链方法,其特征在于,在将所述待上链数据更新到预先构建的数据库中之后,还包括:
为所述待上链数据分配一个上链状态标记位,并将所述上链状态标记位初始化为第一数值;
相应的,在通过所述第二线程将所述待上链数据写入区块链之后,还包括:
将所述上链状态标记位由所述第一数值变更为第二数值。
3.如权利要求2所述的数据上链方法,其特征在于,在为所述待上链数据分配一个上链状态标记位之后,还包括:
当检测到所述客户端发送的上链进度查询请求时,读取所述上链状态标记位;
若读取到的所述上链状态标记位为第一数值,则返回数据上链未完成的指示信息至所述客户端;
若读取到的所述上链状态标记位为第二数值,则返回数据上链已完成的指示信息至所述客户端。
4.如权利要求2所述的数据上链方法,其特征在于,所述通过第二线程定时读取所述数据库,检测所述数据库中出现更新的数据,并将所述出现更新的数据批量写入区块链包括:
通过所述第二线程定时读取所述数据库中上链状态标记位为第一数值的目标数据,将所述目标数据写入区块链,并在所述目标数据写入区块链成功之后将所述目标数据的上链状态标记位变更为第二数值。
5.如权利要求4所述的数据上链方法,其特征在于,所述将所述目标数据写入区块链,并在所述目标数据写入区块链成功之后将所述目标数据的上链状态标记位变更为第二数值包括:
为所述目标数据添加一个ID字段;
计算所述目标数据的第一哈希值,并将所述第一哈希值填入所述ID字段中;
在与区块链的节点建立通信连接之后,计算所述目标数据的第二哈希值;<...
【专利技术属性】
技术研发人员:鲁铁华,
申请(专利权)人:平安科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。