掌桥专利:专业的专利平台
掌桥专利
首页

基于区块链系统的数据处理方法及装置、设备、介质

文献发布时间:2024-01-17 01:26:37


基于区块链系统的数据处理方法及装置、设备、介质

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种基于区块链系统的数据处理方法、装置、电子设备及计算机可读存储介质。

背景技术

相关技术中区块链节点在进行数据协作时,主要是通过两种方式;其中:

一种是中心化协作方式,数据提供方将数据传递给中心化的中介机构,进而再由中介机构将数据发送给数据使用方,但是如果中介机构作恶,那么其可能会泄露或篡改数据,数据的安全性无法得到保证,并且出现问题时,并不能很好地定位到责任方,数据协作的管理较难。

另一种是去中心化协作方式,该方式数据仅在数据提供方和数据使用方之间进行传递,这种方式虽然能够避免中介机构作恶的现象,但是也可能会出现数据丢失、泄露、被篡改等问题,一旦出现问题时,同样也不能很好地定位到责任方,数据协作的管理较难。

可见,如何降低数据协作的管理难度,以提升数据协作的管理效率是亟待解决的问题。

发明内容

为解决上述技术问题,本申请的实施例提供了一种基于区块链系统的数据处理方法及装置、电子设备、计算机可读存储介质,进而至少在一定程度上降低了数据协作的管理难度,提升了数据协作的管理效率。

根据本申请实施例的一个方面,提供了一种基于区块链系统的数据处理方法,所述区块链系统中的区块链节点所维护的账本具有账本标识信息,所述方法包括:获取触发待上链交易数据的第一区块链节点所对应的第一账本;根据所述第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含所述第一账本的账本标识信息的第二账本,以及所述第二账本对应的第二区块链节点;将所述第一账本的账本标识信息、所述第二账本的账本标识信息,以及所述待上链交易数据进行关联上链处理,得到上链后交易数据;将所述上链后交易数据发送至所述第一区块链节点,以使所述第一区块链节点将所述上链后交易数据写入至所述第一账本中,以及将所述上链后交易数据发送至所述第二区块链节点,以使所述第二区块链节点将所述上链后交易数据写入至所述第二账本中。

根据本申请实施例的一个方面,提供了一种基于区块链系统的数据处理方法,所述区块链系统中的区块链节点所维护的账本具有账本标识信息,所述方法包括:接收上链后交易数据;其中,所述上链后交易数据是由区块链共识节点获取触发待上链交易数据的第一区块链节点所对应的第一账本,并根据所述第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含所述第一账本的账本标识信息的第二账本,以及所述第二账本对应的第二区块链节点,以及将所述第一账本的账本标识信息、所述第二账本的账本标识信息,以及所述待上链交易数据进行关联上链处理后得到并发送的;将所述上链后交易数据写入至所述第二账本中。

根据本申请实施例的一个方面,提供了一种基于区块链系统的数据处理装置,所述区块链系统中的区块链节点所维护的账本具有账本标识信息,所述装置包括:获取模块,配置为获取触发待上链交易数据的第一区块链节点所对应的第一账本;确定模块,配置为根据所述第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含所述第一账本的账本标识信息的第二账本,以及所述第二账本对应的第二区块链节点;上链模块,配置为将所述第一账本的账本标识信息、所述第二账本的账本标识信息,以及所述待上链交易数据进行关联上链处理,得到上链后交易数据;发送模块,配置为将所述上链后交易数据发送至所述第一区块链节点,以使所述第一区块链节点将所述上链后交易数据写入至所述第一账本中,以及将所述上链后交易数据发送至所述第二区块链节点,以使所述第二区块链节点将所述上链后交易数据写入至所述第二账本中。

在本申请的一个实施例中,基于前述方案,所述装置还包括:第一接收单元,配置为接收所述第二区块链节点发送的添加请求;其中,所述添加请求包括所述第二区块链节点的第二账本的账本标识信息;添加单元,配置为根据所述第二账本的账本标识信息在所述区块链系统上添加所述第二区块链节点。

在本申请的一个实施例中,基于前述方案,所述添加单元具体配置为:根据所述第二账本的账本标识信息在所述区块链系统上注册所述第二区块链节点,并获取所注册的链上地址;将所述第二账本的账本标识信息与所述链上地址进行关联,得到关联结果,以完成所述第二区块链节点的添加。

在本申请的一个实施例中,基于前述方案,所述装置还包括:第二接收单元,配置为接收所述第二区块链节点发送的账本标识分配请求;生成单元,配置为根据所述账本标识分配请求生成与所述第二区块链节点相匹配的账本标识信息;发送单元,配置为发送所述与所述第二区块链节点相匹配的账本标识信息至所述第二区块链节点,以使所述第二区块链节点得到具有与所述第二区块链节点相匹配的账本标识信息的第二账本。

在本申请的一个实施例中,基于前述方案,所述装置还包括:第三接收单元,配置为接收所述第一区块链节点发送的针对第一合约的第一调用请求;第一触发单元,配置为根据所述第一调用请求触发对所述第一合约的执行,以生成所述待上链交易数据。

在本申请的一个实施例中,基于前述方案,所述上链后交易数据还包括:所述第二区块链节点的操作权限信息,所述操作权限信息包括读操作权限以及写操作权限中的至少一种;所述装置还包括:第四接收单元,配置为接收所述第二区块链节点发送的针对第二合约的第二调用请求;第二触发单元,配置为若所述第二调用请求满足所述操作权限信息,则根据所述第二调用请求触发对所述第二合约的执行,以对所述上链后交易数据进行与所述操作权限信息对应的操作处理,得到处理后的上链后交易数据;上链单元,配置为将所述第二账本的账本标识信息,以及所述处理后的上链后交易数据进行关联上链处理。

在本申请的一个实施例中,基于前述方案,所述第二调用请求包括写入至所述第二账本中的上链后交易数据的第一版本信息;所述第二触发单元具体配置为:将所述第一版本信息与所述区块链系统所存储的上链后交易数据的第二版本信息进行比较;若所述第一版本信息与所述第二版本信息匹配,则根据所述第二调用请求触发对所述第二合约的执行。

在本申请的一个实施例中,基于前述方案,所述上链模块包括:验证与共识单元,配置为对所述待上链交易数据进行验证处理与共识处理;上链单元,配置为若验证处理与共识处理均通过,则将所述第一账本的账本标识信息、所述第二账本的账本标识信息,以及所述待上链交易数据进行关联上链处理,得到上链后交易数据。

在本申请的一个实施例中,基于前述方案,所述验证与共识单元具体配置为:接收所述第一区块链节点发送的与所述待上链交易数据相关联的签名数据;根据所述签名数据对所述待上链交易数据进行验证处理;若所述验证处理通过,则对所述待上链交易数据进行共识处理。

根据本申请实施例的一个方面,提供了一种基于区块链系统的数据处理装置,所述区块链系统中的区块链节点所维护的账本具有账本标识信息,所述装置包括:接收模块,配置为接收上链后交易数据;其中,所述上链后交易数据是由区块链共识节点获取触发待上链交易数据的第一区块链节点所对应的第一账本,并根据所述第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含所述第一账本的账本标识信息的第二账本,以及所述第二账本对应的第二区块链节点,以及将所述第一账本的账本标识信息、所述第二账本的账本标识信息,以及所述待上链交易数据进行关联上链处理后得到并发送的;写入模块,配置为将所述上链后交易数据写入至所述第二账本中。

在本申请的一个实施例中,基于前述方案,所述接收模块包括:接收与生成单元,配置为接收上链后交易数据,并生成所述上链后交易数据对应的通知信息;展示单元,配置为展示所述通知信息,以使所述第二区块链节点根据所述通知信息确定存在上链后交易数据到达。

在本申请的一个实施例中,基于前述方案,所述装置还包括:接收单元,配置为接收针对所述第二账本中所写入的上链后交易数据的操作请求;其中,所述操作请求中携带有签名数据;执行单元,配置为若对所述签名数据的校验通过,则允许对所述第二账本中所写入的上链后交易数据执行指定操作。

根据本申请实施例的一个方面,提供了一种电子设备,包括一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上所述的基于区块链系统的数据处理方法。

根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机可读指令被计算机的处理器执行时,使计算机执行如上所述的基于区块链系统的数据处理方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如上所述的基于区块链系统的数据处理方法。

在本申请的实施例提供的技术方案中:

通过确定发起合约调用请求的第一区块链节点对应的第一账本,即确定数据来源方(也称数据提供方),以及确定待上链交易数据待写入的第二区块链节点对应的第二账本,即确定数据去向方(也称数据使用方),并将数据来源方对应的第一账本的标识信息、数据去向方对应的第二账本的标识信息,以及待上链交易数据进行关联上链处理,从而得到上链后交易数据。这样,在数据协作过程中如果出现问题,则可以根据上链后交易数据中第一账本的标识信息和/或第二账本的标识信息快速准确地定位到责任方,从而便于数据协作的管理,降低了数据协作的难度,提升了数据协作的管理效率。

通过将上链后交易数据发送/清分至对应的区块链节点(即第一区块链节点和第二区块链节点)的账本中进行存储。这样,一方面,对于区块链节点而言,存储的是与之关联的数据,而没有存储全量数据,从而能够避免由于存储了全量数据区块链节点可以通过绕过权限控制所造成的数据安全性较差的问题;另一方面,由于所存储关联数据的数据量相对于所存储全量数据的数据量更少,从而也在一定程度上降低了区块链节点的存储压力,节省了存储空间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是区块链网络的结构示意图;

图2是区块链中各区块的连接关系示意图;

图3是生成一个区块的过程示意图;

图4至图6是本申请实施例所应用的区块链系统的体系构架图;

图7是可以应用本申请实施例的技术方案的示例性区块链系统的示意图;

图8是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图9是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图10是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图11是图10所示实施例中的步骤S1002在一示例性实施例中的流程图;

图12是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图13是本申请的一示例性实施例示出的账本标识信息的构成示意图;

图14是本申请的一示例性实施例示出的账本标识信息的构成示意图;

图15是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图16是图15所示实施例中的步骤S1502在一示例性实施例中的流程图;

图17是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图18是图8所示实施例中的步骤S802在一示例性实施例中的流程图;

图19是图18所示实施例中的步骤S1801在一示例性实施例中的流程图;

图20是图18所示实施例中的步骤S1802在一示例性实施例中的流程图;

图21是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图22是图8所示实施例中的步骤S803在一示例性实施例中的流程图;

图23是图22所示实施例中的步骤S2202在一示例性实施例中的流程图;

图24是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图25是图24所示实施例中的步骤S2402在一示例性实施例中的流程图;

图26是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图27是图26所示实施例中的步骤S2601在一示例性实施例中的流程图;

图28是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图29是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的流程图;

图30是本申请的一示例性实施例示出的基于区块链系统的数据处理方法的示意图;

图31是本申请的一示例性实施例示出的基于区块链系统的数据处理装置的框图;

图32是本申请的一示例性实施例示出的基于区块链系统的数据处理装置的框图;

图33是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

具体实施方式

这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相相同的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相同的装置和方法的例子。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

需要说明的是,在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

在介绍本申请实施例的技术方案之前,先介绍本申请实施例中用到的区块链技术。

区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

如上,区块链本质上是一个去中心化的数据库,而区块链是由区块链网络中的节点共同维护的。例如请参阅图1,在图1所示的区块链网络中,可以包括多个节点101,多个节点101可以是形成区块链网络的各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如当区块链网络中的任意节点接收到输入信息时,区块链网络中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部节点上存储的数据均一致。

对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至区块链网络中的其它节点。每个节点中可维护一个节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(InternetProtocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。

区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,请参阅图2,区块链由多个区块组成,创始块中包括区块头和区块体,区块头中存储有输入信息特征值、版本号、时间戳和难度值等,区块体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。

在生成区块链中的各个区块时,请参阅图3,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,当计算得到满足条件的随机数时,便可将信息对应存储,生成区块头和区块体,得到当前区块。随后,区块链所在节点根据数据共享系统中其它节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其它节点,由其它节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。其中,节点可通过共识算法对新生成的区块进行共识校验,共识算法可包括但不限于:Pow(Proofof Work,工作量证明),Pos(proof of stake,权益证明),DPos(Delegated Proof ofStake,委托权益证明)股份授权证明机制,PBFT(Practical Byzantine Fault Tolerance,拜占庭容错算法),Paxos(一种分布式算法)算法,Raft(一种分布式共识算法)算法。

可选地,区块链网络中各个节点可以是服务器,也可以是终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(Cloud Computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能家居、车载终端等,但并不局限于此。各个节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

前述的云计算是指IT基础设施的交付和使用模式,具体指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。

基于区块链技术,本申请的实施例提出了一种区块链系统的体系架构。如图4所示,该区块链系统包括共识网络2和业务网络1(也称见证网络)。其中,共识网络2包括对数据区块进行共识并将数据区块记录到区块链上的共识节点21;业务网络1包括业务节点11,业务节点11可以对共识节点21记录到区块链上的数据区块进行验证,或者可以向共识节点21请求相应的交易数据。可以理解的是,前述图1中所涉及的节点101可以是共识节点21,也可以是业务节点11。

具体的,业务节点11对共识节点21记录到区块链上的数据区块进行验证可以包括以下步骤:共识网络2中的一个共识节点21利用特定于该共识节点21的密钥,基于要添加到区块链上的一个数据区块中所要包括的交易信息,生成签名;共识节点21将交易信息和生成的签名加入数据区块,添加到区块链上;共识节点21将该签名发往业务网络1中的业务节点11,业务节点11根据特定于该共识节点21的密钥对该签名进行签名验证,以实现业务节点11对共识节点21记录到区块链上的数据区块进行验证。共识网络2中的共识节点21负责向区块链记录数据区块,业务网络1中的业务节点11负责见证共识节点21记录的结果。具体地,共识节点21基于要添加到区块链上的一个数据区块中所要包括的交易信息,生成签名,然后将交易信息和生成的签名加入数据区块,进行上链。并将该签名发往业务网络1中的业务节点11,使业务节点11根据特定于该共识节点21的密钥对该签名进行签名验证。业务网络1中的业务节点11通过验证区块上共识节点21签名可以对全网的交易数据进行见证。共识网络2虽然拥有垄断的记账权,但是因为数据区块有了代表记账者身份的数字签名,所以一切活动都是公开可追溯的。如果共识节点21集体作恶,那么业务网络1中的全部节点都将保留有具体共识节点21作恶的证据。相比传统中心化系统和私有链,本申请实施例中系统的运转是更加透明的;而相比传统的去中心化方案,本方案是更可控也更便于可监管的。

在本申请的一个实施例中,共识网络2和业务网络1之间可以通过代理节点12连接,代理节点12可以是业务网络1的一个业务节点11,其负责将共识节点21要向业务节点11传递的信息传递给业务节点11。业务节点11是产生各种需上链的交易数据的交易方的终端,也可以是从共识网络2中查询交易数据的终端。业务节点11产生的交易数据在通过代理节点12传输至共识节点21,然后经过共识后记录到区块链上,有利于交易数据的统一处理和监管,而业务节点11也可以通过共识节点21经由代理节点12发送来的信息进行交易数据上链的监督和见证,这在某些既需要统一监管、但又怕监管的节点集体作弊因而需要监督的场景中有十分重要的意义。

在图4所示的区块链系统的体系构架中,业务网络1采用P2P(Peer to Peer,对等网络)网络模式。P2P网络是一种在对等者之间分配任务和工作负载的分布式应用架构,是对等计算模型在应用层形成的一种组网或网络形式,即“点对点”或者“端对端”网络。其可以定义为:网络的参加者共享他们所拥有的一部分硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,能被其它对等节点直接访问而无需经过中间实体。在此网络中的参加者既是资源、服务和内容的提供者,又是资源、服务和内容的获取者。因此,在业务网络1中,当代理节点12接收到从共识节点21传递过来的消息后,向周围的业务节点11进行传播,周围的业务节点11接收到该消息,再向其周围的业务节点11传递,达到了该消息在业务网络1的每个业务节点11之间的传播。

图5示出了本申请实施例所应用的另一种区块链系统的体系构架。该体系构架与图4中所示的体系构架不同之处在于:在业务网络1中没有采取P2P网络模式,而是采取广播网络的模式。具体地,代理节点12在接收到从共识节点21传递过来的消息后,将该消息广播到业务网络1中的其它业务节点11。这样,也实现了该消息在业务网络1的每个业务节点11之间的传播。

图6示出了本申请实施例所应用的另一种区块链系统的体系构架。该体系构架与图4所示的体系构架不同之处在于:其共识网络2分成了多个分支共识网络2。每个分支共识网络2可以负责某一种类型的交易信息的记录。例如,某一企业可能具有供应链金融业务,可能需要将供销过程中产生的合同信息、货款赊欠等信息记录到区块链上,同时该企业还要开具发票,也要把开票信息、发票报销信息等记录到区块链上。这时,为了有利于共识节点21被同一部门监管的需要,可能记录供应链金融业务交易的共识节点21和记录发票流转过程中的交易的共识节点21要分属于不同部门。例如,记录供应链金融业务交易的共识节点21是银行设置的记账终端,而记录发票流转过程中的交易的共识节点21是国税局设置的记账终端。而供应链金融业务交易和记录发票流转过程中的交易可能也最终会记录在不同分支的共识网络2上。这时,代理节点12要根据从业务节点11发来的交易信息中携带的交易类型,将该交易信息发送到与该交易类型对应的分支共识网络2中。

需要说明的是,在图4至图6所示的区块链系统的体系构架中,代理节点12位于业务网络1中,在本申请的其它实施例中,代理节点12也可以位于共识网络2中,或者独立于业务网络1和共识网络2。

可以理解的是,在图4至图6所示的区块链系统的体系构架中,区块链系统中可以包括有智能合约,该智能合约在区块链系统中可以理解为是一种区块链各节点可以理解并执行的代码,可以执行任意计算逻辑并得到结果。其中,可以将部署在共识网络2的共识节点上的智能合约统称为链上合约,可以将部署且仅运行在业务网络1的业务节点上的智能合约统称为业务合约(也称本地合约)。

可选地,区块链系统中可以包括一个或多个智能合约,这些智能合约可以以合约标识(例如标识号(Identity document,ID)或名称,还可以包括合约地址或合约函数名(也称合约方法名)来进行区分,而终端发起的合约调用请求中,也可以携带智能合约的标识号或名称,以此指定区块链需要运行的智能合约。

基于前述介绍的区块链技术,以及相关技术中区块链系统中数据协作的管理难度大,数据协作的管理效率低的问题,本申请的实施例提供的一种基于区块链系统的数据处理方法。具体而言,在本申请的一个应用场景中,请参阅图7,主要包含了如前述图4至图6中涉及的多个业务节点11以及如前述图4至图6中涉及的多个共识节点21。其中,多个业务节点11与多个共识节点21之间可以任意互相通信。

其中,多个业务节点11可以各自对应一个业务网络/一条区块链,即各个业务节点11对应的业务网络/区块链不同;并且,多个业务节点11各自维护有账本(也称本地账本)。多个业务节点11可以是具有上下包含关系的业务节点;可以理解的是,上下包含关系可以指的是如个体-企业-管理部门之间的上下包含关系。示例性地,多个业务节点11可以分别是第一业务节点、第二业务节点、第三业务节点、第四业务节点、第五业务节点以及第六业务节点;其中,第一业务节点可以是个体,第二业务节点可以是企业,第三业务节点可以是区管理部门,第四业务节点可以是市管理部门,第五业务节点可以是省管理部门,第六业务节点可以是总管管理部门(也称管理总部门)等。

其中,多个共识节点21可以共同对应一个共识网络/一条区块链,即各个共识节点21对应的共识网络/区块链相同;并且,多个共识节点各自维护有账本(也称共享账本)。

为了便于后文中的描述,本申请实施例中将图7中触发待上链交易数据的业务节点称为第一区块链节点,将待接收上链后交易数据(待上链交易数据上链后得到)的业务节点称为第二区块链节点,将共识节点称为区块链共识节点。可选地,第二区块链节点为一个或多个。可以理解的是,第一区块链节点和第二区块链节点所维护的账本具有账本标识信息。

在本申请的一个实施例中,数据以交易数据为例,区块链共识节点可以获取触发待上链交易数据的第一区块链节点所对应的第一账本;之后根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点;以及将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据;之后将上链后交易数据发送至与第一账本对应的第一区块链节点,相应地,第一区块链节点将上链后交易数据写入至第一账本中,以及将上链后交易数据发送至与第二账本对应的第二区块链节点,相应地,第二区块链节点将上链后交易数据写入至第二账本中。

需要说明的是,在本申请的具体实施方式中,涉及到用户相关的数据(如交易数据),当本申请实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。

基于图7所示应用场景,在采用了本申请实施例的技术方案之后,由于是将数据来源方对应的第一账本的标识信息、数据去向方对应的第二账本的标识信息,以及待上链交易数据进行关联上链处理,从而在数据协作过程中如果出现问题,则可以根据上链后交易数据中第一账本的标识信息和/或第二账本的标识信息快速准确地定位到责任方,从而便于数据协作的管理,降低了数据协作的难度。并且,由于是将上链后交易数据发送/清分至对应的区块链节点,因而,区块链节点中存储的是与之关联的数据,而没有存储全量数据,从而能够避免由于存储了全量数据区块链节点可以通过绕过权限控制所造成的数据安全性较差的问题;并且,由于所存储关联数据的数据量相对于所存储全量数据的数据量更少,从而也在一定程度上降低了区块链节点的存储压力,节省了存储空间。

以下对本申请实施例的技术方案的各种实现细节进行详细阐述:

请参阅图8,图8是本申请的一个实施例示出的基于区块链系统的数据处理方法的流程图,该基于区块链系统的数据处理方法可以由区块链系统中的区块链共识节点来执行。如图8所示,基于区块链系统的数据处理方法至少包括步骤S801至步骤S804,详细介绍如下:

步骤S801,获取触发待上链交易数据的第一区块链节点所对应的第一账本。

本申请实施例中第一区块链节点指的是触发待上链交易数据的区块链节点,其可以作为数据提供方。

本申请实施例中将第一区块链节点所维护的账本称为第一账本,其中第一账本具有账本标识信息,账本标识信息是用于唯一表征账本的信息。

在本申请的一个实施例中,请参阅图9,在步骤S801中获取触发待上链交易数据的第一区块链节点所对应的第一账本的过程之前,还可以包括步骤S901至步骤S902,详细介绍如下:

步骤S901,接收第一区块链节点发送的针对第一合约的第一调用请求;

步骤S902,根据第一调用请求触发对第一合约的执行,以生成待上链交易数据。

也即,可选实施例中待上链交易数据的生成过程可以是,区块链共识节点接收到第一区块链节点发送的针对第一合约的第一调用请求,之后根据第一调用请求触发对第一合约的执行,从而生成待上链交易数据。其中,可选实施例中第一合约即为前述所介绍的智能合约,其是位于核心链上的合约,因而也称为链上合约。

这样,区块链共识节点通过接收到的针对第一合约的第一调用请求,触发对第一合约的执行,可以快速简便地生成待上链交易数据。

在本申请的一个实施例中,请参阅图10,在步骤S801中获取触发待上链交易数据的第一区块链节点所对应的第一账本的过程之前,还可以包括步骤S1001至步骤S1002,详细介绍如下:

步骤S1001,接收第一区块链节点发送的添加请求;其中,添加请求包括第一区块链节点的第一账本的账本标识信息;

步骤S1002,根据第一账本的账本标识信息在区块链系统上添加第一区块链节点。

也即,可选实施例中首先要在区块链系统中添加第一区块链节点,其中,在区块链系统中添加第一区块链节点的过程可以是,区块链共识节点接收第一区块链节点发送的携带有第一区块链节点的第一账本的账本标识信息的添加请求,之后根据第一账本的账本标识信息在区块链系统上添加第一区块链节点。

这样,如果有实体需要在区块链系统中进行添加以成为第一区块链节点时,其通过发起添加请求,可以快速简便地完成添加,添加过程简单。

在本申请的一个实施例中,请参阅图11,步骤S1002中根据第一账本的账本标识信息在区块链系统上添加第一区块链节点的过程,可以包括步骤S1101至步骤S1102,详细介绍如下:

步骤S1101,根据第一账本的账本标识信息在区块链系统上注册第一区块链节点,并获取所注册的链上地址;

步骤S1102,将第一账本的账本标识信息与链上地址进行关联,得到关联结果,以完成第一区块链节点的添加。

也即,可选实施例中根据第一账本的账本标识信息在区块链系统上添加第一区块链节点的过程具体可以是,区块链共识节点根据第一账本的账本标识信息在区块链系统上注册第一区块链节点,并获取所注册的链上地址,之后将第一账本的账本标识信息与链上地址进行关联,得到关联结果,以完成第一区块链节点的添加。

这样,通过将第一账本的账本标识信息与链上地址进行关联,可以准确地实现第一区块链节点的添加,并且后续可以根据第一账本的账本标识和/或链上地址查找到第一区块链节点。

在本申请的一个实施例中,请参阅图12,在步骤S1102中将第一账本的账本标识信息与链上地址进行关联,得到关联结果的过程之前,还可以包括步骤S1201至步骤S1203,详细介绍如下:

步骤S1201,接收第一区块链节点发送的账本标识分配请求;

步骤S1202,根据账本标识分配请求生成与第一区块链节点相匹配的账本标识信息;

步骤S1203,发送与第一区块链节点相匹配的账本标识信息至第一区块链节点,以使第一区块链节点得到具有与第一区块链节点相匹配的账本标识信息的第一账本。

也即,可选实施例中第一区块链节点的第一账本的账本标识信息的由来过程可以是,区块链共识节点接收第一区块链节点发送的账本标识分配请求,之后根据账本标识分配请求生成与第一区块链节点相匹配的账本标识信息,并发送所生成的与第一区块链节点相匹配的账本标识信息至第一区块链节点中,相应地,第一区块链节点可以根据所接收到的账本标识信息对第一账本进行设置,从而得到具有与第一区块链节点相匹配的账本标识信息的第一账本。

这样,通过由区块链共识节点来确定注册至区块链系统中的第一区块链节点的账本标识信息,便于账本标识信息的统一管理,提升了账本标识信息管理的效率。

步骤S802,根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点。

本申请实施例中获取触发待上链交易数据的第一区块链节点所对应的第一账本,之后可以根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点。

本申请实施例中由区块链共识节点所管理的多个账本标识信息之间具有包含关系,其在一定程度上体现了各个区块链节点(第一区块链节点、第二区块链以及区块链共识节点)之间的上下包含关系。例如设第一区块链节点是个体,第二区块链节点有多个,分别是企业、区管理部门业务管理中心、市管理部门业务管理中心以及省管理部门业务管理中心,区块链共识节点是总管管理部门业务管理中心;那么第一区块链节点对应的第一账本的账本标识信息、多个第二区块链节点对应的第二账本的账本标识信息以及区块链共识节点对应的共享账本的账本标识信息存在包含关系。

本申请实施例中账本标识信息包括但不限于4位描述信息编码+2位版本号编码+2位业务类型编码+6位地区编码+2位实体类型编码+16位实体id编码(前8位实体id/机构编码+后8位实体id/机构编码)。可以理解的是,在实际应用中,账本标识信息包括的内容可以灵活调整,例如在前述所介绍的账本标识信息所包括内容的基础上可以增加或减少部分内容,以及各个内容的位数也可以灵活调整。

在本申请的一个实施例中,请参阅图13,为一种示例的账本标识信息的构成示意图,如图13所示,账本标识信息包括依次排列的4位描述信息编码+2位版本号编码+2位业务类型编码+6位地区编码+2位实体类型编码+16位实体id编码(前8位实体id/机构编码+后8位实体id/机构编码)。

在本申请的一个实施例中,请参阅图14,为一种示例的账本标识信息的构成示意图,如图14所示,描述信息编码可以指的是业务的名称编码,例如有业务1、业务2、业务3等,其中业务1、业务2、业务3分别为3种不同类型的业务;版本号编码可以指的是业务的所属版本编码,版本号主要用于在业务过多时,提前预留的位数;业务类型编码可以指的是业务的类型编码;地区编码指的是整个完整地区的编码,例如某省、某市、某区;实体类型指的是所属企业、机构、个体等,其对应有实体前8位编码以及后8位编码。

举例说明,例如以业务为图14中所述的业务1示例,具体地,与业务1相关联的区块链节点的账本标识信息的如表1所示。

表1

由表1可知,账本标识信息之间的包含关系是,某公司员工tom对应的账本标识信息包含了某公司、深圳市业务1管理中心、广东省业务1管理中心以及业务1管理中心总部对应的账本标识信息;相应地,某公司对应的账本标识信息包含了深圳市业务1管理中心、广东省业务1管理中心以及业务1管理中心总部对应的账本标识信息;相应地,深圳市业务1管理中心对应的账本标识信息包含了广东省业务1管理中心以及业务1管理中心总部对应的账本标识信息;相应地,广东省业务1管理中心对应的账本标识信息包含了业务1管理中心总部对应的账本标识信息。

可以理解的是,总部通常在核心链上,如表1所示例的业务1管理中心总部在核心链上,其对应区块链共识节点,而对于某公司员工tom、某公司、深圳市业务1管理中心、广东省业务1管理中心则不在核心链上。其中,如果某公司员工tom向业务1管理中心总部发起针对第一合约的第一调用请求,那么某公司员工tom则是作为触发待上链交易数据的第一区块链节点,相应地,某公司、深圳市业务1管理中心、广东省业务1管理中心则是作为第二区块链节点。其中,如果某公司向业务1管理中心总部发起针对第一合约的第一调用请求,那么某公司则是作为触发待上链交易数据的第一区块链节点,相应地,深圳市业务1管理中心、广东省业务1管理中心则是作为第二区块链节点,同时基于某公司触发的待上链交易数据所针对的具体员工,相应地,待上链交易数据上链处理后得到上链后交易数据,必然会发送至具体员工。

在本申请的一个实施例中,请参阅图15,在步骤S802中根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点的过程之前,还可以包括步骤S1501至步骤S1502,详细介绍如下:

步骤S1501,接收第二区块链节点发送的添加请求;其中,添加请求包括第二区块链节点的第二账本的账本标识信息;

步骤S1502,根据第二账本的账本标识信息在区块链系统上添加第二区块链节点。

也即,可选实施例中首先要在区块链系统中添加第二区块链节点,其中,在区块链系统中添加第二区块链节点的过程可以是,区块链共识节点接收第二区块链节点发送的携带有第二区块链节点的第二账本的账本标识信息的添加请求,之后根据第二账本的账本标识信息在区块链系统上添加第二区块链节点。

这样,如果有实体需要在区块链系统中进行添加以成为第二区块链节点时,其通过发起添加请求,可以快速简便地完成添加,添加过程简单。

在本申请的一个实施例中,请参阅图16,步骤S1502中根据第二账本的账本标识信息在区块链系统上添加第二区块链节点的过程,可以包括步骤S1601至步骤S1602,详细介绍如下:

步骤S1601,根据第二账本的账本标识信息在区块链系统上注册第二区块链节点,并获取所注册的链上地址;

步骤S1602,将第二账本的账本标识信息与链上地址进行关联,得到关联结果,以完成第二区块链节点的添加。

也即,可选实施例中根据第二账本的账本标识信息在区块链系统上添加第二区块链节点的过程具体可以是,区块链共识节点根据第二账本的账本标识信息在区块链系统上注册第二区块链节点,并获取所注册的链上地址,之后将第二账本的账本标识信息与链上地址进行关联,得到关联结果,以完成第二区块链节点的添加。

这样,通过将第二账本的账本标识信息与链上地址进行关联,可以准确地实现第二区块链节点的添加,并且后续可以根据第二账本的账本标识和/或链上地址查找到第二区块链节点。

在本申请的一个实施例中,请参阅图17,在步骤S1602中将第二账本的账本标识信息与链上地址进行关联,得到关联结果的过程之前,还可以包括步骤S1701至步骤S1703,详细介绍如下:

步骤S1701,接收第二区块链节点发送的账本标识分配请求;

步骤S1702,根据账本标识分配请求生成与第二区块链节点相匹配的账本标识信息;

步骤S1703,发送与第二区块链节点相匹配的账本标识信息至第二区块链节点,以使第二区块链节点得到具有与第二区块链节点相匹配的账本标识信息的第二账本。

也即,可选实施例中第二区块链节点的第二账本的账本标识信息的由来过程可以是,区块链共识节点接收第二区块链节点发送的账本标识分配请求,之后根据账本标识分配请求生成与第二区块链节点相匹配的账本标识信息,并发送所生成的与第二区块链节点相匹配的账本标识信息至第二区块链节点中,相应地,第二区块链节点可以根据所接收到的账本标识信息对第二账本进行设置,从而得到具有与第二区块链节点相匹配的账本标识信息的第二账本。

这样,通过由区块链共识节点来确定注册至区块链系统中的第二区块链节点的账本标识信息,便于账本标识信息的统一管理,提升了账本标识信息管理的效率。

需要说明的是,这里所介绍的第二区块链节点在区块链系统中的添加过程与前述所介绍的第一区块链节点在区块链系统中进行添加的过程相似。

在本申请的一个实施例中,请参阅图18,步骤S802中根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点的过程,可以包括步骤S1801至步骤S1802,详细介绍如下:

步骤S1801,根据账本标识信息的编码规则,对第一账本的账本标识信息进行解析处理,得到多个节点标识信息;

步骤S1802,根据账本标识信息之间的包含关系,以及多个节点标识信息,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点。

也即,可选实施例中区块链共识节点可以是根据账本标识信息的编码规则,对第一账本的账本标识信息进行解析处理,得到多个节点标识信息,之后根据账本标识信息之间的包含关系,以及多个节点标识信息,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点。

这样,通过根据账本标识信息的编码规则,可以快速准确地确定出待上链交易数据待写入的第二区块链节点的第二账本。

在本申请的一个实施例中,编码规则包括每个区块链节点对应的编码位数;请参阅图19,步骤S1801中根据账本标识信息的编码规则,对第一账本的账本标识信息进行解析处理,得到多个节点标识信息的过程,可以包括步骤S1901至步骤S1902,详细介绍如下:

步骤S1901,根据编码位数对第一账本的账本标识信息进行拆分,得到多个编码字段;

步骤S1902,对多个编码字段分别进行识别处理,得到多个编码字段对应的识别结果,并将多个编码字段对应的识别结果作为多个节点标识信息。

也即,可选实施例中区块链共识节点可以根据编码位数对第一账本的账本标识信息进行拆分,得到多个编码字段,之后对多个编码字段分别进行识别处理,得到多个编码字段对应的识别结果,并将多个编码字段对应的识别结果作为多个节点标识信息。其中,可选实施例中区块链共识节点在进行账本标识信息的管理时,针对每个区块链节点预置有编码字段。例如如前述表1所介绍的预置的业务1对应的编码字段为01,总局地区对应的编码字段为000000,广东省对应的编码字段为44,深圳市对应的编码字段为0300,公司实体类型对应的编码字段为02,公司实体对应的编码字段为company,个体实体对应的编码字段为tom。

这样,通过对多个编码字段分别进行识别处理,可以得到多个节点标识信息,以为后续确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点提供支持。

在本申请的一个实施例中,步骤S1902中对多个编码字段分别进行识别处理,得到多个编码字段对应的识别结果的过程,可以包括以下步骤:

根据预设区块链节点与编码字段映射关系,分别确定多个编码字段对应的区块链节点,并将编码字段对应的区块链节点作为编码字段对应的识别结果。

也即,可选实施例中区块链共识节点可以获取得到多个编码字段,之后可以在预设区块链节点与编码字段映射关系中分别查找各个编码字段所对应的区块链节点,此时编码字段所对应的区块链节点即为编码字段的识别结果。其中,可选实施例中预设区块链节点与编码字段关系中预置有多个区块链节点,以及多个区块链节点分别对应的编码字段。

这样,通过预设区块链节点与编码字段映射关系,可以快速准确地得到编码字段对应的识别结果,即可以快速准确地得到多个节点标识信息。

在本申请的一个实施例中,根据预设区块链节点与编码字段映射关系,分别确定多个编码字段对应的区块链节点的过程之前,还可以包括以下步骤:

接收设置请求,设置请求中携带有区块链节点的名称,以及与区块链节点的名称相匹配的编码字段;

将区块链节点的名称,以及与区块链节点的名称相匹配的编码字段进行关联存储,以生成预设区块链节点与编码字段映射关系。

也即,可选实施例中生成预设区块链节点与编码字段映射关系的过程可以是,区块链共识节点接收携带有区块链节点的名称,以及与区块链节点的名称相匹配的编码字段的设置请求,之后将区块链节点的名称,以及与区块链节点的名称相匹配的编码字段进行关联存储,从而生成预设区块链节点与编码字段映射关系。其中,可选实施例中设置请求可以以任意方式进行下发,下发设置请求的方式包括但不限于输入(文字输入、语音输入)、点击、滑动、选择等。

这样,通过根据设置请求中所对应的区块链节点的名称,以及与区块链节点的名称相匹配的编码字段进行关联存储,可以快速简便地生成预设区块链节点与编码字段映射关系,以为得到编码字段对应的识别结果提供支持,即为得到多个节点标识信息提供支持。

在本申请的一个实施例中,第二账本的数量为多个,即第二区块链节点为多个,其中第二区块链节点与第二账本为一比一的关系。

在本申请的一个实施例中,账本标识信息之间的包含关系包括:管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系。

在本申请的一个实施例中,请参阅图20,步骤S1802中根据账本标识信息之间的包含关系,以及多个节点标识信息,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点的过程,可以包括步骤S2001至步骤S2002,详细介绍如下:

步骤S2001,根据第一账本的账本标识信息所表征的账本归属信息,从管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系中选择目标包含关系;

步骤S2002,根据目标包含关系,以及多个节点标识信息,确定上链后交易数据待写入的第二区块链节点的第二账本。

也即,可选实施例中区块链共识节点可以根据第一账本的账本标识信息所表征的账本归属信息,从管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系中选择目标包含关系,之后根据目标包含关系,以及多个节点标识信息,确定上链后交易数据待写入的第二区块链节点的第二账本。其中,可选实施例中目标包含关系指的是从管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系中所选择出的包含关系。

在本申请的一个实施例中,如果第一账本的账本标识信息表征第一账本归属于管理部门对应的区块链节点,则从管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系中选择目标包含关系中选择管理部门之间的包含关系作为目标包含关系;那么之后是根据管理部门之间的包含关系,组合多个节点标识信息,得到上链后交易数据待写入的第二区块链节点的第二账本。

在本申请的一个实施例中,如果第一账本的账本标识信息表征第一账本归属于企业对应的区块链节点,则从管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系中选择目标包含关系中选择管理部门之间的包含关系,以及管理部门与企业之间的包含关系作为目标包含关系;那么之后是根据管理部门之间的包含关系,以及管理部门与企业之间的包含关系,组合多个节点标识信息,得到上链后交易数据待写入的第二区块链节点的第二账本。

在本申请的一个实施例中,如果第一账本的账本标识信息表征第一账本归属于个体对应的区块链节点,则从管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系中选择管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系作为目标包含关系;那么之后是根据管理部门之间的包含关系、管理部门与企业之间的包含关系,以及企业与个体之间的包含关系,组合多个节点标识信息,得到上链后交易数据待写入的第二区块链节点的第二账本。

在本申请的一个实施例中,请参阅图21,在步骤S1802中根据账本标识信息之间的包含关系,以及多个节点标识信息,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点的过程之前,还可以包括步骤S2101至步骤S2103,详细介绍如下:

步骤S2101,获取多个区块链节点对应的业务类型信息;

步骤S2102,将多个业务类型信息中属于同一类业务类型信息的区块链节点划分为一组,以得到多组区块链节点;其中,每组区块链节点中包括至少两个区块链节点;

步骤S2103,生成至少两个区块链节点对应的具有包含关系的账本标识信息。

也即,可选实施例中区块链共识节点可以获取多个区块链节点对应的业务类型信息,之后将多个业务类型信息中属于同一类业务类型信息的区块链节点划分为一组,以得到多组区块链节点,其中每组区块链节点中包括至少两个区块链节点,之后生成至少两个区块链节点对应的具有包含关系的账本标识信息。其中,可选实施例中同一组中的区块链节点对应同一业务类型,因此同一组中的区块链节点的账本的账本标识信息具有包含关系;简言之,同一组中的区块链节点的业务编码相同。例如设有组1和组2,其中组1针对业务1,其包括的多个区块链节点对应的账本的账本标识信息具有包含关系,组2针对业务2,其包括的多个区块链节点对应的账本的账本标识信息具有包含关系。

步骤S803,将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据。

本申请实施例中步骤S801至步骤S802中确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点的过程,可以和步骤S803中将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据的过程并行执行,也可以任意交换顺序执行。

在本申请的一个实施例中,请参阅图22,步骤S803中将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据的过程,可以包括步骤S2201至步骤S2202,详细介绍如下:

步骤S2201,对待上链交易数据进行验证处理与共识处理;

步骤S2202,若验证处理与共识处理均通过,则将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据。

也即,可选实施例中区块链共识节点可以对待上链交易数据进行验证处理与共识处理,如果验证处理与共识处理均通过,则将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据,如果验证处理与共识处理中任一未通过,则此时不进行上链处理。

这样,只有当验证处理与共识处理均通过时,才将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据,从而保证了上链后交易数据的安全性。

在本申请的一个实施例中,请参阅图23,步骤S2202中将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据的过程,可以包括步骤S2301至步骤S2303,详细介绍如下:

步骤S2301,接收第一区块链节点发送的与待上链交易数据相关联的签名数据;

步骤S2302,根据签名数据对待上链交易数据进行验证处理;

步骤S2303,若验证处理通过,则对待上链交易数据进行共识处理。

也即,可选实施例中区块链共识节点可以接收第一区块链节点发送的与待上链交易数据相关联的签名数据,之后根据签名数据对待上链交易数据进行验证处理,如果验证处理通过,则对待上链交易数据进行共识处理,如果验证处理未通过,则此时不对待上链交易数据进行共识处理。

这样,只有当验证处理通过时,才对待上链交易数据进行共识处理,提升了共识处理的效率,避免了由于验证处理未通过就进行共识处理所导致的共识处理失败的现象。

步骤S804,将上链后交易数据发送至第一区块链节点,以使第一区块链节点将上链后交易数据写入至第一账本中,以及将上链后交易数据发送至第二区块链节点,以使第二区块链节点将上链后交易数据写入至第二账本中。

本申请实施例中在确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点,以及将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据,之后可以将上链后交易数据发送至第一区块链节点,相应地,第一区块链节点将上链后交易数据写入至第一账本中,以及将上链后交易数据发送第二区块链节点,相应地,第二区块链节点将上链后交易数据写入至第二账本中。

在本申请的一个实施例中,上链后交易数据还包括:第二区块链节点的操作权限信息,操作权限信息包括读操作权限以及写操作权限中的至少一种;请参阅图24,在步骤S804中将上链后交易数据发送至第二区块链节点的过程之后,还可以包括步骤S2401至步骤S2403,详细介绍如下:

步骤S2401,接收第二区块链节点发送的针对第二合约的第二调用请求;

步骤S2402,若第二调用请求满足操作权限信息,则根据第二调用请求触发对第二合约的执行,以对上链后交易数据进行与操作权限信息对应的操作处理,得到处理后的上链后交易数据;

步骤S2403,将第二账本的账本标识信息,以及处理后的上链后交易数据进行关联上链处理。

也即,可选实施例中区块链共识节点接收第二区块链节点发送的针对第二合约的第二调用请求,如果第二调用请求满足操作权限信息,则可以根据第二调用请求触发对第二合约的执行,以对上链后交易数据进行与操作权限信息对应的操作处理,得到处理后的上链后交易数据,之后将第二账本的账本标识信息,以及处理后的上链后交易数据进行关联上链处理;如果第二调用请求未满足操作权限信息,则此时不触发对第二合约的执行。

这样,通过将第二调用请求与对应的操作权限信息进行匹配,只有当第二调用请求满足操作权限信息时,才根据第二调用请求触发对第二合约的执行,实现对上链后交易数据的与操作权限信息对应的操作处理,保证了数据的安全性。

在本申请的一个实施例中,第二调用请求包括写入至第二账本中的上链后交易数据的第一版本信息;请参阅图25,步骤S2402中若第二调用请求满足操作权限信息,则根据第二调用请求触发对第二合约的执行的过程,可以包括步骤S2501至步骤S2502,详细介绍如下:

步骤S2501,将第一版本信息与区块链系统所存储的上链后交易数据的第二版本信息进行比较;

步骤S2502,若第一版本信息与第二版本信息匹配,则根据第二调用请求触发对第二合约的执行。

也即,可选实施例中区块链共识节点所接收到的第二调用请求中包括了写入至第二账本中的上链后交易数据的第一版本信息,因此,其可以将第一版本信息与区块链系统所存储的上链后交易数据的第二版本信息进行比较,如果第一版本信息与第二版本信息匹配,则根据第二调用请求触发对第二合约的执行,如果第一版本信息与第二版本信息不匹配,则此时不触发对第二合约的执行。

这样,通过版本信息的比较,可以避免其他区块链节点对区块链系统所存储的上链后交易数据进行更新后,第二区块链节点却未更新仍以更新前的上链后交易数据进行操作处理导致操作处理出错的现象。

图8所示实施例是从区块链共识节点的角度进行的阐述,以下结合图26从第二区块链节点的角度对本申请实施例的技术方案的实现细节进行详细阐述:

请参阅图26,图26是本申请的一个实施例示出的基于区块链系统的数据处理方法的流程图,该基于区块链系统的数据处理方法可以由区块链系统中的第二区块链节点来执行。如图26所示,基于区块链系统的数据处理方法至少包括步骤S2601至步骤S2602,详细介绍如下:

步骤S2601,接收上链后交易数据;其中,上链后交易数据是由区块链共识节点获取触发待上链交易数据的第一区块链节点所对应的第一账本,并根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点,以及将待上链交易数据进行上链处理后得到并发送的。

本申请实施例中第二区块链节点接收区块链共识节点发送的上链后交易数据,具体地,区块链共识节点如何确定第二区块链节点的过程请参见前述实施例,这里不再赘述。

在本申请的一个实施例中,请参阅图27,步骤S2601中接收上链后交易数据的过程,可以包括以下步骤S2701至步骤S2702,详细介绍如下:

步骤S2701,接收上链后交易数据,并生成上链后交易数据对应的通知信息;

步骤S2702,展示通知信息,以使第二区块链节点根据通知信息确定存在上链后交易数据到达。

也即,可选实施例中第二区块链节点可以接收上链后交易数据,并生成上链后交易数据对应的通知信息,以及展示通知信息,第二区块链节点可以根据通知信息确定当前存在上链后交易数据到达。

这样,通过通知信息的提醒,第二区块链节点可以确定当前存在上链后交易数据到达,从而采取相应操作处理,提升数据处理及时性。

步骤S2602,将上链后交易数据写入至第二账本中。

本申请实施例中第二区块链节点接收到区块链共识节点发送的上链后交易数据,之后便可以将上链后交易数据写入至第二账本中。

在本申请的一个实施例中,请参阅图28,在步骤S2601中接收上链后交易数据的过程之前,还可以包括步骤S2801至步骤S2802,详细介绍如下:

步骤S2801,接收账本标识设置请求;其中,账本标识设置请求中携带有账本标识信息;

步骤S2802,根据账本标识信息得到具有账本标识信息的第二账本;其中,不同区块链节点针对同一类业务类型信息的账本所对应的账本标识信息存在包含关系。

也即,可选实施例中区块链共识节点可以主动发送账本标识信息,相应地,第二区块链节点接收区块链共识节点发送的携带有账本标识信息账本标识设置请求,根据账本标识信息得到具有账本标识信息的第二账本,其中不同区块链节点针对同一类业务类型信息的账本所对应的账本标识信息存在包含关系。

这样,通过接收区块链共识节点发送的携带有账本标识信息账本标识设置请求,可以简单便捷地得到具有账本标识信息的第二账本。

在本申请的一个实施例中,请参阅图29,在步骤S2602中将上链后交易数据写入至第二账本中的过程之后,还可以包括步骤S2901至步骤S2902,详细介绍如下:

步骤S2901,接收操作请求;其中,操作请求中携带有签名数据;

步骤S2902,若对签名数据的校验通过,则允许对第二账本中所写入的上链后交易数据执行指定操作。

也即,可选实施例中第二区块链节点可以接收其他区块链节点发送的携带有签名数据的操作请求,之后对签名数据进行校验,如果对签名数据的校验通过,则允许对第二账本中所写入的上链后交易数据执行指定操作,如果对签名数据的校验未通过,则不允许对第二账本中所写入的上链后交易数据执行指定操作。其中,可选实施例中执行操作包括但不限于查看操作、获取操作等,在实际应用中,可以根据具体应用场景进行灵活调整。

这样,只有当对签名数据的校验通过时,才允许对第二账本中所写入的上链后交易数据执行指定操作,保证了数据的安全性。

本申请实施例中将数据来源方对应的第一账本的标识信息、数据去向方对应的第二账本的标识信息,以及待上链交易数据进行关联上链处理,从而在数据协作过程中如果出现问题,则可以根据上链后交易数据中第一账本的标识信息和/或第二账本的标识信息快速准确地定位到责任方,从而便于数据协作的管理,降低了数据协作的难度。

以下对本申请实施例的一个具体应用场景进行详细说明:

请参阅图30,存在3个参加方1-3,其中参加方1对应账本1,参加方2对应账本2,参加方3对应账本3,参加方为前述实施例中的区块链节点,其均未在核心链上;在核心链上的是多个区块链共识节点1-4,其中每个区块链共识节点均对应协作合约(也称共享合约)。

请再参阅图30,本申请实施例中基于区块链系统的数据处理过程如下:

1、区块链共识节点获取触发待上链交易数据的第一区块链节点所对应的第一账本。

可选地,第一区块链节点为参加方1,即为数据来源方。

可选地,参加方1发起协作,从而触发待上链交易数据,此时获取参加方所对应的账本1。

2、区块链共识节点根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点。

可选地,根据账本1的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含账本1的账本标识信息的第二账本为账本2-3,因此,确定第二区块链节点为参加方2-3,即为数据去向方。

3、区块链共识节点将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据。

可选地,将账本1-3的账本标识,待上链交易数据进行关联上链处理,得到上链后交易数据。

4、区块链共识节点将上链后交易数据发送至第一区块链节点,以使第一区块链节点将上链后交易数据写入至第一账本中,以及将上链后交易数据发送至第二区块链节点,以使第二区块链节点将上链后交易数据写入至第二账本中。

可选地,将上链后交易数据发送至参加方1,相应地,参加方1将上链后交易数据写入至账本1中(图30中未示意出);以及将上链后交易数据发送至参加方2,相应地,参加方2将上链后交易数据写入至账本2中;以及将上链后交易数据发送至参加方3,相应地,参加方3将上链后交易数据写入至账本3中。

可选地,参加方2还可以发起更新数据的操作请求,相应地,该发起更新数据的操作请求的过程与参加方1发起协作的过程类似,这里不再赘述。

可选地,区块链共识节点将上链后交易数据发送/清分至参加方2-3时,参加方2-3可以自动生成对应的通知信息,并展示该通知信息,这样参加方2-3就可以根据通知信息确定当前存在上链后交易数据到达。

可选地,其他具体实施过程请参见前述实施例,这里不再赘述。

本申请实施例中将参加方1对应的第一账本的标识信息、参加方2-3对应的第二账本的标识信息,以及待上链交易数据进行关联上链处理,从而在数据协作过程中如果出现问题,则可以根据上链后交易数据中第一账本的标识信息和/或第二账本的标识信息快速准确地定位到责任方,例如参加方2进行了数据的错误处理,或者参加方3进行了延迟处理等,从而可以更好地管理数据协作流程。

图31是本申请的一个实施例示出的基于区块链系统的数据处理装置的框图。如图31所示,区块链系统中的区块链节点所维护的账本具有账本标识信息,该装置包括:

获取模块3101,配置为获取触发待上链交易数据的第一区块链节点所对应的第一账本;

确定模块3102,配置为根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点;

上链模块3103,配置为将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据;

发送模块3104,配置为将上链后交易数据发送至第一区块链节点,以使第一区块链节点将上链后交易数据写入至第一账本中,以及将上链后交易数据发送至第二区块链节点,以使第二区块链节点将上链后交易数据写入至第二账本中。

在本申请的一个实施例中,装置还包括:

第一接收单元,配置为接收第二区块链节点发送的添加请求;其中,添加请求包括第二区块链节点的第二账本的账本标识信息;

添加单元,配置为根据第二账本的账本标识信息在区块链系统上添加第二区块链节点。

在本申请的一个实施例中,添加单元具体配置为:

根据第二账本的账本标识信息在区块链系统上注册第二区块链节点,并获取所注册的链上地址;

将第二账本的账本标识信息与链上地址进行关联,得到关联结果,以完成第二区块链节点的添加。

在本申请的一个实施例中,装置还包括:

第二接收单元,配置为接收第二区块链节点发送的账本标识分配请求;

生成单元,配置为根据账本标识分配请求生成与第二区块链节点相匹配的账本标识信息;

发送单元,配置为发送与第二区块链节点相匹配的账本标识信息至第二区块链节点,以使第二区块链节点得到具有与第二区块链节点相匹配的账本标识信息的第二账本。

在本申请的一个实施例中,装置还包括:

第三接收单元,配置为接收第一区块链节点发送的针对第一合约的第一调用请求;

第一触发单元,配置为根据第一调用请求触发对第一合约的执行,以生成待上链交易数据。

在本申请的一个实施例中,上链后交易数据还包括:第二区块链节点的操作权限信息,操作权限信息包括读操作权限以及写操作权限中的至少一种;装置还包括:

第四接收单元,配置为接收第二区块链节点发送的针对第二合约的第二调用请求;

第二触发单元,配置为若第二调用请求满足操作权限信息,则根据第二调用请求触发对第二合约的执行,以对上链后交易数据进行与操作权限信息对应的操作处理,得到处理后的上链后交易数据;

上链单元,配置为将第二账本的账本标识信息,以及处理后的上链后交易数据进行关联上链处理。

在本申请的一个实施例中,第二调用请求包括写入至第二账本中的上链后交易数据的第一版本信息;第二触发单元具体配置为:

将第一版本信息与区块链系统所存储的上链后交易数据的第二版本信息进行比较;

若第一版本信息与第二版本信息匹配,则根据第二调用请求触发对第二合约的执行。

在本申请的一个实施例中,上链模块3103包括:

验证与共识单元,配置为对待上链交易数据进行验证处理与共识处理;

上链单元,配置为若验证处理与共识处理均通过,则将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理,得到上链后交易数据。

在本申请的一个实施例中,验证与共识单元具体配置为:

接收第一区块链节点发送的与待上链交易数据相关联的签名数据;

根据签名数据对待上链交易数据进行验证处理;

若验证处理通过,则对待上链交易数据进行共识处理。

图32是本申请的一个实施例示出的基于区块链系统的数据处理装置的框图。如图32所示,区块链系统中的区块链节点所维护的账本具有账本标识信息,该装置包括:

接收模块3201,配置为接收上链后交易数据;其中,上链后交易数据是由区块链共识节点获取触发待上链交易数据的第一区块链节点所对应的第一账本,并根据第一账本的账本标识信息,以及账本标识信息之间的包含关系,确定账本标识信息包含第一账本的账本标识信息的第二账本,以及第二账本对应的第二区块链节点,以及将第一账本的账本标识信息、第二账本的账本标识信息,以及待上链交易数据进行关联上链处理后得到并发送的;

写入模块3202,配置为将上链后交易数据写入至第二账本中。

在本申请的一个实施例中,接收模块3201包括:

接收与生成单元,配置为接收上链后交易数据,并生成上链后交易数据对应的通知信息;

展示单元,配置为展示通知信息,以使第二区块链节点根据通知信息确定存在上链后交易数据到达。

在本申请的一个实施例中,装置还包括:

接收单元,配置为接收针对第二账本中所写入的上链后交易数据的操作请求;其中,操作请求中携带有签名数据;

执行单元,配置为若对签名数据的校验通过,则允许对第二账本中所写入的上链后交易数据执行指定操作。

需要说明的是,上述实施例所提供的装置与上述实施例所提供的方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,这里不再赘述。

本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得电子设备实现如前的基于区块链系统的数据处理方法。

图33示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图33示出的电子设备的计算机系统3300仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图33所示,计算机系统3300包括中央处理单元(Central Processing Unit,CPU)3301,其可以根据存储在只读存储器(Read-Only Memory,ROM)3302中的程序或者从存储部分3308加载到随机访问存储器(Random Access Memory,RAM)3303中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 3303中,还存储有系统操作所需的各种程序和数据。CPU3301、ROM 3302以及RAM 3303通过总线3304彼此相连。输入/输出(Input/Output,I/O)接口3305也连接至总线3304。

以下部件连接至I/O接口3305:包括键盘、鼠标等的输入部分3306;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分3307;包括硬盘等的存储部分3308;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分3309。通信部分3309经由诸如因特网的网络执行通信处理。驱动器3310也根据需要连接至I/O接口3305。可拆卸介质3311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器3310上,以便于从其上读出的计算机程序根据需要被安装入存储部分3308。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分3309从网络上被下载和安装,和/或从可拆卸介质3311被安装。在该计算机程序被中央处理单元(CPU)3301执行时,执行本申请的系统中限定的各种功能。

需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不相同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。

本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前的基于区块链系统的数据处理方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。

本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的基于区块链系统的数据处理方法。

上述内容,仅为本申请的较佳示例性实施例,并非用于限制本申请的实施方案,本领域普通技术者根据本申请的主要构思和精神,可以十分方便地进行相应的变通或修改,故本申请的保护范围应以权利要求书所要求的保护范围为准。

相关技术
  • 基于区块链的贷款数据处理方法、装置、设备及存储介质
  • 基于区块链的数据处理方法、装置、设备和存储介质
  • 基于区块链的数据处理方法、装置、介质及电子设备
  • 一种区块链的数据处理方法、装置、设备及介质
  • 区块链的数据归档处理方法、装置、设备及存储介质
  • 基于区块链系统的交易数据处理方法、装置、设备及介质
  • 基于区块链系统的数据处理方法、装置、介质及电子设备
技术分类

06120116215977