基于区块链的数据处理方法、装置及系统
文献发布时间:2023-06-19 10:54:12
技术领域
本发明涉及区块链技术领域,具体涉及一种基于区块链的数据处理方法、装置及系统。
背景技术
区块链本身是一种分布式计算和存储系统,将数据及数据的操作记录,通过密码学方法进行加密和散列,从而具备一种公开透明、不可篡改、可追溯的特性。链上数据由执行智能合约生成,但是智能合约的执行容器性能有限,当区块数据不断增长时,对智能合约的执行效率会产生较大影响,另外智能合约作为一个简单的程序不适合做大数据分析等复杂计算。
目前,通常是通过数据归档方式进行链上数据备份,该方式当区块高度达到归档节点时执行一次数据归档,实时性和效率较低,另外,当区块数据庞大时,区块链系统的吞吐能力较低。
发明内容
有鉴于此,本发明提供一种基于区块链的数据处理方法、装置及系统,以解决上述提及的至少一个问题。
根据本发明的第一方面,提供一种基于区块链的数据处理方法,所述方法包括:
接收来自智能合约系统的加密数据;
基于预先设置的私钥对所述加密数据进行解密操作,并根据解密操作结果生成消息主题和消息内容;
根据所述消息主题确定相应的链下数据库表信息和需要执行的表操作,所述链下数据库存储区块链上的作业数据;
根据所述消息内容、链下数据库表信息和需要执行的表操作生成数据操纵语言(DML)语句;
根据所述DML语句对链下数据库执行相应的操作。
根据本发明的第二方面,提供一种基于区块链的数据处理方法,所述方法应用于智能合约系统,所述方法包括:
接收业务应用系统的作业请求,并基于预先设置的智能合约执行与所述作业请求相应的操作,生成作业数据;
将所述作业数据存储至区块链;
基于预先存储的公钥对所述作业数据进行加密操作,生成加密数据;
将所述加密数据发送至消息服务系统,其中,所述消息服务系统将接收的加密数据发送至相应的数据同步系统。
根据本发明的第三方面,提供一种基于区块链的数据处理装置,所述装置包括:
数据接收单元,用于接收来自智能合约系统的加密数据;
解密单元,用于基于预先设置的私钥对所述加密数据进行解密操作,并根据解密操作结果生成消息主题和消息内容;
表操作确定单元,用于根据所述消息主题确定相应的链下数据库表信息和需要执行的表操作,所述链下数据库存储区块链上的作业数据;
DML语句生成单元,用于根据所述消息内容、链下数据库表信息和需要执行的表操作生成数据操纵语言(DML)语句;
执行单元,用于根据所述DML语句对链下数据库执行相应的操作。
根据本发明的第四方面,提供一种基于区块链的数据处理装置,所述装置位于智能合约系统,所述装置包括:
作业执行单元,用于接收业务应用系统的作业请求,并基于预先设置的智能合约执行与所述作业请求相应的操作,生成作业数据;
作业数据存储单元,用于将所述作业数据存储至区块链;
加密单元,用于基于预先存储的公钥对所述作业数据进行加密操作,生成加密数据;
加密数据发送单元,用于将所述加密数据发送至消息服务系统,其中,所述消息服务系统将接收的加密数据发送至相应的数据同步系统。
根据本发明的第五方面,提供一种基于区块链的数据处理系统,所述系统包括:业务应用系统、消息服务系统、智能合约系统、数据同步系统和链下数据库,其中,所述数据同步系统包括上述第三方面的基于区块链的数据处理装置,所述智能合约系统包括上述第四方面的基于区块链的数据处理装置,所述链下数据库存储区块链上的作业数据,所述业务应用系统通过所述数据同步系统对所述链下数据库执行数据查询操作。
根据本发明的第六方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
根据本发明的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
由上述技术方案可知,通过根据私钥对接收的智能合约系统的加密数据进行解密,生成消息主题和消息内容,随后根据消息主题确定相应的链下数据库表信息和需要执行的表操作,之后,根据消息内容、链下数据库表信息和需要执行的表操作生成DML语句,并根据DML语句对链下数据库执行相应的操作,相比于现有技术的通过调用智能合约在区块链上对数据进行操作,本发明实施例将链上数据同步至链下数据库,将对链上数据的操作转移到链下数据库执行,从而可以有效提高区块链系统的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的基于区块链的数据处理系统的结构框图;
图2是根据本发明实施例的消息服务系统20的结构框图;
图3是根据本发明实施例的数据处理装置301的结构框图;
图4是根据本发明实施例的数据处理装置401的结构框图;
图5是根据本发明实施例的基于区块链的数据处理系统的示例结构图;
图6是根据本发明实施例的业务应用系统1的结构框图;
图7是根据本发明实施例的智能合约应用系统2的结构框图;
图8是根据本发明实施例的消息推送系统3的结构框图;
图9是根据本发明实施例的数据同步系统4的结构框图;
图10是根据本发明实施例的基于图5所示系统的数据处理流程图;
图11是根据本发明实施例的基于区块链的数据处理方法的流程图;
图12是根据本发明实施例的基于区块链的数据处理方法的另一流程图;
图13为本发明实施例的电子设备600的系统构成的示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,对区块链链上数据进行访问、分析等操作需调用智能合约,当数据操作请求较多时,在智能合约本身容器性能有限的基础上,容易造成性能问题,降低了区块链系统的性能。基于此,本发明实施例提供一种基于区块链的数据处理方案,该方案可以将链上数据同步至链下数据库,实现了区块数据的读写分离,可以将数据查询和分析操作转移到链下执行,从而可以有效提高区块链系统的性能。以下结合附图来详细描述本发明实施例。
图1是根据本发明实施例的基于区块链的数据处理系统的结构框图,如图1所示,该系统包括:业务应用系统10、消息服务系统20、智能合约系统30、数据同步系统40和链下数据库50,其中,链下数据库用于存储区块链上的作业数据(可以称为交易数据或者业务数据),通过链下数据库可以实现链上数据同步至链下,从而可以实现区块数据的读写分离;业务应用系统可以通过数据同步系统对所述链下数据库执行数据查询、分析等操作,也可以通过智能合约系统执行业务操作。以下分别对消息服务系统20、智能合约系统30、数据同步系统40进行详细描述。
(1)消息服务系统20
图2是消息服务系统20的结构框图,如图2所示,该消息服务系统20包括:订阅单元201、加密数据接收单元202和转发单元203,其中:
订阅单元201,用于与所述数据同步系统建立通信连接,并基于消息主题进行订阅操作;
加密数据接收单元202,用于接收来自智能合约系统的加密数据,所述加密数据包括:消息主题和消息内容;
转发单元203,用于根据所述加密数据中的消息主题将所述加密数据转发至所述数据同步系统。
(3)智能合约系统30
智能合约系统包括:位于该系统端的数据处理装置301,图3是数据处理装置301的结构框图,如图3所示,该数据处理装置301包括:作业执行单元3011、作业数据存储单元3012、加密单元3013和加密数据发送单元3014,其中:
作业执行单元3011,用于接收业务应用系统的作业请求(这里的作业可以称为业务或者交易),并基于预先设置的智能合约执行与所述作业请求相应的操作,生成作业数据;
作业数据存储单元3012,用于将所述作业数据存储至区块链;
加密单元3013,用于基于预先存储的公钥对所述作业数据进行加密操作,生成加密数据;
加密数据发送单元3014,用于将所述加密数据发送至消息服务系统,其中,所述消息服务系统将接收的加密数据发送至相应的数据同步系统。
其中,加密数据发送单元具体包括:消息主题生成模块和加密数据发送模块,其中:
消息主题生成模块,用于基于预定规则生成所述加密数据的消息主题;
加密数据发送模块,用于将所述消息主题和所述加密数据发送至所述消息服务系统。
(3)数据同步系统40
数据同步系统40包括:数据同步系统的数据处理装置401,图4是数据处理装置401的结构框图,如图4所示,该数据处理装置401包括:数据接收单元4011、解密单元4012、表操作确定单元4013、DML(Data Manipulation Language,数据操纵语言)语句生成单元4014和执行单元4015,其中:
数据接收单元4011,用于接收来自智能合约系统的加密数据。
解密单元4012,用于基于预先设置的私钥对所述加密数据进行解密操作,并根据解密操作结果生成消息主题和消息内容。
表操作确定单元4013,用于根据所述消息主题确定相应的链下数据库表信息和需要执行的表操作,所述链下数据库存储区块链上的作业数据。
DML语句生成单元4014,用于根据所述消息内容、链下数据库表信息和需要执行的表操作生成DML语句。生成DML语句的具体过程,可以参见相关技术,本发明对此不作限制。
执行单元4015,用于根据所述DML语句对链下数据库执行相应的操作。
通过解密单元4012根据私钥对数据接收单元4011接收的智能合约系统的加密数据进行解密,生成消息主题和消息内容,随后表操作确定单元4013根据消息主题确定相应的链下数据库表信息和需要执行的表操作,之后,DML语句生成单元4014根据消息内容、链下数据库表信息和需要执行的表操作生成DML语句,执行单元4015根据DML语句对链下数据库执行相应的操作,相比于现有技术的通过调用智能合约在区块链上对数据进行操作,本发明实施例将链上数据同步至链下数据库,将对链上数据的操作转移到链下数据库执行,从而可以有效提高区块链系统的性能。
在一个实施例中,上述数据处理装置401还包括:秘钥生成单元和公钥发送单元,其中:
秘钥生成单元,用于根据预定的秘钥生成规则生成公私秘钥对,这里的私钥即解密单元4012使用的私钥;
公钥发送单元,用于将生成的公钥发送给所述智能合约系统,其中,所述智能合约系统基于所述公钥对作业数据进行加密,生成所述加密数据。
在实际操作中,上述数据处理装置401还包括:查询请求接收单元和查询单元,其中:
查询请求接收单元,用于接收来自业务应用系统的数据查询请求;
查询单元,用于根据所述数据查询请求从所述链下数据库查询相应的数据。
相比于现有技术的通过调用智能合约查看区块链的数据,当数据查询请求较多时,容易降低区块链系统的性能,而通过本发明实施例的查询请求接收单元和查询单元,可以将对链上数据的查询操作转移到链下数据库执行,从而可以有效提高区块链系统的性能。
在具体实施过程中,上述数据处理装置401还包括:通信单元,用于与消息服务系统20建立通信连接,并基于消息主题进行订阅操作,之后可以接收到消息服务系统转发的来自智能合约系统的与该消息主题相应的数据。
在实际操作中,上述各单元、各模块可以组合设置、也可以单一设置,本发明不限于此。
本发明实施例通过数据同步系统40,实现了链上数据同步至链下数据库,从而实现了区块数据的读写分离,并且后续的数据查询和分析操作也转移到了链下数据库执行,而无需在区块链上执行,进而有效提高了区块链系统的性能。
为了进一步理解本发明实施例,以下结合图5给出数据处理示例系统,在该示例系统中,区块链系统由多个区块链节点组成,每个节点的功能和数据是相同的,为避免数据重复同步,仅选取一个节点连接消息推送系统。
图5是基于区块链的数据处理系统的示例结构图,如图5所示,该示例系统包括:业务应用系统1(对应于上述的业务应用系统10)、智能合约应用系统2(对应于上述的智能合约系统30)、消息推送系统3(对应于上述的消息服务系统20)、数据同步系统4(对应于上述的数据同步系统40)以及(链下)数据库5(对应于上述的链下数据库50)。其中:
(1)业务应用系统1
业务应用系统1是区块链上智能合约执行的发起者,也可以称为业务方。图6是该业务应用系统1的结构框图,如图6所示,该业务应用系统1包括:智能合约调用模块M11和链下数据查询模块M12,其中:智能合约调用模块M11,用于调用智能合约,业务应用系统通过智能合约SDK(软件开发工具包)接口执行智能合约程序,完成自身区块链业务功能;链下数据查询模块M12,通过该模块,业务应用系统不再通过智能合约SDK接口进行链上数据查询,而是通过数据同步系统4进行链下数据查询,实现了区块链数据读写分离。
业务方通过执行智能合约完成自身区块链业务处理并将业务数据存储在区块链中,当需要查询业务数据时,不再直接查询区块链上的数据而是通过链下数据查询模块M12查询链下数据库中的数据,有效提高了区块链系统的性能。
(2)智能合约应用系统2
智能合约应用系统2是部署在区块链上的业务逻辑程序,如图7所示,智能合约应用系统2包括:业务处理模块M21、消息服务连接模块M22、密钥存储模块M23、消息加密模块M24以及消息推送模块M25。其中:
业务处理模块M21,用于在区块链上完成业务功能,实现业务数据上链。
消息服务连接模块M22,该模块通过消息连接协议连接消息服务器,保持消息连接的稳定性。
密钥存储模块M23,用于存储来自数据同步系统的公钥。
消息加密模块M24,用于对消息进行加密。一般来说,消息报文由HASH(哈希值)和消息密文组成,其中,消息密文是当前业务数据使用非对称加密算法(RSA)算法进行加密后生成。具体的加密过程为:随机选取一个整数r,属于小于N
消息推送模块M25,当消息服务器连接成功后,在完成业务处理以及数据上链时,将组装好的报文赋予特定消息主题并推送至消息推送系统,再由消息推送系统进行消息处理后转发给数据同步系统。
在一个实施例中,业务方通过调用智能合约完成业务逻辑处理,然后连接消息推送系统获取到数据同步系统的密钥,之后将业务数据加密后通过消息推送系统推送至数据同步系统。
(3)消息推送系统3
消息推送系统3是一个中间件系统,负责消息的订阅以及推送服务。图8是消息推送系统3的结构框图,如图8所示,该消息推送系统3包括:客户端连接模块M31、主题订阅模块M32、消息接收模块M33、消息排序模块M34、消息缓存模块M35以及消息分发模块M36,其中:
客户端连接模块M31,该模块的客户端连接包括智能合约应用系统连接和数据同步系统连接,通过该模块,智能合约应用系统和数据同步系统能够保持与消息推送系统的长连接,避免消息传输过程中频繁建立连接而产生不必要的系统开销。
主题订阅模块M32,该模块提供数据同步系统(也可以称为客户端)主题订阅能力。消息推送系统采用订阅-分发模式,将消息按照主题分类,数据同步系统订阅主题后,消息推送系统会将该主题下的所有新消息分发至数据同步系统。
消息接收模块M33,该模块负责接收由智能合约应用系统推送过来的消息。
消息排序模块M34,该模块负责对消息进行排序。当业务应用系统的交易量较大时,智能合约应用系统会推送大量的消息到消息推送系统,为保障消息的有序性需要对消息进行排序。
消息缓存模块M35,该模块用于缓存消息。为避免消息推送系统宕机或者消息处理不及,需要设置一个消息缓存队列,将超出消息推送系统处理能力的消息存储至队列中,按照先进先出的原则分发消息。
消息分发模块M36,该模块负责将存储在消息队列中消息以先进先出的顺序取出,并查询主题订阅模块获取到订阅了该消息主题的数据同步系统连接,最终将消息分发到数据同步系统。
消息推送系统通过客户端连接模块M31连接数据同步系统4和智能合约应用系统2,消息由智能合约应用系统发送经过消息接收和排序等处理模块之后将消息按照主题分类推送给数据同步系统。
(4)数据同步系统4
数据同步系统4负责将链上数据存储至链下数据库并提供链下数据访问功能。图9是数据同步系统4的结构框图,如图9所示,该数据同步系统4包括:消息服务连接模块M41、密钥生成模块M42、密钥交换模块M43、消息接收模块M44、报文解析模块M45、数据库连接模块M46、数据存储模块M47以及数据查询模块M48,其中:
消息服务连接模块M41,该模块和智能合约应用系统中的消息服务连接模块M22有些不同,该消息服务连接模块M41除连接消息推送系统外,还用于向消息推送系统订阅主题,这样才能正常接收消息。
密钥生成模块M42,该模块采用非对称加密算法(RSA)算法来生成秘钥,生成过程包括如下三个步骤:步骤一,随机选取两个大质数p和q,为保证两个质数长度相等,p和q还需要满足公式gcd(pq,(p-1)(q-1))=1,其中,gcd函数是计算最大公约数;步骤二,计算N=pq和λ=lcm(p-1,q-1),其中,lcm函数是计算最小公倍数;步骤三,随机选取一个整数g,属于小于N
密钥交换模块M43,该模块主要将数据同步系统生成的公钥发送至智能合约应用系统中存储,并作为后续智能合约应用系统对消息加密的公钥。
消息接收模块M44,该模块负责接收由消息推送系统分发过来的消息。
报文解析模块M45,该模块负责解析由消息推送系统分发过来的消息,报文解析模块M45具体包括:消息解密模块M451和数据解析模块M452,其中:
消息解密模块M451,由于智能合约应用系统通过消息推送系统推送过来的消息是经过非对称加密算法RSA加密的,因此在解析报文数据前需要利用私钥进行消息解密。解密过程包括:首先,使用相同哈希算法计算消息密文的哈希摘要并验证和消息报文中的HASH是否一致,然后利用私钥λ,对密文c解密后可以得到消息明文
数据解析模块M452,数据解析包括两部分:一部分是消息主题解析、另一部分是消息内容解析。消息主题主要由链下数据库表名和表操作等字符串,通过解析消息主题可以获得消息对应的数据库表以及需要执行的表操作,如插入、更新、删除数据。消息内容是需要操作的数据库数据,通过消息内容解析以及动态SQL(Structured Query Language,结构化查询语言)拼接技术,可以生成数据库DML语句。
数据库连接模块M46,该模块提供一个数据库连接池,当需要更新数据库数据时,从连接池获取数据库连接,然后执行数据库DML语句完成数据库操作。
数据库存储模块M47,该模块采用关系型数据库存储链下数据,将链上K-V(Key-Value,键值)数据库数据存储至链下关系型数据库中。
数据查询模块M48,该模块为业务应用系统提供链下数据查询接口,将链上数据读写分离,对于数据的查询,业务应用系统通过调用该数据查询接口查询链下数据库,从而可以有效降低区块链系统的访问压力。
数据同步系统在连接消息推送系统并订阅主题后,会自动获得消息推送。每当新消息到来时,会将消息报文解析成数据库执行语句并插入数据库,完成链上数据的链下存储。
图10是基于图5所示系统的数据处理流程图,如图10所示,该流程包括:
步骤T101:消息服务系统3启动连接监听服务,当有连接请求时,客户端连接模块M31会为客户端(即,上述的数据同步系统4)保持连接。
步骤T102:智能合约应用系统2通过消息服务连接模块M22连接消息服务系统3。
步骤T103:数据同步系统4通过消息服务连接模块M41连接消息服务系统3并订阅消息主题,然后通过密钥生成模块M42生成公私密钥对,并将公钥通过密钥交换模块M43发送给智能合约应用系统2,智能合约应用系统2通过密钥存储模块M23将公钥存储起来。
步骤T104:当业务系统1需要查询数据时,不必调用智能合约数据查询接口查询链上数据,链下数据查询模块M12通过数据同步系统4的数据查询模块M48提供的接口查询链下数据。
步骤T105:当业务应用系统1执行业务交易时,智能合约调用模块M11调用智能合约接口完成合约业务并将交易数据存储在区块链中。
步骤T106:交易完成后,智能合约应用系统2通过消息加密模块M24将交易数据加密并计算哈希摘要,完成消息报文的打包工作。
步骤T107:智能合约应用系统2为消息报文指定一个消息主题,然后通过消息推送模块M25调用消息推送接口将消息报文推送至消息服务系统3。
步骤T108:当消息服务系统3的消息接收模块M33接收到新消息时,将新消息通过消息排序模块M34进行排序,然后通过消息缓存模块M35放入消息队列中。
步骤T109:消息服务系统从消息缓存模块M35取出消息,并通过主题订阅模块M32查询到本条消息主题对应的客户端连接,然后通过消息分发模块M36将消息分发给客户端,即数据同步系统4。
步骤T110:当数据同步系统4的消息接收模块M44接收到新消息时,首先通过消息解密模块M451使用私钥将消息密文解密成消息明文,并计算和交易消息的哈希摘要。
步骤T111:消息解密后,通过数据解析模块M452解析消息的主题以及消息明文数据生成数据库DML操作语句,然后通过数据存储模块M47执行DML语句完成链下数据库数据更新。
本发明实施例通过引入动态数据库DML生成技术、消息推送等技术,实现了链上数据的链下存储,通过公私秘钥保障了数据同步过程中的隐私安全。在提升区块链性能的同时,有效提升了链上数据访问的便捷性,通过链下数据库,有利于使用大数据分析等技术进行数据分析。
基于相似的发明构思,本发明实施例还提供一种基于区块链的数据处理方法,优选地,该数据处理方法可应用于上述数据同步系统的数据处理装置401。
图11是该数据处理方法的流程图,如图11所示,该方法包括:
步骤1101,接收来自智能合约系统的加密数据;
步骤1102,基于预先设置的私钥对所述加密数据进行解密操作,并根据解密操作结果生成消息主题和消息内容;
步骤1103,根据所述消息主题确定相应的链下数据库表信息和需要执行的表操作,所述链下数据库存储区块链上的作业数据;
步骤1104,根据所述消息内容、链下数据库表信息和需要执行的表操作生成数据操纵语言DML语句;
步骤1105,根据所述DML语句对链下数据库执行相应的操作。
通过根据私钥对接收的智能合约系统的加密数据进行解密,生成消息主题和消息内容,随后根据消息主题确定相应的链下数据库表信息和需要执行的表操作,之后,根据消息内容、链下数据库表信息和需要执行的表操作生成DML语句,并根据DML语句对链下数据库执行相应的操作,相比于现有技术的通过调用智能合约在区块链上对数据进行操作,本发明实施例将链上数据同步至链下数据库,将对链上数据的操作转移到链下数据库执行,从而可以有效提高区块链系统的性能。
在一个实施例中,上述方法还包括:接收来自业务应用系统的数据查询请求;根据所述数据查询请求从所述链下数据库查询相应的数据。
在步骤1101之前,上述方法还包括:与消息服务系统建立通信连接,并基于消息主题进行订阅操作,其中,所述消息服务系统基于订阅的消息主题转发数据。
另外,上述方法还包括:根据预定的秘钥生成规则生成公私秘钥对;之后,将生成的公钥发送给所述智能合约系统,其中,所述智能合约系统基于所述公钥对作业数据进行加密,生成所述加密数据。如此,可以保证数据传输的安全性。
上述各步骤的具体执行流程,可以参见上述数据同步系统的数据处理装置401的描述,此处不再赘述。
本发明实施例还提供一种基于区块链的数据处理方法,优选地,该数据处理方法可应用于上述智能合约系统30的数据处理装置301。
图12是该数据处理方法的流程图,如图12所示,该数据处理方法包括:
步骤1201,接收业务应用系统的作业请求,并基于预先设置的智能合约执行与所述作业请求相应的操作,生成作业数据;
步骤1202,将所述作业数据存储至区块链;
步骤1203,基于预先存储的公钥对所述作业数据进行加密操作,生成加密数据;
步骤1204,将所述加密数据发送至消息服务系统,其中,所述消息服务系统将接收的加密数据发送至相应的数据同步系统。
通过根据智能合约执行与接收的作业请求相应的操作,生成作业数据,并将作业数据存储在区块链上,之后,根据公钥对作业数据进行加密后生成加密数据,发送至消息服务系统,消息服务系统将接收的加密数据发送至相应的数据同步系统,进行链下数据库的存储,实现了将链上数据的链下存储,通过加密操作保障了数据同步过程中的隐私安全,在提升区块链性能的同时,有效提升了链上数据访问的便捷性,并有利于使用大数据分析等技术进行数据分析。
上述各步骤的具体执行流程,可以参见上述智能合约系统30的数据处理装置301的描述,此处不再赘述。
本实施例还提供一种电子设备,该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照上述方法实施例进行实施及基于区块链的数据处理装置/系统的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图13为本发明实施例的电子设备600的系统构成的示意框图。如图13所示,该电子设备600可以包括中央处理器100和存储器140;存储器140耦合到中央处理器100。值得注意的是,该图是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,基于区块链的数据处理功能可以被集成到中央处理器100中。其中,中央处理器100可以被配置为进行如下控制:
步骤1101,接收来自智能合约系统的加密数据;
步骤1102,基于预先设置的私钥对所述加密数据进行解密操作,并根据解密操作结果生成消息主题和消息内容;
步骤1103,根据所述消息主题确定相应的链下数据库表信息和需要执行的表操作,所述链下数据库存储区块链上的作业数据;
步骤1104,根据所述消息内容、链下数据库表信息和需要执行的表操作生成数据操纵语言DML语句;
步骤1105,根据所述DML语句对链下数据库执行相应的操作。
从上述描述可知,本申请实施例提供的电子设备,通过根据私钥对接收的智能合约系统的加密数据进行解密,生成消息主题和消息内容,随后根据消息主题确定相应的链下数据库表信息和需要执行的表操作,之后,根据消息内容、链下数据库表信息和需要执行的表操作生成DML语句,并根据DML语句对链下数据库执行相应的操作,相比于现有技术的通过调用智能合约在区块链上对数据进行操作,本发明实施例将链上数据同步至链下数据库,将对数据的操作转移到链下数据库执行,从而可以有效提高区块链系统的性能。
在另一个实施方式中,基于区块链的数据处理装置/系统可以与中央处理器100分开配置,例如可以将基于区块链的数据处理装置/系统配置为与中央处理器100连接的芯片,通过中央处理器的控制来实现基于区块链的数据处理功能。
如图13所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图13中所示的所有部件;此外,电子设备600还可以包括图13中没有示出的部件,可以参考现有技术。
如图13所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述基于区块链的数据处理方法的步骤。
综上所述,本发明实施例通过引入动态数据库DML生成技术、消息推送等技术,实现了链上数据的链下存储并保障了数据同步过程中的隐私安全。在提升区块链性能的同时,有效提升了链上数据访问的便捷性,并有利于使用大数据分析等技术进行数据分析,本发明实施例的主要优点在于:
(1)同步低延迟:本发明实施例以交易为粒度,利用消息服务系统的推送机制以及动态数据库DML生成技术,在一笔交易完成时,即可完成从交易数据的消息报文打包、解析到数据库DML语句的生成和执行过程,相比传统的定时同步机制,本发明实施例有效降低了数据同步的延迟。
(2)数据便捷分析,区块链系统由于性能限制,不利于对已上链的区块数据进行大数据分析,本发明实施例不仅有效实现数据同步,还提供了链下数据访问功能,便于对交易数据进行分析和统计。
(3)隐私安全保护:为避免交易数据同步过程中消息被拦截导致交易数据泄露,通过非对称解密算法对同步过程中的消息进行加解密,可有效保护数据的隐私安全。
(4)有效提升性能:传统区块链链上数据访问需通过调用智能合约,当访问请求过大时,在智能合约本身容器性能有限的基础上,容易造成性能问题。本发明实施例在链上链下数据同步的同时,实现了交易数据的读写分离,能有效提升区块链系统的性能。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 一种基于区块链的数据处理方法、装置、区块链系统
- 基于区块链节点集群的云安全数据处理方法及区块链系统