CN110908801B - 基于区块链的数据处理方法、装置、计算机设备和存储介质 - Google Patents
基于区块链的数据处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110908801B CN110908801B CN201911100293.XA CN201911100293A CN110908801B CN 110908801 B CN110908801 B CN 110908801B CN 201911100293 A CN201911100293 A CN 201911100293A CN 110908801 B CN110908801 B CN 110908801B
- Authority
- CN
- China
- Prior art keywords
- service
- container
- data
- containers
- node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于区块链的数据处理方法、装置、计算机设备和存储介质。所述方法包括:每类服务容器确定至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理;当与区块链网络中的其它节点达成共识后,通过至少两类服务容器中提供存储服务的服务容器,对待存储数据进行存储。采用本方法能够提升区块链网络的服务效率。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的数据处理方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了区块链技术。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括了节点模块、智能合约模块、共识模块、存储模块、缓存模块。传统的区块链服务架构是将区块链内部的所有模块或者大部分模块运行在同一个容器中。当一笔交易调用区块链网络时,区块链业务流程将会包括客户端发起请求,各个节点独立验证,智能合约生成模拟结果,多节点达成共识,共识后生成区块,存储区块以及返回客户端。
然而,传统的区块链网络中的各模块处理数据的能力不同,且各个模块间高耦合,在处理上述串行的业务流程时,任何一个环节处理数据的能力的不足都会导致整个流程处理数据的能力降低,导致了区块链网络的服务效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升区块链网络服务效率的基于区块链的数据处理方法、装置、计算机设备和存储介质。
一种基于区块链的数据处理方法,应用于区块链网络中的节点,所述节点上运行有服务注册中心容器和至少两类服务容器;所述方法包括:
每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;
在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理;
当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储。
一种基于区块链的数据处理装置,用于实现区块链网络中的节点,其特征在于,所述装置包括服务注册中心容器和至少两类服务容器;
每类所述服务容器,用于确定至少两类服务容器中其它类服务容器在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;
所述服务容器,用于在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理;还用于当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;
在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理;
当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;
在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理;
当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储。
上述基于区块链的数据处理方法、装置、计算机设备和存储介质,将每类服务容器所提供的服务注册至服务注册中心容器。因而,当获取到待存储的数据,节点在执行节点数据处理逻辑顺序的每一个处理环节时,都可以通过服务注册中心容器获取相应类所提供的相应的服务。当与区块链网络中的其它节点达成共识后,通过服务注册中心容器获取存储服务,对待存储数据进行存储。这样,每个服务容器所需要的服务,都通过服务注册中心容器获取。每个服务容器之间相互独立,且可以灵活地对每个服务容器进行扩展,从而大大提升了区块链网络的服务效率。
附图说明
图1为一个实施例中基于区块链的数据处理方法的应用场景图;
图2为一个实施例中基于区块链的数据处理方法的流程示意图;
图3为一个实施例中区块链网络的服务架构示意图;
图4为一个实施例中区块链网络中节点内的服务容器异常状态示意图;
图5为另一个实施例中基于区块链的数据处理方法的流程示意图;
图6为一个实施例中基于区块链的数据处理装置的结构框图;
图7为另一个实施例中基于区块链的数据处理装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于区块链的数据处理方法,可以应用于如图1所示的应用环境中。该应用环境包括终端102和区块链网络中的节点104。终端102与节点104通过网络进行通信,区块链网络中的各个节点之间也通过网络进行通信。其中,用户终端102具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。节点104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。节点104中每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务;每个服务用于执行节点104数据处理逻辑顺序的一个处理环节。节点104从终端102获取到待存储数据时,按照节点104数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理。当与区块链网络中的其它节点达成共识后,节点104通过至少两类服务容器中提供存储服务的服务容器,对待存储数据进行存储。本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案相关的部分场景,并不构成对本申请方案应用环境的限定。
在一个实施例中,如图2所示,提供了一种基于区块链的数据处理方法,以该方法应用于图1中区块链网络中的节点104为例进行说明,包括以下步骤:
S202,每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节。
其中,容器是一种进程,用于处理数据。服务注册中心容器是一种注册容器,用于注册服务、发现服务以及检查服务的健康状态。服务容器是一种运行有模块的容器,用于提供与模块相对应的服务。服务是模块所提供的功能,比如提供区块链中至少一部分功能的服务、实现交易各个环节的服务或者社交交互中各个环节的服务。
区块链网络是运行区块链技术的载体和组织方式。区块链技术,简称BT(Blockchain Technology),也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个人均可参与数据记录。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
在本发明实施例中,区块链网络中的每一个节点上,都运行有服务注册中心容器和至少两类服务容器。节点上的每类服务容器可将服务注册至服务注册中心容器,进而,每类服务容器可确定至少两类服务容器中其它类服务容器在服务注册中心容器所注册的服务。
在一个实施例中,区块链网络可至少存在三个节点,节点与节点之间可通过网络进行通信。每个节点中至少运行有一个服务注册中心容器和至少两类服务容器,每类服务容器的数量可为一个或者多于一个。每类服务容器相互独立,每类服务容器需要至少两类服务容器中的其他服务容器的服务时,可在服务注册中心容器中获取每类服务容器在服务注册中心容器注册的服务。
参考图3,在一个实施例中,区块链网络存在节点A、B、C和D,节点A、B、C和D之间通过P2P容器进行通信。每个节点上分别运行有一个服务注册中心容器和六类服务容器。六类服务容器分别为P2P(Peer-to-Peer,点对点技术)容器、节点容器、缓存容器、智能合约容器、存储容器以及共识容器。其中,P2P容器可提供区块链网络中节点之间通信的服务。节点容器可提供对终端发送的待存储数据做校验,及通过P2P容器对待存储数据进行广播的服务。缓存容器可提供存储临时数据或经常访问的数据的服务。智能合约容器可提供根据计算机协议,将待存储数据,生成智能合约模拟结果的服务。存储容器可提供将待存储数据生成的区块存储至硬盘或数据库中的服务。共识容器可提供区块链网络中各个节点之间通过共识运算,达成共识的服务。
S204,在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理。
具体地,终端可向区块链网络中的节点发送待存储数据。节点在获取到待存储数据时,可按照节点数据处理逻辑顺序,通过相应类的服务容器,依照相应的服务对待存储数据进行数据处理。
在一个实施例中,终端向区块链网络中的节点发送的待存储数据可以是交易数据。交易数据具体可以包括交易的名称、交易的时间、资源转移数额、交易的数量以及交易双方的账户名等。节点可对交易数据进行有效性验证,具体可以是验证数据信息的合法性、交易数据的准确性等。通过有效性验证的交易数据是记录完整的、正确的、且没有被篡改过的交易数据。
S206,当与区块链网络中的其它节点达成共识后,通过至少两类服务容器中提供存储服务的服务容器,对待存储数据进行存储。
具体地,将通过相应类的服务容器,依照相应的服务进行数据处理之后的处理结果,发送至区块链网络中进行共识运算。当与区块链网络中的其它节点达成共识后,节点通过至少两类服务容器中提供存储服务的服务容器,在本地对待存储数据进行存储。
在一个实施例中,区块链网络中的共识运算可通过共识算法实现。区块链网络中的共识算法常用的有POW(Proof of Work,工作量证明)、POS(Proof of Stake,权益证明)、DPOS(Delegated Proof of Stake,委任权益证明)、及PBFT(Practical Byzantine FaultTolerance,实用拜占庭容错算法)等等。本申请实施例对共识节点所采取的共识算法不做限定。
在一个实施例中,节点上可运行有缓存容器和存储容器。缓存容器可缓存区块链网络中其他节点发送的数据处理结果,缓存容器中的数据处理结果在区块链网络中达成共识之后,存储至储存容器中。这样,区块链网络在处理大量的待存储数据时,可大大减轻存储容器的负担,并且提升存储速度。
上述基于区块链的数据处理方法中,将每类服务容器所提供的服务注册至服务注册中心容器。因而,当获取到待存储的数据,节点在执行节点数据处理逻辑顺序的每一个处理环节时,都可以通过服务注册中心容器获取相应类所提供的相应的服务。当与区块链网络中的其它节点达成共识后,通过服务注册中心容器获取存储服务,对待存储数据进行存储。这样,每个服务容器所需要的服务,都通过服务注册中心容器获取。在单节点内将传统区块链中的各个功能模块封装成能够独立运行各自服务的服务容器,每个服务容器之间相互独立,且可以灵活地对每个服务容器进行扩展,从而大大提升了区块链网络的服务效率。另外,各个模块封装成独立运行的服务,和其他模块已处于极低耦合的状态,后续每个模块的版本迭代开发及维护,都会变得更加容易,成本更低。
在一个实施例中,步骤S202,也就是每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务的步骤之前,基于区块链的数据处理方法还包括:获取服务注册中心容器镜像和服务容器镜像;将服务注册中心容器镜像运行成为服务注册中心容器,并将服务容器镜像运行成为服务容器;服务容器在服务注册中心容器注册相应的服务。
其中,镜像是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。常见的镜像文件格式有ISO(Open SystemsIntercoimection,开放***互联)、BIN(Binary,二进制文件)、IMG(Image,图像文件)、TAO(Track-At-Once,轨道刻录)和DAO(Disk-At-Once,磁盘刻录)等等。本申请实施例对镜像文件格式不做限定。
具体地,区块链网络中的节点可获取服务注册中心容器镜像和服务容器镜像。进而,节点可通过运行程序的技术,将服务注册中心容器镜像运行成为服务注册中心容器,并将服务容器镜像运行成为服务容器。服务注册中心容器和服务容器都启动后,服务容器可在服务注册中心容器注册相应的服务。
在一个实施例中,运行程序的技术具体可以是Docker技术。Docker是一个开源的应用容器引擎,通过Docker技术可打包相关的应用以及依赖包到一个可移植的镜像中,进而发布到计算机设备上。Docker技术的特点是,通过Docker技术运行起来的各个容器相互之间不会有任何接口。此外,运行程序的技术具体还可以是Tomcat技术。Tomcat是一种Web(World Wide Web,全球广域网)应用服务器。Tomcat技术的特点是,通过Tomcat技术运行起来的容器是相互独立的。
在一个实施例中,服务注册中心容器具体可以通过Consul技术实现。Consul是一个服务网格解决方案。Consul是一个一个分布式的,高度可用的***。Consul提供了一个功能齐全的控制平面。Consul主要特点是:服务发现、健康检查、键值存储、安全服务通信、多数据中心。服务注册中心容器具体也可以通过Zookeeper技术实现。Zookeeper是为分布式应用所设计的高可用、高性能且一致的开源协调服务,是大数据分布式集群的基础组件,为集群提供分布式锁服务。服务注册中心容器具体还可以通过Etcd技术实现。Etcd是一种分布式KV(Key-Value,键值对)存储设施。Etcd的特点是:具有一致性、高性能、高可用性。
上述实施例中,通过获取服务注册中心容器,将服务注册中心容器镜像运行成为服务注册中心容器,为节点提供了服务注册中心。通过获取镜像和服务容器镜像,将服务容器镜像运行成为服务容器,使得各服务容器能够独立运行。通过将各服务容器所提供的服务注册至服务注册中心容器,使得各服务容器可从服务注册中心容器获取相应的服务。
在一个实施例中,节点可根据每类服务容器的服务性能,确定至少两类服务容器中每类服务容器的数量。具体地,节点上运行的每类服务容器的数量,可根据每类服务容器的性能,灵活地进行选择。比如,节点上运行有一个服务注册中心容器和六类服务容器。六类服务容器分别为P2P容器、节点容器、缓存容器、智能合约容器、存储容器以及共识容器。其中,节点容器处理数据的效率比其他的五类服务容器处理数据的效率低。那么,可以在节点上运行多于一个的节点容器,让多于一个的节点容器同时处理数据,从而可提高整个区块链网络的数据处理效率。其中,每类容器的数量,可以预先设置,或者通过检测每类服务容器的性能,自动启动多个相同的服务容器。
在一个实施例中,步骤S202,也就是每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务的步骤,具体包括:每类服务容器确定需调用服务的服务标识;服务标识,是至少两类服务容器中其它类的服务容器在服务注册中心容器所注册服务的服务标识;每类服务容器根据服务标识,从服务注册中心容器查询与服务标识对应的服务。
其中,服务标识是一种标识,用于唯一确定服务容器所提供的服务,具体可以包括字母、数字和符号中至少一种字符的字符串。
具体地,节点上运行的每类服务容器,可确定当前数据处理环节所需要调用服务的服务标识。进而,每类服务容器可根据该服务标识,从服务注册中心容器查询服务容器在服务注册中心容器注册的、与该服务标识对应的服务。后续服务容器可根据查询到的服务,调用提供服务的对应的服务容器进行数据处理。
在一个实施例中,服务标识可确定多于一个的同类服务容器所提供的服务。举例说明,节点上可运行有三个节点容器,由于三个节点容器所提供的服务相同,可通过同一个服务标识来标记这三个节点容器所提供的服务。当节点中的其他类服务容器调用节点容器的服务时,可通过该服务标识在服务注册中心容器中,获取三个节点容器中的任意一个作为服务的提供方。
上述实施例中,通过至少两类服务容器中其它类的服务容器在服务注册中心容器所注册服务的服务标识,可在至少两类服务容器中其它类的服务容器调用服务时,快速、准确地在服务注册中心容器查询到与该服务标识对应的服务,节省了服务查询的时间。
在一个实施例中,基于区块链的数据处理方法还包括:服务注册中心容器监测服务容器的状态;当至少一个服务容器处于异常状态时,服务注册中心容器定期检查异常的服务容器的状态;当监测到异常的服务容器恢复到正常状态时,通知需要调用服务的服务容器进行服务调用。
具体地,节点上运行的服务注册中心,可检测节点上运行的服务容器的状态,当节点上运行的至少两类服务容器中,至少一个服务容器处于异常状态时,节点上运行的服务注册中心容器,可定期检查异常的服务容器的状态。当服务注册中心容器监测到异常的服务容器恢复到正常状态时,可通知需要调用服务的服务容器进行服务调用。
在一个实施例中,服务容器发生异常状态,具体可以是服务容器启动时启动失败,也可以是服务容器在运行过程中,收到外界不可控的因素影响暂停服务,比如自然灾害导致的服务容器硬件损坏。此外,服务容器发生异常状态,还可以是服务容器在运行过程中发生的软件性故障,比如,服务容器的数据被人为恶意篡改。
在一个实施例中,当服务注册中心容器检测到至少一个服务容器处于异常状态时,服务注册中心容器可马上检查异常的服务容器的健康状态,也可以在检测到异常之后,按照预设时间,比如5分钟之后,服务注册中心容器再检查异常的服务容器的健康状态。
上述实施例中,通过服务注册中心容器定期检查异常的服务容器的健康状态,可保证服务容器回复正常状态后,服务调用方可及时调用恢复后的服务容器所提供的服务,进而保证了数据处理的及时性,进一步提升了区块链网络的服务效率。
在一个实施例中,节点还可包括至少一个与异常的服务器同类的服务容器,服务注册中心容器可监测服务容器的状态。当服务注册中心容器监测到异常的服务容器未恢复到正常状态时,服务注册中心容器可确定至少一个与异常的服务容器同类的服务容器。服务注册中心容器可通知需要调用服务的服务容器,从至少一个与异常的服务容器同类的服务容器中,确定一个服务容器进行服务调用。
参考图4,在一个实施例中,节点上运行有一个服务注册中心容器、两个节点容器和三个智能合约容器。当智能合约容器3处于异常状态时,服务注册中心容器可将智能合约容器3的异常状态,告知调用了智能合约容器3服务的节点容器1和/或节点容器2,节点容器1和节点容器2后续不再调用该智能合约容器3。由于,智能合约容器1和智能合约容器2所提供的服务和智能合约容器3相同,因此,节点容器1和/或节点容器2,可根据在服务注册中心容器查询得到的情况,调用智能合约容器1或智能合约容器2的服务,保证了服务的正常调用。
在一个实施例中,步骤S204,也就是在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理的步骤,具体包括:在获取到待存储数据时,确定节点当前所处的节点数据处理逻辑顺序中的数据处理环节;根据节点当前所处的数据处理环节,在服务注册中心容器中查找数据处理环节对应类的服务容器提供的服务;调用与服务对应的类中至少一个服务容器对待存储数据进行处理。
具体地,节点对待存储数据的处理,可按照节点数据处理逻辑顺序依次执行。在节点获取到待存储数据时,节点可确定本地当前所处的节点数据处理逻辑顺序中的数据处理环节。根据节点当前所处的数据处理环节,节点可在服务注册中心容器中查找数据处理环节对应类的服务容器提供的服务。进而,节点可调用与该服务对应的类中至少一个服务容器对待存储数据进行处理。
在一个实施例中,节点对从终端获取的待存储数据的处理,可包括广播待储存数据、验证待存储数据的有效性、通过计算机协议将有效的待存储数据进行处理生成智能合约模拟结果、缓存智能合约模拟结果、将智能合约模拟结果进行共识以及存储达成共识的数据。
上述实施例中,通过确定节点当前所处的节点数据处理逻辑顺序中的数据处理环节,可快速确定当前数据处理环节所需要的服务。进而,可快速、准确地在服务注册中心容器中,查找到与当前数据处理环节对应类的服务容器所提供的服务。从而,可调用与该服务对应的服务容器,对待存储数据进行处理。
在一个实施例中,步骤S206,也就是当与区块链网络中的其它节点达成共识后,通过至少两类服务容器中提供存储服务的服务容器,对待存储数据进行存储的步骤之前,基于区块链的数据处理方法还包括:获取区块链网络中的其它节点所反馈的处理结果;通过在服务注册中心容器注册的共识服务相应类的至少一个服务容器,将处理结果在区块链网络中进行共识运算。
具体地,区块链网络中的其它节点可对待存储数据进行处理,并将处理结果反馈至该节点。节点可获取区块链网络中的其它节点所反馈的处理结果,并将该处理结果在本地进行缓存。在服务注册中心容器注册的共识服务相应类的至少一个服务容器,可将本地缓存的处理结果发送至区块链网络中进行共识运算。
在一个实施例中,区块链网络中的节点可对待存储数据的处理结果进行投票。当区块链网络中超过半数的节点,对待储存数据进行处理所得到的处理结果一致时,则表示共识通过。当区块链网络中不存在超过半数的节点,对待储存数据进行处理所得到的处理结果一致时,则需要重新拉取待存储数据进行计算,直至区块链网络中存在超过半数的节点,对待储存数据进行处理所得到的处理结果一致。
上述实施例中,通过将区块链网络中的其它节点所反馈的处理结果,发送至区块链网络,通过在服务注册中心容器注册的共识服务相应类的至少一个服务容器对处理结果进行共识运算,从而保证了区块链网络中各个节点数据的一致性。
在一个实施例中,步骤S206,也就是当与区块链网络中的其它节点达成共识后,通过至少两类服务容器中提供存储服务的服务容器,对待存储数据进行存储的步骤,具体包括:当与区块链网络中的其它节点达成共识后,将与待存储数据相关的数据生成区块;在服务注册中心容器中,查找提供存储服务的服务容器;通过查找到的服务容器所提供的存储服务,对区块进行存储。
具体地,当待存储数据的处理结果与区块链网络中的其他节点达成共识后,节点可将待存储数据及待存储数据的处理结果打包成区块。进而,节点可在服务注册中心容器中,查找提供存储服务的服务容器。通过该容器所提供的存储服务,节点可将区块存储至本地。
上述实施例中,通过将与待存储数据相关的数据生成区块,使得与待存储数据相关的数据刚好在同一个区块中。通过在在服务注册中心注册的存储服务,可快速对新生成的区块进行存储,进一步提升了区块链网络的服务效率。
如图5所示,在一个具体的实施例中,基于区块链的数据处理方法包括以下步骤:
S502,根据每类服务容器的服务性能,确定至少两类服务容器中每类服务容器的数量。
S504,获取服务注册中心容器镜像和服务容器镜像。
S506,将服务注册中心容器镜像运行成为服务注册中心容器,并将服务容器镜像运行成为服务容器。
S508,服务容器在服务注册中心容器注册相应的服务。
S510,每类服务容器确定需调用服务的服务标识;服务标识,是至少两类服务容器中其它类的服务容器在服务注册中心容器所注册服务的服务标识。
S512,每类服务容器根据服务标识,从服务注册中心容器查询与服务标识对应的服务。
S514,在获取到待存储数据时,确定节点当前所处的节点数据处理逻辑顺序中的数据处理环节。
S516,根据节点当前所处的数据处理环节,在服务注册中心容器中查找数据处理环节对应类的服务容器提供的服务。
S518,服务注册中心容器监测服务容器的状态。
S520,当至少一个服务容器处于异常状态时,服务注册中心容器定期检查异常的服务容器的状态。
S522,当监测到异常的服务容器未恢复到正常状态时,服务注册中心容器确定至少一个与异常的服务容器同类的服务容器。
S524,通知需要调用服务的服务容器,从至少一个与异常的服务容器同类的服务容器中,确定一个服务容器进行服务调用。
S526,当监测到异常的服务容器恢复到正常状态时,通知需要调用服务的服务容器进行服务调用。
S528,调用与服务对应的类中至少一个服务容器对待存储数据进行处理。
S530,获取区块链网络中的其它节点所反馈的处理结果。
S532,通过在服务注册中心容器注册的共识服务相应类的至少一个服务容器,将处理结果在区块链网络中进行共识运算。
S534,当与区块链网络中的其它节点达成共识后,将与待存储数据相关的数据生成区块。
S536,在服务注册中心容器中,查找提供存储服务的服务容器。
S538,通过查找到的服务容器所提供的存储服务,对区块进行存储。
上述基于区块链的数据处理方法,将每类服务容器所提供的服务注册至服务注册中心容器。因而,当获取到待存储的数据,节点在执行节点数据处理逻辑顺序的每一个处理环节时,都可以通过服务注册中心容器获取相应类所提供的相应的服务。当与区块链网络中的其它节点达成共识后,通过服务注册中心容器获取存储服务,对待存储数据进行存储。这样,每个服务容器所需要的服务,都通过服务注册中心容器获取。每个服务容器之间相互独立,且可以灵活地对每个服务容器进行扩展,从而大大提升了区块链网络的服务效率。
应该理解的是,虽然图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种基于区块链的数据处理装置,包括:服务注册中心容器601和至少两类服务容器602,其中:
每类服务容器602,用于确定至少两类服务容器中其它类服务容器在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;
服务容器602,用于在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理;还用于当与区块链网络中的其它节点达成共识后,通过至少两类服务容器中提供存储服务的服务容器,对待存储数据进行存储。
在一个实施例中,每类服务容器602还用于在服务注册中心容器注册相应的服务。
在一个实施例中,每类服务容器602还用于确定需调用服务的服务标识;服务标识,是至少两类服务容器中其它类的服务容器在服务注册中心容器所注册服务的服务标识;根据服务标识,从服务注册中心容器查询与服务标识对应的服务。
在一个实施例中,服务注册中心容器601用于服务注册中心容器监测服务容器的状态;当至少一个服务容器处于异常状态时,定期检查异常的服务容器的状态;当监测到异常的服务容器恢复到正常状态时,通知需要调用服务的服务容器进行服务调用。
在一个实施例中,服务容器602还用于在获取到待存储数据时,确定节点当前所处的节点数据处理逻辑顺序中的数据处理环节;根据节点当前所处的数据处理环节,在服务注册中心容器中查找数据处理环节对应类的服务容器提供的服务;调用与服务对应的类中至少一个服务容器对待存储数据进行处理。
在一个实施例中,服务容器602中用于提供共识服务的服务容器,用于获取区块链网络中的其它节点所反馈的处理结果;通过在服务注册中心容器注册的共识服务相应类的至少一个服务容器,将处理结果在区块链网络中进行共识运算。
在一个实施例中,服务容器602中用于提供区块存储服务的服务容器,用于当与区块链网络中的其它节点达成共识后,将与待存储数据相关的数据生成区块;在服务注册中心容器中,查找提供存储服务的服务容器;通过查找到的服务容器所提供的存储服务,对区块进行存储。
在一个实施例中,服务注册中心容器601还用于,当监测到异常的服务容器未恢复到正常状态时,服务注册中心容器确定至少一个与异常的服务容器同类的服务容器;通知需要调用服务的服务容器,从至少一个与异常的服务容器同类的服务容器中,确定一个服务容器进行服务调用。
参考图7,在一个实施例中,基于区块链的数据处理装置还包括:镜像处理模块603和确定模块604,其中:
镜像处理模块603,用于获取服务注册中心容器镜像和服务容器镜像;将服务注册中心容器镜像运行成为服务注册中心容器,并将服务容器镜像运行成为服务容器。
确定模块604,用于根据每类服务容器的服务性能,确定至少两类服务容器中每类服务容器的数量。
上述基于区块链的数据处理装置,将每类服务容器所提供的服务注册至服务注册中心容器。因而,当获取到待存储的数据,节点在执行节点数据处理逻辑顺序的每一个处理环节时,都可以通过服务注册中心容器获取相应类所提供的相应的服务。当与区块链网络中的其它节点达成共识后,通过服务注册中心容器获取存储服务,对待存储数据进行存储。这样,每个服务容器所需要的服务,都通过服务注册中心容器获取。每个服务容器之间相互独立,且可以灵活地对每个服务容器进行扩展,从而大大提升了区块链网络的服务效率。
关于基于区块链的数据处理装置的具体限定可以参见上文中对于基于区块链的数据处理方法的限定,在此不再赘述。上述基于区块链的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是上述图1中的节点104,其内部结构图可以如图8所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于区块链的数据处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的数据处理方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据处理方法的步骤。此处基于区块链的数据处理方法的步骤可以是上述各个实施例的基于区块链的数据处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据处理方法的步骤。此处基于区块链的数据处理方法的步骤可以是上述各个实施例的基于区块链的数据处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种基于区块链的数据处理方法,应用于区块链网络中的节点,其特征在于,所述节点上运行有服务注册中心容器和至少两类服务容器;所述方法包括:
每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;
在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务对所述待存储数据进行数据处理;
当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储。
2.根据权利要求1所述的方法,其特征在于,所述每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务之前,所述方法还包括:
获取服务注册中心容器镜像和服务容器镜像;
将所述服务注册中心容器镜像运行成为服务注册中心容器,并将所述服务容器镜像运行成为服务容器;
所述服务容器在所述服务注册中心容器注册相应的服务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据每类服务容器的服务性能,确定所述至少两类服务容器中每类服务容器的数量。
4.根据权利要求1所述的方法,其特征在于,所述每类服务容器确定所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册的服务包括:
每类服务容器确定需调用服务的服务标识;所述服务标识,是所述至少两类服务容器中其它类的服务容器、在服务注册中心容器所注册服务的服务标识;
所述每类服务容器根据所述服务标识,从所述服务注册中心容器查询与所述服务标识对应的服务。
5.根据权利要求1所述的方法,其特征在于,所述在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务进行数据处理包括:
在获取到待存储数据时,确定节点当前所处的节点数据处理逻辑顺序中的数据处理环节;
根据节点当前所处的数据处理环节,在服务注册中心容器中查找所述数据处理环节对应类的服务容器提供的服务;
调用与所述服务对应的类中至少一个服务容器对所述待存储数据进行处理。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
服务注册中心容器监测服务容器的状态;
当至少一个服务容器处于异常状态时,所述服务注册中心容器定期检查异常的服务容器的状态;
当监测到所述异常的服务容器恢复到正常状态时,通知需要调用服务的服务容器进行服务调用。
7.根据权利要求6所述的方法,其特征在于,所述节点还包括至少一个与所述异常的服务容器同类的服务容器,所述当至少一个服务容器处于异常状态时,所述服务注册中心容器定期检查异常的服务容器的状态之后,所述方法还包括:
当监测到所述异常的服务容器未恢复到正常状态时,所述服务注册中心容器确定至少一个与所述异常的服务容器同类的服务容器;
通知需要调用服务的服务容器,从所述至少一个与所述异常的服务容器同类的服务容器中,确定一个服务容器进行服务调用。
8.根据权利要求1所述的方法,其特征在于,所述当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储之前,所述方法还包括:
获取所述区块链网络中的其它节点所反馈的处理结果;
通过在服务注册中心容器注册的共识服务相应类的至少一个服务容器,将所述处理结果在所述区块链网络中进行共识运算。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储包括:
当与所述区块链网络中的其它节点达成共识后,将与所述待存储数据相关的数据生成区块;
在服务注册中心容器中,查找提供存储服务的服务容器;
通过查找到的所述服务容器所提供的存储服务,对所述区块进行存储。
10.一种基于区块链的数据处理装置,用于实现区块链网络中的节点,其特征在于,所述装置包括服务注册中心容器和至少两类服务容器;
每类所述服务容器,用于确定至少两类服务容器中其它类服务容器在服务注册中心容器所注册的服务;每个服务用于执行节点数据处理逻辑顺序的一个处理环节;
所述服务容器,用于在获取到待存储数据时,按照节点数据处理逻辑顺序,通过相应类的服务容器依照相应的服务对所述待存储数据进行数据处理;还用于当与所述区块链网络中的其它节点达成共识后,通过所述至少两类服务容器中提供存储服务的服务容器,对所述待存储数据进行存储。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
镜像处理模块,用于获取服务注册中心容器镜像和服务容器镜像;将所述服务注册中心容器镜像运行成为服务注册中心容器,并将所述服务容器镜像运行成为服务容器;
所述服务容器还用于在所述服务注册中心容器注册相应的服务。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911100293.XA CN110908801B (zh) | 2019-11-12 | 2019-11-12 | 基于区块链的数据处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911100293.XA CN110908801B (zh) | 2019-11-12 | 2019-11-12 | 基于区块链的数据处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110908801A CN110908801A (zh) | 2020-03-24 |
CN110908801B true CN110908801B (zh) | 2022-07-12 |
Family
ID=69817406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911100293.XA Active CN110908801B (zh) | 2019-11-12 | 2019-11-12 | 基于区块链的数据处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110908801B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625593B (zh) * | 2020-04-21 | 2023-09-08 | 金蝶软件(中国)有限公司 | 基于区块链的数据处理方法、装置、计算机设备 |
CN112422320B (zh) * | 2020-10-27 | 2022-11-11 | 北京金山云网络技术有限公司 | 服务器的主从切换方法、装置和服务器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111756550B (zh) * | 2017-03-28 | 2023-08-22 | 创新先进技术有限公司 | 一种区块链共识方法及装置 |
CN107103054B (zh) * | 2017-04-12 | 2019-03-26 | 北京航空航天大学 | 一种私有区块链的智能合约异步执行存储***与实现方法 |
CN107450981B (zh) * | 2017-05-31 | 2020-04-24 | 创新先进技术有限公司 | 一种区块链共识方法及设备 |
CN107579931B (zh) * | 2017-09-08 | 2019-09-10 | 杭州云象网络技术有限公司 | 一种基于Kubernetes的区块链即服务资源适配方法 |
WO2019089774A1 (en) * | 2017-10-31 | 2019-05-09 | Jordan Simons | Distributed multi-ledger gambling architecture |
CN110430259B (zh) * | 2018-04-16 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 数据服务***、服务器和计算机可读存储介质 |
-
2019
- 2019-11-12 CN CN201911100293.XA patent/CN110908801B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110908801A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN109492983B (zh) | 基于区块链智能合约的电子***签署方法、装置、设备和介质 | |
CN108804618B (zh) | 数据库配置方法、装置、计算机设备和存储介质 | |
CN109308227B (zh) | 故障检测控制方法及相关设备 | |
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
CN111049696B (zh) | 用于区块链***的节点管理的方法、节点和计算设备 | |
CN112035472B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110908801B (zh) | 基于区块链的数据处理方法、装置、计算机设备和存储介质 | |
CN110222535B (zh) | 区块链配置文件的处理装置、方法及存储介质 | |
CN108366132B (zh) | 服务器间的服务管理方法、装置、计算机设备和存储介质 | |
CN113570479B (zh) | 一种房产交易数据的区块链传输方法、***及存储介质 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN111782456B (zh) | 异常检测方法、装置、计算机设备和存储介质 | |
CN111339551B (zh) | 数据的验证方法及相关装置、设备 | |
CN111654522A (zh) | 文件同步方法、文件同步服务器及存储介质 | |
CN117319412A (zh) | 一种区块链网络的管理方法及相关设备 | |
CN114637611A (zh) | 基于消息队列的信息处理方法、装置及计算机设备 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN108389124B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111291063B (zh) | 主备副本选举方法、***、计算机设备和存储介质 | |
CN113643030B (zh) | 交易处理方法、装置及设备 | |
CN111552989A (zh) | 基于区块链的业务数据处理方法、装置、设备和存储介质 | |
CN115567218A (zh) | 基于区块链的安全证书的数据处理方法、装置和服务器 | |
CN115221244A (zh) | 区块链跨链方法、装置、计算机设备和存储介质 | |
CN113902415A (zh) | 财务数据核对方法、装置、计算机设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |