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

区块链系统的数据同步方法、装置、介质及电子设备

文献发布时间:2023-06-19 10:18:07


区块链系统的数据同步方法、装置、介质及电子设备

技术领域

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

背景技术

在区块链网络的应用过程中,需要将生成的业务数据上传至区块链中。相关技术一般通过将生成的数据在区块链节点中进行共识,并在共识通过之后将数据上传至区块链中。但是这种方式在区块链节点数量较多、生成的数据量较大的情况下,需要通过较多的区块链节点来传输较大的数据量。

这种方式将导致各个节点都需要利用较大的网络资源来收发数据,而且大批量的数据在被各个节点传输的过程中,将占用较多的网络带宽,消耗较大的网络资源。尤其是在业务处理量高峰期而生成较多业务数据的情况下,大量的数据传输将可能造成网络负载较重,而降低网络资源的传输效率,同时降低数据传输的效率,进而阻碍区块链网络中的数据同步进程和效率,影响区块链节点的正常工作和数据的正常流转。

发明内容

本申请的实施例提供了一种区块链系统的数据同步方法、装置、计算机可读介质及电子设备,进而至少在一定程度上可以提高区块链系统中数据同步的效率以及数据的安全性。

本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。

根据本申请实施例的一个方面,提供了一种区块链系统的数据同步方法,应用于第一业务节点,所述区块链系统包括:包括多个业务节点的业务网络、包括多个共识节点的共识网络;所述方法包括:从位于所述业务网络与所述共识网络之间的路由节点,获取所述业务网络中的至少一个第二业务节点的节点信息,所述节点信息包括节点地址;基于所述至少一个第二业务节点的节点信息构建数据同步内网,其中,所述数据同步内网包括所述第一业务节点和至少一个第三业务节点,所述至少一个第三业务节点为所述至少一个第二业务节点中的全部或部分并且所述数据同步内网中的所述第一业务节点和所述至少一个第三业务节点之间相互通信连通;从所述第一业务节点和所述至少一个第三业务节点中选取至少一个代表节点,并将所述至少一个代表节点的节点信息广播至所述数据同步内网的各个第三业务节点,以便所述数据同步内网中除所述至少一个代表节点之外的其余业务节点经由所述至少一个代表节点与所述共识网络的共识节点进行数据通信。

根据本申请实施例的一个方面,提供了一种区块链系统的数据同步方法,所述区块链系统包括:包括多个业务节点的业务网络、包括多个共识节点的共识网络;所述方法应用于位于所述业务网络与所述共识网络之间的路由节点,包括:获取所述业务网络中的第一业务节点发送的连接请求;基于所述连接请求,检测所述第一业务节点的节点信息,并存储所述节点信息;将所存储所述区块链系统中的至少一个第二业务节点的节点信息发送至所述第一业务节点,以使所述第一业务节点基于所述至少一个第二业务节点的节点信息从所述至少一个第二业务节点中选取至少一个第三业务节点构成数据同步内网,并基于数据同步内网中的至少一个代表节点与所述共识网络的共识节点进行数据通信。

根据本申请实施例的一个方面,提供了一种区块链系统的数据同步装置,应用于第一业务节点,所述区块链系统包括:包括多个业务节点的业务网络、包括多个共识节点的共识网络;包括:获取单元,用于从位于所述业务网络与所述共识网络之间的路由节点,获取所述业务网络中的至少一个第二业务节点的节点信息,所述节点信息包括节点地址;构建单元,用于基于所述至少一个第二业务节点的节点信息构建数据同步内网,其中,所述数据同步内网包括所述第一业务节点和至少一个第三业务节点,所述至少一个第三业务节点为所述至少一个第二业务节点中的全部或部分并且所述数据同步内网中的所述第一业务节点和所述至少一个第三业务节点之间相互通信连通;同步单元,用于从所述第一业务节点和所述至少一个第三业务节点中选取至少一个代表节点,并将所述至少一个代表节点的节点信息广播至所述数据同步内网的各个第三业务节点,以便所述数据同步内网中除所述至少一个代表节点之外的其余业务节点经由所述至少一个代表节点与所述共识网络的共识节点进行数据通信。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置还包括选择单元,用于根据所述至少一个第二业务节点的节点信息从所述至少一个第二业务节点中选择出所述至少一个第三业务节点。

在本申请的一些实施例中,基于前述方案,所述节点信息包括如下至少一种:节点权限、业务类型或者网络信息;所述选择单元包括用于根据所述至少一个第二业务节点的节点信息,对所述至少一个第二业务节点进行匹配,确定网络信息相似的第二业务节点,作为所述至少一个第三业务节点。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置还用于所述第一业务节点和所述至少一个第三业务节点通过网络地址转换的方式连接到所述路由节点,并且所述第一业务节点和所述至少一个第三业务节点具有相同网络地址转换端口,其中,所述网络地址转换端口为所述第一业务节点和所述至少一个第三业务节点经过网络地址转换用于通信的地址 。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置还用于将所述第一业务节点注册为所述区块链系统中预先注册的节点机构的成员节点,并且基于所述第一业务节点的所述成员节点的身份信息,与所述至少一个第二业务节点之间进行握手验证,并将握手验证通过的第二业务节点作为所述第三业务节点。

在本申请的一些实施例中,基于前述方案,所述构建单元包括:节点确定单元,用于根据所述至少一个第二业务节点的节点信息确定所述至少一个第三业务节点;网络连接单元,用于基于所述至少一个第三业务节点的节点地址,在所述第一业务节点和所述至少一个第三业务节点之间建立网络连接;信息交换单元,用于通过所述第一业务节点和所述至少一个第三业务节点之间的网络连接,在所述第一业务节点和所述至少一个第三业务节点之间交换内网信息,所述内网信息包括内网地址,其中,所述内网地址为使用同一网络地址转换端口的业务节点之间用于通信的地址;内网构建单元,用于基于所述第一业务节点和所述至少一个第三业务节点对应的内网地址,构建所述数据同步内网。

在本申请的一些实施例中,基于前述方案,所述同步单元用于基于所述数据同步内网中所述业务节点的所述内网地址,生成所述业务节点对应的节点标识;基于所述节点标识,从所述业务节点中选取至少一个所述代表节点。

在本申请的一些实施例中,基于前述方案,所述内网信息还包括所述第一业务节点和所述至少一个第三业务节点的节点标识,根据所述节点标识从所述第一业务节点和所述至少一个第三业务节点选择至少一个所述代表节点。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置还用于若检测到所述至少一个代表节点出现故障,则从所述数据同步内网的所述其余业务节点中选取新的代表节点,以经由所述新的代表节点连接到至所述路由节点。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置还用于当所述第一业务节点检测到从所述至少一个代表节点获取到的数据校验失败时,所述第一业务节点从所述至少一个第三业务节点之外的其他业务节点或者路由节点重新获取数据。

根据本申请实施例的一个方面,提供了一种区块链系统的数据同步装置,所述区块链系统包括:包括多个业务节点的业务网络、包括多个共识节点的共识网络;应用于位于所述业务网络与所述共识网络之间的路由节点,包括:请求获取单元,用于获取所述业务网络中的第一业务节点发送的连接请求;检测单元,用于基于所述连接请求,检测所述第一业务节点的节点信息,并对所述节点信息进行存储;发送单元,用于将所存储所述区块链系统中的至少一个第二业务节点的节点信息发送至所述第一业务节点,以使所述第一业务节点基于所述至少一个第二业务节点的节点信息从所述至少一个第二业务节点中选取至少一个第三业务节点构成数据同步内网,并基于数据同步内网中的至少一个代表节点与所述共识网络的共识节点进行数据通信。

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

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

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

在本申请的一些实施例所提供的技术方案中,在基于业务网络和共识网络构建得到的区块链系统中,通过位于业务网络与共识网络之间的路由节点获取业务节点的节点信息,以基于节点信息在业务节点之间构建数据同步内网,之后从第一业务节点和至少一个第三业务节点中选取至少一个代表节点,以通过数据同步内网中除代表节点之外的其余节点发送业务数据至代表节点,并由代表节点通过路由节点将业务数据转发至共识网络的共识节点中,以此完成业务数据的同步,在保证业务数据安全性的前提下,避免了每个业务节点向共识网络上传数据时对网络资源的占用,降低了网络带宽负载,提高网络资源利用率以及数据同步的效率。

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

附图说明

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

图1示出了区块链网络的结构示意图。

图2示出了区块链中各区块的连接关系示意图。

图3示出了生成一个区块的过程示意图。

图4至图6示出了本申请实施例所应用的区块链系统的体系构架图。

图7示出了根据本申请的一个实施例的电子发票系统的示意图。

图8示意性示出了根据本申请的一个实施例的区块链系统的数据同步方法的流程图。

图9示意性示出了根据本申请的一个实施例的构建数据同步内网的流程图。

图10示意性示出了根据本申请的一个实施例的生成代表节点的示意图。

图11至图13示意性示出了根据本申请的一个实施例的通过代表节点同步业务数据的示意图。

图14示意性示出了根据本申请的一个实施例的区块链系统的数据同步方法的流程图。

图15示意性示出了根据本申请的一个实施例的将业务数据上传至共识网络的区块链的流程图。

图16示意性示出了根据本申请的一个实施例的区块链系统的数据同步装置的框图。

图17示意性示出了根据本申请的一个实施例的区块链系统的数据同步装置的框图。

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

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。

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

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

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

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

区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。

平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。

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

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

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

在生成区块链中的各个区块时,参见图3所示,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:

其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。

这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其它节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其它节点,由其它节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。

区块链网络中各个节点可以是服务器,也可以是终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(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上,以及对区块链上的数据区块进行验证。在业务节点11处理业务时,可能需要获取历史的业务数据,这种情况下,业务节点11可以对记账节点记录到区块链上的数据区块进行验证,在验证通过之后获取这些数据区块中的业务数据进行处理;或者可以向记账节点请求相应的交易数据,以基于交易数据中的信息处理相关的业务。

在一些实施方式中可以将业务节点网络1布置在公有网络中,而将记账节点网络2布置在私有网络中,由此可以兼顾业务处理的方便性和区块链网络的数据安全性。

除此之外,本实施例中由记账节点组成的记账节点网络,等同于共识节点组成的共识节点网络。

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

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

在图1所示的结构中,业务节点网络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分成了多个分支记账节点网络。每个分支记账节点网络可以负责某一种类型的交易信息的记录。例如,某一企业可能具有供应链金融业务,可能需要将供销过程中产生的合同信息、货款赊欠等信息记录到区块链上,同时该企业还要开具发票,也要把开票信息、发票报销信息等记录到区块链上。这时,为了有利于记账节点被同一部门监管的需要,可能记录供应链金融业务交易的记账节点和记录发票流转过程中的交易的记账节点要分属于不同部门。例如,记录供应链金融业务交易的记账节点是银行设置的记账终端,而记录发票流转过程中的交易的记账节点是国税局设置的记账终端。而供应链金融业务交易和记录发票流转过程中的交易可能也最终会记录在不同分支的记账节点网络上。这时,路由节点12要根据从业务节点11发来的交易信息中携带的交易类型,将该交易信息发送到与该交易类型对应的分支记账节点网络中。

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

图4至6所示的区块链系统的体系架构可以应用在电子发票的应用场景中,以下详细进行阐述:

在本申请的一个实施例中,记账节点网络中的记账节点可以是各个税务总局终端,比如由部署在多个地区的税务总局终端分别作为一个记账节点来构成记账节点网络。业务节点网络中的各个业务节点可以是地方税局终端、开票代理服务商终端、开票企业终端、个人用户终端等。

具体而言,在图7所示的电子发票系统中,可以包括业务层、路由代理层和共识网络(记账网络)层。其中,业务层即为业务节点网络,其中包含了各个业务节点,比如可以是处于税务专网中的地方税局;处于公有云中的开票服务商、报销服务商、企业等;处于私有云中的支付服务商、流转服务商、企业等。

路由代理层中包含了代理节点,即路由节点。本实施例中代理节点提供了路由服务、证书缓存和认证服务、P2P服务等功能,路由代理层起到对业务层和共识网络层的隔离作用,具体参照前述实施例的技术方案。可选地,路由代理层中的代理节点可以处于税务专网中。共识网络(记账网络)层即为记账节点网络,其中包含了多个区块链,当然在本申请的其它实施例中,共识网络(记账网络)层中也可以包含一个区块链。

图8示出了根据本申请的一个实施例的区块链系统的数据同步方法的流程图,该区块链网络包括:业务节点组成的业务网络、共识节点组成的共识网络。其中,共识节点组成的共识网络包括记账节点组成的记账节点网络。如图6所示,记账节点网络中维护有多个区块链,并且每个区块链对应于一种类型的业务。当然,区块链系统也可以采用如图4和图5所示的结构,但是需要包含有多个记账节点网络,这样每个记账节点网络维护一个区块链,每个区块链也可以对应于一种类型的业务。

图8所示的区块链系统的数据同步方法可以由用于对业务节点进行管理的管理中心来执行,该管理中心可以为业务节点中的管理节点,除此之外,可以通过业务节点中的任一节点来执行。示例性的,本实施例中作为执行主体的管理节点可以为拥有较高权限的管理节点对应的计算机。例如,在税务管理系统中负责管理、统计所有税务业务的计算机,也可以为企业对应的业务节点以及消费者对应的业务节点等等。除此之外,本实施例中也可以由业务网络中的任一业务节点执行,例如在税务管理系统中负责税务业务的任何一个计算机,本实施例中通过随机选择任何一个业务节点的方式来实现本实施例的数据同步方法,可以保证执行主体的去中心化以及数据处理的安全性。

具体地,参照图8所示,该区块链系统的数据同步方法至少包括步骤S810至步骤S830,详细说明如下:

在步骤S810中,从位于所述业务网络与所述共识网络之间的路由节点,获取所述业务网络中的至少一个第二业务节点的节点信息。

在本申请一实施例中,本实施例中在业务网络和共识网络之间预设有路由节点,该路由节点可以为图7中位于路由代理层中的代理节点,用于在业务层和共识网路层之间转发数据,构建数据传输桥梁。本实施例中基于业务层和共识网络层之间的路由节点,来采集业务网路中的业务节点的节点信息。

本实施例中的第一业务节点可以为业务网络中的各个业务节点,第二业务节点可以为所获取到的节点信息对应的业务节点。本实施例中的节点信息可以包括节点的配置信息、所属的业务类型、网络信息或者网络地址转换信息等等。其中,配置信息包括节点的处理器型号、内存大小、系统类型、节点标识等信息;业务类型用于表示该业务节点用于处理的业务范围或者节点权限等等;网络信息包括运营商网络、地理位置等等;网络地址转换信息用于表示业务节点在与外网,即共识网络建立连接时候的连接关系,指供业务网络的子网络中的业务节点连接到路由节点所用的网络信息。

在实际应用中,在业务网络中可能存在多个NAT子网络,每个子网络包括多个业务节点,相同子网络中的这些业务节点共享对外的IP地址。同时,在各个子网络内部这些业务节点也具备子网络内部的内网地址以及内网地址对应的网络地址转换信息。本实施例中路由节点可以通过网络地址转换信息确定业务节点在连接外网时是否需要进行网络地址转换(Network Address Translation,NAT),以及业务节点所属的子网络。在业务节点连接共识网络时,通过该网络地址转换信息连接路由节点,再通过路由节点与共识网络之间的连接关系,在业务节点和共识网络之间建立网络连接,以将业务网络中的数据传输到共识网络中。

具体的,本实施例中当第一业务节点访问路由节点时,第一业务节点向路由节点发送连接请求,由路由节点接收到连接请求之后,由路由节点将至少一个第一业务节点的节点进行存储,并基于之前或者当前存储的节点信息,返回与该第一业务节点处于相同子网络下的第二业务节点的节点地址。例如,可以通过广播IP地址的方式来确定第一业务节点所属的NAT网络。该第一业务节点获取到对外IP地址和其他节点的节点地址后,可以通过对外IP地址与其他节点建立联系,相互交换各自在子网络下的内网地址,以便通过内网地址进行访问。

在一些实施例中,当路由节点接收到业务节点的连接请求时,路由节点可以通过第一业务节点的网络地址转换信息确定该第一业务节点是否经过了网络地址转换,即,该第一业务节点是否位于一个NAT网络中,当该第一业务节点经过了网络地址转换时,可以向该第一业务节点返回与该第一业务节点处于相同NAT网络中的第二业务节点的访问地址,该访问地址可以包括该第二业务节点的IP地址和节点标识符,该第一业务节点可以通过该访问地址与第二业务节点建立连接以与第二业务节点之间交换第一业务节点在该NAT网络的内网地址。作为一种实施方式,由于NAT网络具有唯一的IP地址,可以将与第一业务节点的IP地址相同的第二业务节点确定为与该业务节点处于相同NAT网络中的其他各个业务节点。可以理解,NAT网络也可以具有唯一的其他标识符,路由节点可以从处于NAT网络中的第二业务节点接收NAT网络的其他标识符,通过其他标识符来确定处于相同NAT网络中的各个业务节点。

示例性的,第一业务节点向路由节点发送ping请求,路由节点接收到每个第一业务节点的ping请求,会缓存各个第一业务节点对外的IP地址,并将这个IP地址以及其他和该第一业务节点处于同一网络下的节点地址一并进行存储,以便于之后在获取到第一业务节点的查询请求时,将与该第一业务节点关联的地址信息发送至该第一业务节点。

除此之外,本申请实施例中在通过路由节点获取到各个业务节点的IP地址和节点地址之外,还可以确定获取业务节点的定位信息,或者基于节点的IP地址确定节点的定位信息。之后基于定位信息,将定位相近的各个业务节点的IP地址信息至定位相近的业务节点中,使得接收到IP地址信息的各个业务节点通过该IP地址信息建立连接,从而构成数据同步内网。通过上述方式,可以使得位置相近的业务节点连接构成数据同步内网,提高数据的传输效率。

在步骤S820中,基于至少一个第二业务节点的节点信息构建数据同步内网,其中,数据同步内网包括所述第一业务节点和至少一个第三业务节点,至少一个第三业务节点为所述至少一个第二业务节点中的全部或部分并且数据同步内网中的第一业务节点和至少一个第三业务节点之间相互通信连通。

在本申请一实施例中,在获取到至少一个第二业务节点的节点信息之后,在第一业务节点和第二业务节点之间,基于节点信息构建数据同步内网。本实施例中的数据同步内网用于在网内的各个节点之间进行数据同步,以将数据同步内网中的业务节点的业务数据同步至数据同步内网中的其中某些业务节点中。

在本申请一实施例中,在构建数据同步内网时,首先基于获取到的至少一个第二业务节点的节点信息,从至少一个第二业务节点中选择出至少一个第三业务节点,之后基于第一业务节点和第三业务节点之间的相互通信连接来构建数据同步内网。

具体的,本实施例中在构建数据同步内网时,各个业务节点基于节点信息,连接属于同一类型的节点信息下的同源节点。并在连接完成之后搜寻网络中的同源节点,直至搜寻完毕网络中的所有业务节点,完成数据同步内网的构建。其中,同源节点用于表示节点信息相同或者相似的节点。

示例性的,本实施例中在根据至少一个第二业务节点的节点信息,从至少一个第二业务节点中选择出至少一个第三业务节点的过程,可以根据节点的权限,从第二业务节点中匹配与第一业务节点的权限相同的节点,作为第三业务节点,以基于第一业务节点和第三业务节点组合成一个数据同步内网,由此可以提高网络安全性;还可以根据第二业务节点的业务类型,从第二业务节点中选取与第一业务节点的业务相关的节点组合成一个内网,避免相同业务类型的节点之间从记账节点接收和发送的数据重复性,降低数据冗余度和对网络资源的消耗;除此之外,还可以根据节点的网络信息,将与自己在相同网络,例如相同运营商网络或相同地理位置中的节点组合成一个内网,进而提高相互之间的通信能力。

在本申请一实施例中,还可以通过节点信息中的网络地址转换信息来从第二业务节点中确定第三业务节点,以基于第一业务节点和第三业务节点构建数据同步内网。具体说明如下:

在本申请一实施例中,在获取到网络地址转换信息之后,基于NAT会话穿越应用程序协议(Session Traversal Utilities for NAT,STUN),使得各个业务节点基于当前的IP地址,确定位于哪种类型的NAT之后、或者NAT为某一个本地端口所绑定的网络端端口。若检测到业务节点位于某一NAT之后,则判定该业务节点不具备直接连接所述共识网络的功能。

在本申请一实施例中,若存在第二业务节点无法直接连接共识网络,即该第二业务节点连接共识网络时需要通过网络地址转换信息,则确定该第二业务节点的网络地址转换端口,网络地址转换端口为第一业务节点和需要通过网络地址转换信息连接共识网络的第二业务节点经过网络地址转换用于通信的地址。之后,基于第一业务节点的网络地址转换端口,在第二业务节点中选取网络地址转换端口与第一业务节点的网络地址转换端口相同的第二业务节点,作为第三业务节点。之后,基于网路地址转换端口构建第一业务节点和第三业务节点之间的连接关系,进而基于第一业务节点和第三业务节点之间的连接关系构建数据同步内网,以提高数据通信的效率和安全性。

进一步的,若检测到第二业务节点未位于某一NAT之后,则判定第二业务节点具备直接连接所述共识网络的功能。本实施例中在判断到第二业务节点不处于NAT之后,即第二业务节点能够直接连接共识网络,具备直接连接共识网络的功能,则将第二业务节点连接至路由节点,以直接通过路由节点来获取第二业务节点中的业务数据。除此之外,还可以将该第二业务节点与网络中的其他业务节点连接,以向其他业务节点传输第二业务节点中的业务数据或者接收其他业务节点发送的数据,提高节点的通信资源利用率和数据传输的效率。

在本申请一实施例中,在确定第三业务节点时,可以先基于预先注册的节点机构的信息,在述区块链系统中,注册第一业务节点为节点机构的成员节点,并且基于第一业务节点的成员节点的身份信息,与至少一个第二业务节点之间进行握手验证,在握手验证沟通过之后,将握手验证通过的第二业务节点作为第三业务节点。通过上述握手验证的过程来从第二业务节点中确定第三业务节点,以提高数据同步内网的安全性和私密性。

在本申请一实施例中,在基于至少一个第二业务节点的节点信息构建数据同步内网的过程中,先根据至少一个第二业务节点的节点信息确定至少一个第三业务节点;基于至少一个第三业务节点的节点地址,在第一业务节点和至少一个第三业务节点之间建立网络连接;通过第一业务节点和至少一个第三业务节点之间的网络连接,在第一业务节点和至少一个第三业务节点之间交换内网信息,内网信息包括内网地址,其中,内网地址为使用同一网络地址转换端口的业务节点之间用于通信的地址;基于第一业务节点和至少一个第三业务节点对应的内网地址,构建数据同步内网。

在步骤S830中,从第一业务节点和至少一个第三业务节点中选取至少一个代表节点,并将至少一个代表节点的节点信息广播至数据同步内网的各个第三业务节点,以便数据同步内网中除至少一个代表节点之外的其余业务节点经由至少一个代表节点与共识网络的共识节点进行数据通信。

在本申请一实施例中,在构建完成数据同步内网之后,从数据同步内网的业务网节点中选取至少一个代表节点,并将代表节点的节点信息在数据同步内网中进行广播,以通知数据同步内网中的其余节点获知代表节点的信息。其余节点将自己的业务数据发送至代表节点,再由代表节点将这些数据通过路由节点转发至共识网络的共识节点中。上述方案在保证业务数据安全性的前提下,避免了每个业务节点向共识网络上传数据时对网络资源的占用,降低了网络带宽负载,提高网络资源利用率以及数据同步的效率。

在本申请一实施例中,在步骤S830中从第一业务节点和至少一个第三业务节点中选取至少一个代表节点的过程,具体包括步骤如下:

步骤S831,基于数据同步内网中业务节点的网络地址转换信息,生成业务节点对应的节点标识;

步骤S832,基于节点标识,从第一业务节点和至少一个第三业务节点中选取至少一个代表节点。

如图10所示,在业务网络1000中选取代表节点时,本实施例中先基于业务节点对应的网络地址转换信息生成节点标识。其中,节点标识可以为一个数字、代码等等,各个业务节点的节点标识不相同。由于各个业务节点的网络地址转换信息是独一无二的,因此,基于网络地址转换信息生成的节点标识也能用于表示各个业务节点的身份,并且,本申请实施例中通过上述方式可以更加直观的确定业务节点的网络连接属性,提高了业务节点的标识性。

除此之外,本申请实施例中还可以基于设定的范围,随机生成各个业务节点对应的节点标识,以提高业务节点的数据处理效率。

在生成节点标识之后,基于节点标识来选取代表节点1010,具体的选取方式可以为根据节点标识按照设定的选取间隔来选取的方式进行。在选取出代表节点之后,通过代表节点1010将自己的节点信息同步至业务网络中的其它节点1020中,也可以是通过管理节点将代表节点的节点信息在业务网络中进行广播。

具体的,本实施例中选取代表节点的方式可以是随机选取的方式,也可以是选取节点标识最小或者最大时对应的节点,除此之外,还可以是业务节点之间通过投票的方式来选择代表节点,通过这种方式来提高网络数据同步的公平性和安全性。

在本申请一实施例中,代表节点可以为一个,若检测到代表节点出现故障,则从数据同步内网的其余业务节点中选取新的代表节点,以经由新的代表节点连接到至路由节点。

在本申请一实施例中,代表节点也可以为两个或者两个以上。例如分别用于或者兼顾接收数据、发送数据、验证数据等功能;还可以在一个代表节点发生故障时,通过另外的代表节点继续处理数据,通过上述方式保证通过代表节点进行数据同步的可靠性。

如图11所示,本实施例中在业务网络1中通过各个业务节点将自身的业务数据发送至代表节点13中,以通过代表节点13将业务数据转发至路由节点12,之后通过路由节点12上传业务数据至共识网络2的共识节点21中。

如图12所示,业务网络1中的代表节点13获取数据时,可以是通过代表节点来获取每个其余节点11的数据,再由代表节点13将业务数据上传至共识网络2中,并将代表节点13获取到的业务数据在相互之间进行验证和共识,以保证业务数据的安全性和正确性。

如图13所示,除了上述数据同步的方式之外,本申请实施例中还可以通过各个业务网络1中的代表节点13来获取其余节点11中的一部分节点中的业务数据,通过各个代表节点13来采集完毕业务网络中的所有其余节点11中的数据,再将业务数据通过路由节点12上传至共识网络2中的共识节点21中。通过上述方式以保证数据获取的效率,提高数据同步的速度。

进一步的,在本申请一实施例中,数据同步方法还可以包括如下步骤:在其余节点发送业务数据至代表节点的过程中,和/或在代表节点通过路由节点发送业务数据至共识节点的过程中,检测代表节点的数据收发状态;若检测到数据收发状态出现故障,则从数据同步内网的业务节点中选取新的代表节点,以基于新的代表节点将转发其余节点的业务数据至路由节点。

在实际应用过程中,代表节点在获取其余节点的业务数据、并将业务数据通过路由节点传输至共识节点的过程中,可能发生故障。考虑到这种情况,本实施例中在在其余节点发送业务数据至代表节点的过程中,和/或在代表节点发送业务数据至共识节点的过程中,检测代表节点的数据收发状态。并在检测到数据收发状态出现故障时,从数据同步内网的业务节点中选取新的代表节点,以基于新的代表节点将转发其余节点的业务数据至路由节点。通过上述方式可以保障所有的业务数据都可以及时传输到共识网络中,保证数据传输的可靠性和稳定性。

图14示出了根据本申请的一个实施例的区块链系统的数据同步方法的流程图。图14所示的区块链系统的数据同步方法可以由区块链网络中共识网络的共识节点来执行,例如,负责进行数据共识的记账节点等等。具体地,参照图14所示,该区块链系统的数据同步方法至少包括步骤S1410至步骤S1430,详细说明如下:

在步骤S1410中,获取代表节点通过路由节点发送的业务数据,其中,代表节点为在通过业务节点的网络地址转换信息构建的数据同步内网中选取得到的,业务数据为至少一个代表节点从数据同步内网中除代表节点之外的其余节点中获取得到的。

在本申请一实施例中,通过在区块链网络中基于业务节点的网络地址转换信息构建数据同步内网,并在数据同步内网中选取至少一个代表节点,以通过代表节点来获取数据同步内网中的业务数据,并将这些业务数据通过路由节点转发至共识节点。

本实施例中在通过共识节点获取业务数据的过程可以是通过路由节点与代表节点之间构建网络连接,基于该网络连接来实时同步代表节点发送的业务数据。通过上述数据获取方式可以提高数据同步的效率和准确率。

在步骤S1420中,对业务数据进行验证。

在本申请一实施例中,由于共识节点所获取到的整个业务网络中的业务数据的途径是通过代表节点转发的,因此,在代表节点可能被攻击的情况下,业务数据的安全性和准确性也无法得到保障。考虑到这种情况,本实施例中在共识节点获取到业务数据之后,对业务数据进行验证和共识。

具体的,本实施例中对业务数据进行验证的方式可以是,将通过代表节点获取到的业务数据与业务网络中其它业务节点的业务数据进行比对,来确定所获取到的业务数据的正确性。还是可以将各个共识节点获取到的业务数据分别进行比对,来确定数据获取的正确性。除此之外,还可以对获取到的业务数据进行数据摘要处理,得到业务数据摘要,进而将所有的业务数据摘要进行比对,完整业务数据的验证。

在步骤S1430中,在对业务数据的验证通过之后,将业务数据上传至共识网络的区块链中。

在本申请一实施例中,在对业务数据的验证通过之后,则表示共识节点所获取到的业务数据是正确的,则将业务数据上传至共识网络的区块链中进行存储。

在本申请一实施例中,在步骤S1420中对业务数据进行验证的过程之后,还包括:若对业务数据的验证未通过,则从业务网络中选取除代表节点之外的业务节点作为随机节点;基于随机节点的节点地址,与随机节点之间构建点对点连接关系;基于点对点连接关系,获取随机节点中的业务数据;将业务数据上传至共识网络的区块链中。

具体的,当对业务数据的验证未通过时,则表示共识节点所获取到的业务数据有误,这种情况下将无法通过代表节点再次获取到正确的业务数据。因此,本实施例中从业务网络中选取除代表节点之外的业务节点作为随机节点,进一步的,本实施例中还可以确定数据同步内网之外的节点,从这些节点中选取随机节点,以增加业务数据获取的安全性。之后基于随机节点的节点地址,构建点对点的连接关系,以基于点对点的连接关系,从该随机节点中获取业务数据。上述方式是直接通过业务节点中的随机节点来获取业务数据,以保证数据的安全性和准确性。

在本申请一实施例中,在步骤S1430中在对业务数据的验证通过之后,将业务数据上传至共识网络的区块链中之后,还包括:生成数据存储回执;将数据存储回执发送至代表节点,以使代表节点从内存空间中删除数据存储回执对应的数据。

在将数据验证通过并上传区块链之后,生成数据存储回执,并将数据存储回执发送至代表节点,从而指示代表节点基于数据存储回执确定对应的数据,并将这些数据删除。以保证降低代表节点中的数据存储量,增加存储空间的有效性。

在本申请一实施例中,如图15所示,在步骤S1430中将业务数据上传至共识网络的区块链中,包括步骤S1431~步骤S1435:

步骤S1431,对业务数据进行摘要运算,生成业务数据对应的区块主体的摘要值;

步骤S1432,将业务数据对应的区块主体的摘要值、与区块链的账本中业务数据对应的事件区块之前的最后一个区块的摘要值一起,作为业务数据对应的事件区块的区块头;

步骤S1433,将所述业务数据作为所述业务数据对应的事件区块的区块主体;

步骤S1434,将所述区块头和所述区块主体串联,生成所述业务数据在区块链的账本中对应的数据存储区块;

步骤S1435,将所述数据存储区块上传至所述共识网络的区块链中。

本实施例中在对业务数据进行存储时,先对业务数据进行摘要运算,生成业务数据对应的区块主体的摘要值;之后将业务数据对应的区块主体的摘要值、与区块链的账本中业务数据对应的事件区块之前的最后一个区块的摘要值一起,作为业务数据对应的事件区块的区块头,再将业务数据作为业务数据对应的事件区块的区块主体。最后将区块头和区块主体串联,生成业务数据在区块链的账本中对应的数据存储区块,最后将数据存储区块上传至共识网络的区块链中。通过上述存储方式可以基于业务数据的摘要值直接确定业务数据的存储位置,提高了数据存储的安全性和存储效率。

本实施例中区块头中的数据还包括业务网络的公共数据,区块主体中的数据还包括以下至少一种:业务节点的本地业务数据、业务节点进行业务处理时生成的交易数据。除此之外,还可以包括业务节点本身的节点信息、业务网络的信息等等。

以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的区块链系统的数据同步方法。可以理解的是,所述装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。对于本申请装置实施例中未披露的细节,请参照本申请上述的区块链系统的数据同步方法的实施例。

图16示出了根据本申请的一个实施例的区块链系统的数据同步装置的框图。

参照图16所示,区块链系统包括:业务节点组成的业务网络、共识节点组成的共识网络;根据本申请的一个实施例的区块链系统的数据同步装置1600,包括:获取单元1610,用于从位于所述业务网络与所述共识网络之间的路由节点,获取所述业务网络中的至少一个第二业务节点的节点信息,所述节点信息包括节点地址;构建单元1620,用于基于所述至少一个第二业务节点的节点信息构建数据同步内网,其中,所述数据同步内网包括所述第一业务节点和至少一个第三业务节点,所述至少一个第三业务节点为所述至少一个第二业务节点中的全部或部分并且所述数据同步内网中的所述第一业务节点和所述至少一个第三业务节点之间相互通信连通;同步单元1630,用于从所述第一业务节点和所述至少一个第三业务节点中选取至少一个代表节点,并将所述至少一个代表节点的节点信息广播至所述数据同步内网的各个第三业务节点,以便所述数据同步内网中除所述至少一个代表节点之外的其余业务节点经由所述至少一个代表节点与所述共识网络的共识节点进行数据通信。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置1600还包括选择单元,用于根据所述至少一个第二业务节点的节点信息从所述至少一个第二业务节点中选择出所述至少一个第三业务节点。

在本申请的一些实施例中,基于前述方案,所述节点信息包括如下至少一种:节点权限、业务类型或者网络信息;所述选择单元包括用于根据所述至少一个第二业务节点的节点信息,对所述至少一个第二业务节点进行匹配,确定网络信息相似的第二业务节点,作为所述至少一个第三业务节点。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置1600还用于所述第一业务节点和所述至少一个第三业务节点通过网络地址转换的方式连接到所述路由节点,并且所述第一业务节点和所述至少一个第三业务节点具有相同网络地址转换端口,其中,所述网络地址转换端口为所述第一业务节点和所述至少一个第三业务节点经过网络地址转换用于通信的地址 。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置1600还用于将所述第一业务节点注册为所述区块链系统中预先注册的节点机构的成员节点,并且基于所述第一业务节点的所述成员节点的身份信息,与所述至少一个第二业务节点之间进行握手验证,并将握手验证通过的第二业务节点作为所述第三业务节点。

在本申请的一些实施例中,基于前述方案,所述构建单元包括:节点确定单元,用于根据所述至少一个第二业务节点的节点信息确定所述至少一个第三业务节点;网络连接单元,用于基于所述至少一个第三业务节点的节点地址,在所述第一业务节点和所述至少一个第三业务节点之间建立网络连接;信息交换单元,用于通过所述第一业务节点和所述至少一个第三业务节点之间的网络连接,在所述第一业务节点和所述至少一个第三业务节点之间交换内网信息,所述内网信息包括内网地址,其中,所述内网地址为使用同一网络地址转换端口的业务节点之间用于通信的地址;内网构建单元,用于基于所述第一业务节点和所述至少一个第三业务节点对应的内网地址,构建所述数据同步内网。

在本申请的一些实施例中,基于前述方案,所述同步单元用于基于所述数据同步内网中所述业务节点的所述内网地址,生成所述业务节点对应的节点标识;基于所述节点标识,从所述业务节点中选取至少一个所述代表节点。

在本申请的一些实施例中,基于前述方案,所述内网信息还包括所述第一业务节点和所述至少一个第三业务节点的节点标识,根据所述节点标识从所述第一业务节点和所述至少一个第三业务节点选择至少一个所述代表节点。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置1600还用于若检测到所述至少一个代表节点出现故障,则从所述数据同步内网的所述其余业务节点中选取新的代表节点,以经由所述新的代表节点连接到至所述路由节点。

在本申请的一些实施例中,基于前述方案,所述区块链系统的数据同步装置1600还用于当所述第一业务节点检测到从所述至少一个代表节点获取到的数据校验失败时,所述第一业务节点从所述至少一个第三业务节点之外的其他业务节点或者路由节点重新获取数据。

图17示出了根据本申请的一个实施例的区块链系统的数据同步装置的框图。所述区块链系统包括:包括多个业务节点的业务网络、包括多个共识节点的共识网络;应用于位于所述业务网络与所述共识网络之间的路由节点,区块链系统的数据同步装置1700包括:请求获取单元1710,用于获取所述业务网络中的第一业务节点发送的连接请求;检测单元1720,用于基于所述连接请求,检测所述第一业务节点的节点信息,并对所述节点信息进行存储;发送单元1730,用于将所存储所述区块链系统中的至少一个第二业务节点的节点信息发送至所述第一业务节点,以使所述第一业务节点基于所述至少一个第二业务节点的节点信息从所述至少一个第二业务节点中选取至少一个第三业务节点构成数据同步内网,并基于数据同步内网中的至少一个代表节点与所述共识网络的共识节点进行数据通信。

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

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

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

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

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

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

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

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

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。

本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

相关技术
  • 区块链系统的数据同步方法、装置、可读介质及电子设备
  • 区块链系统的数据同步方法、装置、可读介质及电子设备
技术分类

06120112497579