CN111625593A - 基于区块链的数据处理方法、装置、计算机设备 - Google Patents
基于区块链的数据处理方法、装置、计算机设备 Download PDFInfo
- Publication number
- CN111625593A CN111625593A CN202010315097.0A CN202010315097A CN111625593A CN 111625593 A CN111625593 A CN 111625593A CN 202010315097 A CN202010315097 A CN 202010315097A CN 111625593 A CN111625593 A CN 111625593A
- Authority
- CN
- China
- Prior art keywords
- service
- container
- data
- block
- chain
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于区块链的数据处理方法、装置、计算机设备和存储介质。所述方法包括:获取多个业务请求,业务请求携带业务数据和业务类型标识;获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。在处理多种类型的业务请求时,采用本方法能够提高数据处理效率。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的数据处理方法、装置、计算机设备和存储介质。
背景技术
随着互联网技术的发展,出现了区块链(Blockchain Technology,BT)技术。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
目前,在处理多种交易数据时,区块链网络会将各种交易数据的相关数据发送至同一个共识主节点进行共识。然而,各种交易数据在共识主节点内需要排队进行共识,即共识主节点单个时间只能对一种交易数据进行共识,存在数据处理效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种在处理多种交易数据时能够提高数据处理效率的基于区块链的数据处理方法、装置、计算机设备和存储介质。
一种基于区块链的数据处理方法,应用于区块链网络中的节点,所述节点上运行有多类服务容器,所述方法包括:
获取多个业务请求,所述业务请求携带业务数据和业务类型标识;
获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;
按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;
当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
一种基于区块链的数据处理系统,其特征在于,所述系统包括多个区块链节点,各个区块链节点包括广播服务容器、节点服务容器、智能合约服务容器、共识服务容器和存储服务容器,至少共识服务容器和存储服务容器中存在至少两个协程,按照业务数据处理流程依次调用各类服务容器中的协程提供不同的服务,依次调用的各个协程形成对应的业务链,各个业务链用于并行处理各类业务数据。
一种基于区块链的数据处理装置,应用于区块链网络中的节点,其特征在于,所述装置包括:
获取模块,用于获取多个业务请求,所述业务请求携带业务数据和业务类型标识;获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;
处理模块,用于按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;
存储模块,用于当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取多个业务请求,所述业务请求携带业务数据和业务类型标识;
获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;
按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;
当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取多个业务请求,所述业务请求携带业务数据和业务类型标识;
获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;
按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;
当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
上述基于区块链的数据处理方法、装置、计算机设备和存储介质,区块链网络中的节点上运行有各类服务容器,各类服务容器可以用于执行业务数据处理流程中对应的数据处理环节,并且各类服务容器中存在处理不同类型的业务请求的协程。因而,当节点接收到多种业务类型的业务请求时,可以获取各个业务类型标识对应的业务链,通过运行各类服务容器中相应业务链对应的协程,并行进行各类业务数据的数据处理。当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。这样,通过运行各类服务容器中不同业务链对应的协程,来并行处理不同类型的业务数据,在各类服务容器中各个业务链对应的协程之间相互独立,可以并发运行,同时处理不同类型的业务数据,从而可以大大提升数据处理的效率。
附图说明
图1为一个实施例中基于区块链的数据处理方法的应用环境图;
图2为一个实施例中基于区块链的数据处理方法的流程示意图;
图3为一个实施例中创建业务链的流程示意图;
图3A为另一个实施例中创建业务链的流程示意图;
图4为一个实施例中确定区块生成优先级的流程示意图;
图5为另一个实施例中基于区块链的数据处理方法的流程示意图;
图6A为一个实施例中基于区块链的数据处理系统的架构示意图;
图6B为另一个实施例中基于区块链的数据处理系统的架构示意图;
图7为一个实施例中区块链节点的架构示意图;
图8为一个实施例中基于区块链的数据处理装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
区块链网络是运行区块链技术的载体和组织方式。区块链技术,简称BT(Blockchain Technology),也被称为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个节点均可参与数据记录。区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
本申请提供的基于区块链的数据处理方法,可以应用于如图1所示的应用环境中,该应用环境包括终端102和区块链网络中的节点104。区块链网络可以包括多个节点。终端102与节点104通过网络进行通信,区块链网络中的各个节点之间也通过网络进行通信。其中,用户终端102具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。节点104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。节点104从终端102获取多个业务请求,各个业务请求携带业务数据和业务类型标识。节点104在本地获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节。按照业务数据处理流程,节点104通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理。当与其他参与节点达成共识后,节点104通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
本领域技术人员可以理解,图1中示出的应用环境,仅仅是与本申请方案相关的部分场景,并不构成对本申请方案应用环境的限定。
在一个实施例中,如图2所示,提供了一种基于区块链的数据处理方法,以该方法应用于图1中的节点为例进行说明,包括以下步骤:
S202,获取多个业务请求,业务请求携带业务数据和业务类型标识。
其中,业务请求是终端发送至区块链网络中节点的一个请求,用于请求进行业务数据处理。业务请求携带业务数据和业务类型标识。业务类型标识是一种标识,用于唯一标识业务请求对应的业务类型,具体可以包括字母、数字和符号中至少一种字符的字符串。各个业务请求对应的业务类型不同。各个业务请求携带的业务数据可以为多个。
具体地,终端可以通过相关应用或控件触发生成业务请求,将业务数据和业务类型标识携带至业务请求中,通过网络发送至区块链网络中的节点。节点可以接收同一终端发送的多个业务请求,也可以接收不同终端发送的多个业务请求。
在一个实施例中,业务类型包括转账交易,业务数据具体可以包括交易时间、交易金额、交易双方信息、智能合约标识等数据中的至少一种。业务类型包括凭证存储,业务数据具体可以包括凭证生成时间、凭证所涉及的经济业务内容、业务参与方信息、智能合约标识等数据中的至少一种。
S204,获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节。
其中,业务链是指区块链网络中的一条区块链,用于处理同一业务类型的业务请求。业务链和业务类型标识存在对应关系。容器是一种进程,用于处理数据,可以通过镜像创建。服务容器是一种运行有模块的容器,用于提供与模块相对应的服务。服务是模块所提供的功能,比如提供区块链中至少一部分功能的服务、实现业务处理各个环节的服务或者社交交互中各个环节的服务。一个节点可以运行多类服务容器。各类服务容器的数量至少为一个。
协程不是进程或线程,是一种比线程更加轻量级的存在,一个进程可以包括多个协程,多个协程可以并行运行,多个协程相对独立,有自己的上下文,其切换由自己控制,由当前协程切换到其他协程由当前协程来控制。各个业务链在各类服务容器中可以创建对应的实例,通过协程来实现,进而各个业务链的数据逻辑处理都会同时并行运行并且互不干扰。例如,可以通过go协程实现,go协程是指通过go语言实现协程。
具体地,区块链网络中运行有多条业务链。节点在获取到多个业务请求时,可以根据各个业务请求携带的业务链标识在本地获取对应的业务链。
在一个实施例中,各类服务容器包括广播服务容器(P2P,Peer-to-Peer,点对点技术)、节点服务容器、智能合约服务容器、共识服务容器、缓存服务容器以及存储服务容器。其中,广播服务容器可提供区块链网络中各个节点之间通信的服务。节点服务容器可提供对终端发送的业务数据进行校验,以及通过广播服务容器对业务数据和业务数据处理过程中产生的数据进行广播的服务。缓存服务容器可提供存储临时数据或经常访问的数据的服务。智能合约服务容器可提供根据计算机协议,对业务数据进行处理,生成智能合约模拟结果的服务。共识服务容器可提供对智能合约模拟结果进行共识运算,生成区块摘要和区块数据,生成区块的服务。存储服务容器可提供将生成的区块存储至硬盘或数据库中的服务。各类服务容器之间相互独立,可以灵活地对每类服务容器进行扩展和维护。
在一个实施例中,通过镜像创建服务容器的技术可以是Docker技术。Docker是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到计算机设备上。各个容器相互之间不会有任何接口。
在一个实施例中,各类服务容器之间通信可以通过gRPC(Google RemoteProcedure Call Protocol,谷歌远程过程调用协议)来实现。gRPC是一种远程过程调用框架,可以通过protobuf(Protocol Buffers)将数据序列化为二进制编码,从而大幅减少需要传输的数据量,大幅提高数据传输性能。
S206,按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理。
具体地,节点在获取到各种业务请求对应的业务链后,可按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,按照相应的服务对相应的业务数据,并行进行数据处理。
在一个实施例中,节点在对业务数据进行处理之前,可以对业务数据进行有效性验证,具体可以是验证数据信息的合法性、业务数据的准确性等。通过有效性验证的业务数据是记录完整的、正确的、且没有被篡改过的业务数据。
在一个实施例中,对业务数据的数据处理,可按照业务数据处理流程顺序依次执行。对业务数据的数据处理包括验证业务数据的有效性、广播业务数据、通过计算机协议将有效的业务数据进行处理生成智能合约模拟结果、缓存智能合约模拟结果、将智能合约模拟结果进行共识、生成区块摘要和区块数据、缓存区块摘要和区块数据、广播区块摘要、确定区块生成优先级、生成区块、广播区块以及存储区块。
S208,当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
具体地,获取其他参与节点返回的各类业务数据的智能合约模拟结果,发送至共识容器中并行进行各类业务数据的共识运算。当与其他参与节点达成共识后,节点可以根据各类业务数据和对应的共识结果生成各类业务数据对应的区块摘要和区块数据。节点将各类业务数据对应的区块摘要发送至其他参与节点。从所有参与节点中选取一个节点作为排序节点,由排序节点确定各类业务数据对应的区块生成优先级。节点按照各类业务数据对应的区块生成优先级依次生成各类业务数据对应的区块。最终,通过运行提供存储服务的服务容器中各个业务链对应的协程,节点在本地对各类业务数据对应的区块进行并行存储。上述基于区块链的数据处理方法,区块链网络中的节点上运行有各类服务容器,各类服务容器可以用于执行业务数据处理流程中对应的数据处理环节,并且各类服务容器中存在处理不同类型的业务请求的协程。因而,当节点接收到多种业务类型的业务请求时,可以获取各个业务类型标识对应的业务链,通过运行各类服务容器中相应业务链对应的协程,并行进行各类业务数据的数据处理。当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。这样,通过运行各类服务容器中不同业务链对应的协程,来并行处理不同类型的业务数据,在各类服务容器中各个业务链对应的协程之间相互独立,可以并发运行,同时处理不同类型的业务数据,从而可以大大提升数据处理的效率。
在一个实施例中,如图3所示,步骤S202,也就是获取多个业务请求之前,基于区块链的数据处理方法还包括:
S302,获取业务链创建请求,业务链创建请求携带待创建业务链的业务类型标识。
S304,获取业务链信息集合,业务链信息集合包括已创建业务链的业务类型标识。
S306,当业务链信息集合中查找不到待创建业务链的业务类型标识时,在各类服务容器中创建待创建业务链对应的协程。
S308,广播业务链创建请求至其他参与节点,以使其他参与节点根据业务链创建请求在本地的各类服务容器中创建待创建业务链对应的协程。
其中,业务链创建请求是终端发送至区块链网络中节点的一个请求,用于请求创建业务链。
具体地,终端可以通过相关应用或控件触发生成业务链创建请求,将待创建业务链的业务类型标识携带至业务链创建请求中,通过网络发送至区块链网络中的节点。节点本地存储有已创建业务链的业务类型标识。当在本地查找不到与待创建业务链的业务类型标识相同的业务类型标识时,表明当前节点没有创建过该待创建业务链。进而,节点在本地的各类服务容器中创建该待创建业务链对应的协程,并广播该业务链创建请求至其他参与节点,以使其他参与节点根据业务链创建请求在本地的各类服务容器中创建待创建业务链对应的协程。
参考图3A,在一个实施例中,终端可以发送业务链创建请求至节点,业务链创建请求携带待创建业务链的信息。节点接收到业务链创建请求后进行身份权限验证,当身份权验证通过后,当前节点获取本地所有已创建业务链的信息。当已创建业务链的信息中不存在待创建业务链的信息时,当前节点在本地的节点服务容器、共识服务容器和存储服务容器通过协程创建新的实例并发运行,各实例之间通信通过gRPC来实现。广播服务容器和智能合约服务容器可以不区分业务链的类型。当前节点将接收到的业务链创建请求通过广播服务容器广播到其他参与节点,其他参与节点进行相同的创建。其中,身份权限验证具体可以是签名验证。终端在生成业务链创建请求时可以对请求中的业务链数据进行哈希计算,通过私钥对计算得到的哈希值进行加密,得到签名数据,将签名数据和公钥携带至请求中。节点接收到请求后通过公钥对签名数据进行解密,得到解密数据,对请求中的业务链数据通过同一哈希算法进行哈希计算,当计算得到的哈希值和解密数据一致时,身份权限验证通过。
上述实施例中,通过获取业务链创建请求,根据业务链创建请求在本地的各类服务容器中创建待创建业务链对应的协程,使得不同业务链在各服务容器中对应的协程能够独立并发运行。
在一个实施例中,步骤S208,也就是当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果的步骤之前,基于区块链的数据处理方法还包括:获取其他参与节点反馈的各类业务数据的模拟处理结果;通过提供共识服务的服务容器中对应的协程,将各类业务数据的模拟处理结果并行进行共识运算,得到各类业务数据对应的共识结果。
其中,模拟处理结果是指智能合约模拟结果。
具体地,节点接收到终端发送的多个业务请求后,将各个业务请求广播至其他参与节点。其他参与节点调用本地的智能合约容器分别对各类业务数据执行智能合约,得到各类业务数据对应的智能合约模拟结果。其他参与节点将各类业务数据的智能合约模拟结果反馈给业务请求的发送节点。节点接收到其他参与节点反馈的各类业务数据对应的智能合约模拟结果后,通过共识容器中对应的协程,对各类业务数据的模拟处理结果并行进行共识运算,得到各类业务数据对应的共识结果。业务请求的发送节点可以不调用智能合约容器对业务请求携带的业务数据进行处理。区块链网络中的所有节点都可以接收其他参与节点广播的业务请求,调用本地的智能合约容器对其他参与节点广播的业务数据进行处理。例如,节点A接收到终端发送的业务请求1和业务请求2,业务请求1携带业务数据1,业务请求2携带业务数据2。节点A将业务请求1和业务请求2广播至其他参与节点,其他参与节点反馈业务数据1和业务数据2的智能合约模拟结果至节点A。节点B接收到终端发送的业务请求3,业务请求3携带业务数据3。节点B将业务请求3广播至其他参与节点,其他参与节点反馈业务数据3的智能合约模拟结果至节点B。节点A对业务数据1和业务数据2的智能合约模拟结果进行共识运算,节点B对业务数据3的智能合约模拟结果进行共识运算。通过共识容器中相应的协程,节点A和节点B可以同时对业务数据1、业务数据2和业务数据3的智能合约模拟结果进行共识运算。并且,各个节点各自负责自己接收到终端发送的业务请求对应的业务数据的共识计算,从而不需要将所有的业务数据发送至一个节点进行共识计算,避免对某个节点依赖过大导致出现恶意节点。
在一个实施例中,节点进行共识运算具体可以是对业务数据的模拟处理结果进行投票。当所有参与节点中超过第一预设阈值的节点,对业务数据进行处理所得到的模拟处理结果一致时,则表示共识通过。当所有参与节点中超过第二预设阈值的节点,对业务数据进行处理所得到的模拟处理结果不一致时,则表示共识不通过。共识节点可以广播通知其他参与节点,重新计算业务数据的模拟处理结果,直至所有参与节点中超过第一预设阈值的节点,对业务数据进行处理所得到的模拟处理结果一致。其中,第一预设阈值和第二预设阈值可以根据需要自定义,例如第一预设阈值为参与节点总数的三分之二,第二预设阈值为参与节点总数的三分之一。
上述实施例中,通过提供共识服务的服务容器中对应的协程,将其他参与节点反馈的各类业务数据的模拟处理结果同时进行共识运算,可以有效提高共识效率。此外,对业务数据的模拟处理结果进行共识运算,也可以保证所有参与节点数据的一致性。
在一个实施例中,基于区块链的数据处理方法还包括:获取当前区块高度,获取参与节点总数;根据当前区块高度和参与节点总数从所有参与节点中确定排序节点。
其中,当前区块高度是指节点本地存储的区块中,最新存储的新区块的层数。例如,节点最新存储的新区块为第五十层,则当前区块高度为50。可以理解,区块是不断生成的,不断生成的区块所对应的层数是不断递增的,因而当前区块高度为当前最新存储的区块所对应的层数。参与节点总数是指所有参与处理业务数据的节点的总数量。排序节点是用于根据多个区块摘要确定各个区块摘要对应的业务数据的区块生成优先级。
在一个实施例中,所有参与节点存在节点标识,节点标识可以用节点编号来表示,例如1、2、3。节点获取当前区块高度和参与节点总数,计算当前区块高度和参与节点总数相除得到的余数。节点将计算得到的余数对应的节点编号代表的节点作为排序节点。例如,假设当前区块高度和参与节点总数相除的余数为3,则将节点编号为3对应的节点作为排序节点。可以理解,区块是不断生成的,不断生成的区块所对应的层数是不断递增的,因而排序节点是不断变化的。
在一个实施例中,当排序节点发生故障时,可以根据当前区块高度和更新后的参与节点总数重新确定新的排序节点。其中,更新后的参与节点总数不包括故障节点。
上述实施例中,由于当前区块高度是不断递增的,根据当前区块高度和参与节点总数确定的排序节点也是不断变化的,不是固定不变的。每个节点都是平等的,都有机会成为排序节点,从而有效避免出现对某个节点依赖过大的情况。
在一个实施例中,如图4所示,基于区块链的数据处理方法还包括:
S402,当与其他参与节点达成共识后,通过提供共识服务的服务容器中对应的协程,根据各类业务数据和各类业务数据对应的共识结果并行生成各类业务数据对应的区块摘要和区块数据,区块摘要携带时间戳。
其中,区块生成优先级是指生成区块的先后顺序。区块摘要用于记录业务数据的相关属性信息。属性信息包括业务类型标识、业务数据标识、智能合约标识以及时间戳等中的至少一种。各类业务数据对应的区块数据分别包括相应类业务数据和相应类业务数据的共识结果。属性信息中的时间戳是指区块数据中所有业务数据的共识结果生成时对应的时间戳的平均值。
具体地,当与其他参与节点达成共识后,节点可以通过本地共识容器中对应的协程,分别提取各类业务数据的相关属性信息作为各类业务数据对应的区块摘要,分别将各类业务数据和各类业务数据的共识结果打包成各类业务数据对应的区块数据。进一步的,节点还可以将各类业务数据对应的区块摘要和区块数据保存到缓存。将同一业务数据对应的区块摘要和区块数据建立关联关系。
S404,将各类业务数据对应的区块摘要发送至排序节点,以使排序节点根据各类业务数据对应的区块摘要的时间戳,确定各类业务数据对应的区块生成优先级。
具体地,节点可以将本地生成的区块摘要广播给其他参与节点,也可以接收其他参与节点广播的区块摘要。例如,节点A可以将本地生成的业务数据1、2对应的区块摘要广播给其他参与节点,节点A也可以接收节点B广播的业务数据3对应的区块摘要。当排序节点接收到其他参与节点发送的多个区块摘要后,排序节点可以根据本端所有区块摘要的时间戳,按照时间顺序对各个区块摘要进行排序。时间戳越早,排序越靠前,也就是,最早得到共识结果的业务数据对应的区块生成优先级最高。根据排序结果,排序节点可以确定各个区块摘要对应的业务数据的区块生成优先级。
上述实施例中,通过服务容器中对应的协程,可以并行生成各类业务数据对应的区块摘要和区块数据,提高区块摘要和区块数据的生成效率。并且,由排序节点确定所有业务数据的区块生成优先级,可以减轻其他参与节点的工作量,保证所有参与节点对于区块生成优先级达成一致。另外,由于区块摘要数据量小,根据区块摘要确定业务数据的区块生成优先级,按照区块生成优先级依次生成区块,可以提高区块生成效率。因为传统方法中,是将业务数据和业务数据的中间处理数据在节点之间传输来确定区块生成效率,业务数据和业务数据的中间处理数据比区块摘要的数据量大很多。
在一个实施例中,基于区块链的数据处理方法还包括:
接收排序节点发送的区块生成请求,区块生成请求携带区块摘要标识,区块摘要标识对应的业务数据的区块生成优先级最高;获取区块摘要标识对应的区块数据,获取当前区块信息;根据区块摘要标识对应的区块数据和当前区块信息生成区块。
其中,区块摘要标识用于唯一标识区块摘要。区块包括区块头和区块数据。区块头包括当前区块的区块高度和上一个区块的区块哈希值和自身区块哈希值。当前区块信息是指节点本地存储的区块中,最新存储的新区块的区块信息。区块信息包括业务类型标识、区块大小、区块的业务数据总量、区块高度和区块哈希值。
具体地,排序节点可以从排序结果中选取区块生成优先级最高的区块摘要,发送区块生成请求至该区块摘要对应的生成节点,由该生成节点根据区块生成请求生成该区块摘要对应的区块,并广播生成的区块至其他参与节点。区块链网络中每新增一个区块需要根据新的当前区块高度和参与节点总数确定新的排序节点,由新的排序节点确定下一个区块对应的生成节点。若排序节点发生故障,可以根据当前区块高度和除故障节点以外的其他参与节点总数重新确定排序节点。节点接收排序节点发送的区块生成请求,区块生成请求携带区块摘要标识。节点根据区块摘要标识可以确定区块摘要标识对应的区块摘要,获取该区块摘要关联的区块数据,确定该区块摘要对应的业务数据。节点可以根据获取到的区块数据和当前区块信息生成区块。节点按照各类业务数据对应的区块生成请求的接收先后顺序,依次根据各类业务数据对应的区块数据和当前区块信息生成各类业务数据对应的区块。节点通过运行提供存储服务容器中各个业务链对应的协程,并行存储各类业务数据对应的区块。
在一个实施例中,步骤S208,也就是当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果,包括:获取各类业务数据对应业务链的存储区域,通过提供存储服务的服务容器中对应的协程,将各类业务数据对应生成的区块并行存储至各类业务数据对应业务链的存储区域。
其中,存储区域是指数据库。各个业务链在节点中存在对应的数据库,也就是,各类业务数据在节点中存在对应的数据库。数据库和业务类型标识存在关联关系。
具体地,当获取到各类业务数据对应生成的区块后,节点可以根据各类业务数据对应的业务类型标识在本地获取各类业务数据对应业务链的数据库。节点通过提供存储服务的服务容器中相应的协程,将相应类业务数据对应生成的区块并行存储至相应业务链对应的数据库。
上述实施例中,通过提供存储服务的服务容器中相应的协程,可以并行对相应区块进行存储,有效提升存储速度。此外,不同类型业务数据对应生成的区块数据存储至不同的数据库,从而有效将不同类型业务数据对应生成的区块数据隔离存储、隔离查询。
参考图5,在一个具体的实施例中,基于区块链的数据处理方法包括以下步骤:
步骤1:节点接收到多种类型的业务请求,业务请求携带业务数据和业务类型标识。
步骤2:节点获取每种业务类型标识对应的业务链,分别进行签名验证。
步骤3:当签名验证通过后,节点可以通过相应业务链对应的节点实例将各类业务数据广播给其他参与节点。
步骤4:其他参与节点通过相应业务链对应的智能合约容器分别处理对应的业务数据,得到各类业务数据的模拟处理结果,并将各类业务数据的模拟处理结果返回至原节点进行共识。原节点中各个业务链对应的共识实例可以并行对其他参与节点返回的各类业务数据的模拟处理结果进行共识运算。当所有参与节点达成共识后,原节点中不同业务链的共识实例分别根据相应的业务数据和模拟处理结果生成相应的区块摘要和区块数据,将区块摘要和区块数据保存到缓存,并广播区块摘要至其他参与节点。
步骤5:根据当前区块高度和参与节点总数确定排序节点。排序节点根据所有业务数据的区块摘要的时间戳确定所有业务数据对应的区块生成优先级。排序节点选取区块生成优先级最高的区块摘要,发送区块生成请求至该区块摘要对应的生成节点,以使该生成节点根据区块生成请求生成该区块摘要对应的区块。区块链网络中每新增一个区块需要根据新的当前区块高度和参与节点总数确定下一个排序节点。节点生成区块后,将区块保存到缓存,并广播区块至其他参与节点,以使其他参与节点将区块保存到缓存。
步骤6:节点中不同业务链的存储实例会同时运行将对应的区块持久化分别保存到每条链的数据库。
上述基于区块链的数据处理方法,可以实现高效处理多类业务数据,同时保证了每类业务数据处理结果的单独存储。应该理解的是,上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种基于区块链的数据处理系统,该系统包括多个区块链节点,各个区块链节点包括广播服务容器、节点服务容器、智能合约服务容器、共识服务容器和存储服务容器;各个业务链在各类服务容器中存在对应的协程,按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理。
具体地,各个区块链节点上都运行有五类服务容器。各类服务容器分别提供业务数据处理流程中至少一部分功能的服务。五类服务容器包括广播服务容器、节点服务容器、智能合约服务容器、共识服务容器和存储服务容器。每类服务容器的数量可以为一个或者多个。每类服务容器中创建有各个业务链对应的协程,每个协程都与业务类型标识存在对应关系。按照业务数据处理流程,区块链节点可以依次调用各类服务容器中相同业务类型标识对应的协程提供相应的服务,依次调用的各个相同业务类型标识对应的协程形成该业务类型标识对应的业务链,该业务类型标识对应的业务链可以用于处理该业务类型标识对应的业务数据。由于同一服务容器中的多个协程可以并行运行,因此区块链节点可以调用不同的业务链并行处理不同类型的业务数据,有效提高了数据处理的效率。
在一个实施例中,节点服务容器用于接收各个业务链的业务请求,发送业务请求至智能合约服务容器和广播服务容器;智能合约服务容器用于接收节点服务容器发送的业务请求,执行对应的智能合约后返回模拟处理结果给节点服务容器;节点服务容器还用于接收智能合约服务容器返回的模拟处理结果,发送模拟处理结果至广播服务容器;共识服务容器用于接收其他区块链节点的智能合约服务容器返回的模拟处理结果,通过各个业务链对应的协程对所述模拟处理结果进行共识后生成各个业务链的区块,发送区块至存储服务容器和广播服务容器;存储服务容器用于接收共识服务容器发送的区块,通过各个业务链对应的协程将区块存储至所述各个业务链对应的数据库中;广播服务容器用于区块链节点间业务链的业务数据传输。
具体地,由于区块链网络中每个区块链节点都是对等的,仅以两个区块链节点为例说明节点内部模块容器间运行关系以及节点和节点间通信数据同步关系。参考图6A,图6A为一个实施例中基于区块链的数据处理系统的结构框图。节点上均运行有广播服务容器、节点服务容器、智能合约服务容器、共识服务容器以及存储服务容器。节点1的节点服务容器接收sdk客户端发送过来的多个交易请求,交易请求携带业务数据和业务类型标识。节点1的节点服务容器将各个交易请求发送至本地的广播服务容器,节点1的广播服务容器将各个交易请求发送至节点2(其他参与节点)的广播服务容器。节点2的广播服务容器将各个交易请求发送至本地的节点服务容器。节点2的节点服务容器将各个交易请求发送至本地的智能合约服务容器。节点2的智能合约服务容器接收到节点服务容器发送的业务请求后,执行各类业务数据对应的智能合约,得到各类业务数据对应的模拟处理结果,并将各类业务数据对应的模拟处理结果发送至本地的节点服务容器。节点2的节点服务容器将各类业务数据对应的模拟处理结果通过本地的广播服务容器发送至节点1的广播服务容器。节点1的广播服务容器将各类业务数据对应的模拟处理结果发送至本地的共识服务容器。节点1的共识服务容器通过各个业务链对应的协程并行对各类业务数据对应的模拟处理结果进行共识,得到各类业务数据对应的共识结果。当所有节点达成共识后,从所有参与节点中选取一个节点作为排序节点,由排序节点确定各类业务数据对应的区块生成优先级。节点1的共识服务容器可以按照各类业务数据对应的区块生成优先级,根据各类业务数据和各类业务数据对应的共识结果依次生成各类业务数据对应的区块,将各类业务数据对应的区块发送至本地的广播服务容器。节点1的广播服务容器将各类业务数据对应的区块发送至节点2(其他参与节点)的广播服务容器。节点2的广播服务容器将各类业务数据对应的区块发送至本地的共识服务容器。所有节点的共识服务容器将各类业务数据对应的区块发送至本地的存储服务容器,通过各个业务链对应的协程将各类业务数据对应的区块存储至各个业务链对应的数据库中。节点1的节点服务容器还可以向客户端返回业务请求的业务处理结果。
可以理解,节点2也可以接收客户端发送的业务请求,将业务请求发送至其他参与节点,接收其他参与节点返回的模拟处理结果。节点2对其他参与节点返回的模拟处理结果进行共识后生成区块。
当所有节点达成共识后,节点1的共识服务容器通过各个业务链对应的协程,根据各类业务数据和各类业务数据对应的共识结果并行生成各类业务数据对应的区块摘要和区块数据,区块摘要携带时间戳。节点1的共识服务容器通过本地的广播服务容器将各类业务数据对应的区块摘要发送至其他参与节点。可以根据当前区块高度和参与节点总数从所有参与节点中确定排序节点。排序节点可以按照时间顺序对各个区块摘要进行排序。根据排序结果,排序节点可以确定各个区块摘要对应的业务数据的区块生成优先级。排序节点从排序结果中选取区块生成优先级最高的区块摘要,发送区块生成请求至该区块摘要对应的生成节点。生成节点根据区块生成请求生成该区块摘要对应的区块,并广播生成的区块至其他参与节点。区块链网络中每新增一个区块需要根据新的当前区块高度和参与节点总数确定新的排序节点,由新的排序节点确定下一个区块对应的生成节点。上述实施例中,智能合约服务容器仅与节点服务容器存在数据交互,智能合约服务容器不要对接其他服务容器。由于智能合约是需要提供给用户动态部署的,用户自己去实现智能合约,并部署到智能合约服务容器中,用户只需要关心智能合约本身的逻辑实现,智能合约服务容器运行的时候只需要向节点服务容器里面注册建立连接即可,功能逻辑集中到节点服务容器和共识服务容器,降低了智能合约的复杂度。
在一个实施例中,区块链节点还包括缓存服务容器,缓存服务容器用于将共识服务容器发送的各个业务链的区块,存储到相应的缓存中;存储服务容器通过各个业务链对应的协程,将各个业务链在缓存中的区块存储至各个业务链对应的数据库中。
具体地,区块链节点上还可以运行缓存服务容器。区块链节点的共识服务容器可以将各个业务链的区块发送至缓存服务容器。缓存服务容器接收到各个业务链的区块后,将各个业务链的区块存储到各个业务链的缓存中,减轻共识服务容器的负担。进而区块链节点的存储服务容器可以通过各个业务链对应的协程,将各个业务链在缓存中的区块存储至各个业务链对应的数据库中。
在一个实施例中,节点服务容器用于接收各个业务链的业务请求,发送业务请求至智能合约服务容器和广播服务容器;智能合约服务容器用于接收节点服务容器发送的业务请求,执行对应的智能合约后发送模拟处理结果给广播服务容器;共识服务容器用于接收其他区块链节点的智能合约服务容器返回的模拟处理结果,通过各个业务链对应的协程对模拟处理结果进行共识后生成各个业务链的区块,发送区块至存储服务容器和广播服务容器;存储服务容器用于接收共识服务容器发送的区块,通过各个业务链对应的协程将区块存储至各个业务链对应的数据库中;广播服务容器用于区块链节点间业务链的业务数据传输。
具体地,由于区块链网络中每个区块链节点都是对等的,仅以两个区块链节点为例说明节点内部模块容器间运行关系以及节点和节点间通信数据同步关系。参考图6B,图6B为一个实施例中基于区块链的数据处理系统的结构框图。节点上均运行有广播服务容器、节点服务容器、智能合约服务容器、共识服务容器、缓存服务容器以及存储服务容器。节点1的节点服务容器接收sdk客户端发送过来的多个交易请求,交易请求携带业务数据和业务类型标识。节点1的节点服务容器将各个交易请求发送至本地的广播服务容器,节点1的广播服务容器将各个交易请求发送至节点2(其他参与节点)的广播服务容器。节点2的广播服务容器将各个交易请求发送至本地的节点服务容器。节点2的节点服务容器将各个交易请求发送至本地的智能合约服务容器。节点2的智能合约服务容器接收到节点服务容器发送的业务请求后,执行各类业务数据对应的智能合约,得到各类业务数据对应的模拟处理结果,并将各类业务数据对应的模拟处理结果发送至本地的广播服务容器。节点2的广播服务容器将各类业务数据对应的模拟处理结果发送至节点1的广播服务容器。节点1的广播服务容器将各类业务数据对应的模拟处理结果发送至本地的共识服务容器。节点1的共识服务容器通过各个业务链对应的协程并行对各类业务数据对应的模拟处理结果进行共识,得到各类业务数据对应的共识结果。当所有节点达成共识后,从所有参与节点中选取一个节点作为排序节点,由排序节点确定各类业务数据对应的区块生成优先级。节点1的共识服务容器可以按照各类业务数据对应的区块生成优先级,根据各类业务数据和各类业务数据对应的共识结果依次生成各类业务数据对应的区块,将各类业务数据对应的区块发送至本地的广播服务容器。节点1的广播服务容器将各类业务数据对应的区块发送至节点2(其他参与节点)的广播服务容器。节点2的广播服务容器将各类业务数据对应的区块发送至本地的共识服务容器。所有节点的共识服务容器将各类业务数据对应的区块发送至本地的缓存服务容器,将各类业务数据对应的区块分别存储到相应的缓存中。所有节点的存储服务容器通过各个业务链对应的协程,将各个业务链在缓存中的区块存储至各个业务链对应的数据库中。
可以理解,节点2也可以接收客户端发送的业务请求,将业务请求发送至其他参与节点,接收其他参与节点返回的模拟处理结果。节点2对其他参与节点返回的模拟处理结果进行共识后生成区块。
在一个实施例中,节点服务容器、共识服务容器和存储服务容器中设置有与各个业务链相对应的多组协程,广播服务容器中设置有与各个业务链对应的一组或多组协程,智能合约服务容器中设置有与各个业务链对应的一组或多组协程。
具体地,节点服务容器、共识服务容器和存储服务容器作为逻辑单元需要区分业务链的类型,因此区块链节点在节点服务容器、共识服务容器和存储服务容器中分别创建各个业务链对应的实例,通过go协程来实现。而智能合约服务容器和广播服务容器作为无状态单元可以不需要区分业务链的类型,智能合约服务容器只负责生成智能合约模拟结果并发送智能合约模拟结果,广播服务容器只负责节点间数据广播。当然,为了优化业务数据处理,提高数据处理效率,区块链节点在智能合约服务容器和广播服务容器也可以分别创建各个业务链对应的实例。
在一个实施例中,由于节点服务容器负责数据的接收和传递,因此区块链节点在节点服务容器中可以创建一个协程,将该协程作为共享协程,每个业务链在进行业务数据处理时共享该协程。各个业务链在节点服务容器中共享协程,可以有效节约成本。
在一个实施例中,区块链节点用于根据各类业务数据的数据量和类型,确定广播服务容器和智能合约服务容器各自的数量。
具体地,若不同类型的业务数据对应不同类型的智能合约,那么区块链节点需要调用相应类型的智能合约对相应类型的业务数据进行处理,进而得到各类业务数据对应的模拟处理结果。一个智能合约服务容器只能对应一种智能合约,因此当不同业务链对应的智能合约不同时,例如服务链合约、存证合约等,区块链节点可以通过扩展多个智能合约服务容器,由不同的智能合约服务容器分别处理相应的业务数据。此外,智能合约服务容器和广播服务容器可以通过扩展多个容器集群来实现负载均衡。当需要处理的各类业务数据的总数据量超过预设阈值时,可以根据各类业务数据的数据量,通过随机分配算法,将各类业务数据均匀分配到多个容器中,以实现负载平衡。例如,区块链节点上运行有广播服务容器1、广播服务容器2和广播服务容器3,当存在八种业务数据需要处理时,可以根据各种业务数据的数据量,将各种业务数据均匀分配到三个广播服务容器,提高广播效率。分配结果可以为广播服务容器1处理两种业务数据,广播服务容器2处理三种业务数据,广播服务容器3处理三种业务数据。其中,预设阈值可以根据需要自定义。此外,节点服务容器、共识服务容器和存储服务容器也可以扩展多个容器集群来实现更高的吞吐量。
参考图7,图7为一个区块链节点的架构示意图。图7以两条业务链为例,每条业务链在节点服务容器,共识服务容器,存储服务容器中都会创建一个实例,通过go协程来实现,各条业务链的数据逻辑处理都会同时并行运行并且互不干扰。其中,go实例1和go实例2为不同的业务链对应的实例。当两个业务链对应不同的智能合约时,区块链节点上就可以运行有两个智能合约服务容器,一个智能合约服务容器对应一种智能合约。当业务数据的总数据量超过预设阈值时,区块链节点上就可以运行有两个广播服务容器,分别传输一种业务数据和业务数据的数据处理结果。
在一个实施例中,如图8所示,提供了一种基于区块链的数据处理装置,包括:获取模块、处理模块和存储模块,其中:
获取模块802,用于获取多个业务请求,所述业务请求携带业务数据和业务类型标识;获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;
处理模块804,用于按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;
存储模块806,用于当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
在一个实施例中,获取模块还用于获取业务链创建请求,业务链创建请求携带待创建业务链的业务类型标识;获取业务链信息集合,业务链信息集合包括已创建业务链的业务类型标识;当业务链信息集合中查找不到待创建业务链的业务类型标识时,在各类服务容器中创建待创建业务链对应的协程;广播业务链创建请求至其他参与节点,以使其他参与节点根据业务链创建请求在本地的各类服务容器中创建待创建业务链对应的协程。
在一个实施例中,处理模块还用于获取其他参与节点反馈的各类业务数据的模拟处理结果;通过提供共识服务的服务容器中对应的协程,将所述各类业务数据的模拟处理结果并行进行共识运算,得到各类业务数据对应的共识结果。
在一个实施例中,获取模块还用于获取当前区块高度,获取参与节点总数;根据当前区块高度和参与节点总数从所有参与节点中确定排序节点。
在一个实施例中,基于区块链的数据处理装置还包括:
区块生成优先级确定模块,用于当与其他参与节点达成共识后,通过提供共识服务的服务容器中对应的协程,根据各类业务数据和各类业务数据对应的共识结果并行生成各类业务数据对应的区块摘要和区块数据,区块摘要携带时间戳;将各类业务数据对应的区块摘要发送至排序节点,以使排序节点根据各类业务数据对应的区块摘要的时间戳,确定各类业务数据对应的区块生成优先级。
在一个实施例中,存储模块还用于接收排序节点发送的区块生成请求,区块生成请求携带区块摘要标识,该区块摘要标识对应的业务数据的区块生成优先级最高;获取区块摘要标识对应的区块数据,获取当前区块信息;根据区块摘要标识对应的区块数据和当前区块信息生成区块。
在一个实施例中,存储模块还用于获取各类业务数据对应业务链的存储区域;通过提供存储服务的服务容器中各个业务链对应的协程,将各类业务数据对应生成的区块并行存储至各类业务数据对应业务链的存储区域。
关于基于区块链的数据处理装置的具体限定可以参见上文中对于基于区块链的数据处理方法的限定,在此不再赘述。上述基于区块链的数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于基于区块链的数据处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的数据处理方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据处理方法的步骤。此处基于区块链的数据处理方法的步骤可以是上述各个实施例的基于区块链的数据处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述基于区块链的数据处理方法的步骤。此处基于区块链的数据处理方法的步骤可以是上述各个实施例的基于区块链的数据处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (16)
1.一种基于区块链的数据处理方法,应用于区块链网络中的节点,所述节点上运行有多类服务容器,其特征在于,所述方法包括:
获取多个业务请求,所述业务请求携带业务数据和业务类型标识;
获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;
按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;
当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
2.根据权利要求1所述的方法,其特征在于,所述获取多个业务请求之前,所述方法还包括:
获取业务链创建请求,所述业务链创建请求携带待创建业务链的业务类型标识;
获取业务链信息集合,所述业务链信息集合包括已创建业务链的业务类型标识;
当所述业务链信息集合中查找不到所述待创建业务链的业务类型标识时,在各类服务容器中创建所述待创建业务链对应的协程;
广播所述业务链创建请求至其他参与节点,以使其他参与节点根据所述业务链创建请求在本地的各类服务容器中创建所述待创建业务链对应的协程。
3.根据权利要求1所述的方法,其特征在于,所述当与其他参与节点达成共识后,通过提供存储服务的服务容器对各类业务数据的数据处理结果进行存储之前,所述方法还包括:
获取其他参与节点反馈的各类业务数据的模拟处理结果;
通过提供共识服务的服务容器中对应的协程,将所述各类业务数据的模拟处理结果并行进行共识运算,得到各类业务数据对应的共识结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取当前区块高度,获取参与节点总数;
根据所述当前区块高度和参与节点总数从所有参与节点中确定排序节点。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当与其他参与节点达成共识后,通过提供共识服务的服务容器中对应的协程,根据各类业务数据和各类业务数据对应的共识结果并行生成各类业务数据对应的区块摘要和区块数据,所述区块摘要携带时间戳;
将所述各类业务数据对应的区块摘要发送至所述排序节点,以使所述排序节点根据所述各类业务数据对应的区块摘要的时间戳,确定所述各类业务数据对应的区块生成优先级。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述排序节点发送的区块生成请求,所述区块生成请求携带区块摘要标识,所述区块摘要标识对应的业务数据的区块生成优先级最高;
获取所述区块摘要标识对应的区块数据,获取当前区块信息;
根据所述区块摘要标识对应的区块数据和当前区块信息生成区块。
7.根据权利要求1所述的方法,其特征在于,所述当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果,包括:
获取各类业务数据对应业务链的存储区域;
通过提供存储服务的服务容器中各个业务链对应的协程,将所述各类业务数据对应生成的区块并行存储至所述各类业务数据对应业务链的存储区域。
8.一种基于区块链的数据处理系统,其特征在于,所述系统包括多个区块链节点,所述区块链节点运行有多条业务链,区块链节点包括广播服务容器、节点服务容器、智能合约服务容器、共识服务容器和存储服务容器;
各个业务链在各类服务容器中存在对应的协程,按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理。
9.根据权利要求8所述的系统,其特征在于,
所述节点服务容器用于接收各个业务链的业务请求,发送所述业务请求至智能合约服务容器和广播服务容器;
所述智能合约服务容器用于接收所述节点服务容器发送的业务请求,执行对应的智能合约后返回模拟处理结果给所述节点服务容器;
所述节点服务容器还用于接收所述智能合约服务容器返回的模拟处理结果,发送所述模拟处理结果至广播服务容器;
所述共识服务容器用于接收其他区块链节点的智能合约服务容器返回的模拟处理结果,通过各个业务链对应的协程对所述模拟处理结果进行共识后生成各个业务链的区块,发送所述区块至存储服务容器和广播服务容器;
所述存储服务容器用于接收所述共识服务容器发送的区块,通过各个业务链对应的协程将所述区块存储至所述各个业务链对应的数据库中;
所述广播服务容器用于区块链节点间业务链的业务数据传输。
10.根据权利要求8所述的系统,其特征在于,
所述节点服务容器用于接收各个业务链的业务请求,发送所述业务请求至智能合约服务容器和广播服务容器;
所述智能合约服务容器用于接收所述节点服务容器发送的业务请求,执行对应的智能合约后发送模拟处理结果给广播服务容器;
所述共识服务容器用于接收其他区块链节点的智能合约服务容器返回的模拟处理结果,通过各个业务链对应的协程对所述模拟处理结果进行共识后生成各个业务链的区块,发送所述区块至存储服务容器和广播服务容器;
所述存储服务容器用于接收所述共识服务容器发送的区块,通过各个业务链对应的协程将所述区块存储至所述各个业务链对应的数据库中;
所述广播服务容器用于区块链节点间业务链的业务数据传输。
11.根据权利要求8-10任一项所述的系统,其特征在于,所述区块链节点还包括缓存服务容器,所述缓存服务容器用于将所述共识服务容器发送的各个业务链的区块,存储到相应的缓存中;
所述存储服务容器通过各个业务链对应的协程,将各个业务链在所述缓存中的区块存储至所述各个业务链对应的数据库中。
12.根据权利要求8-10任一项所述的系统,其特征在于,所述节点服务容器、共识服务容器和存储服务容器中设置有与各个业务链相对应的多组协程,所述广播服务容器中设置有与各个业务链对应的一组或多组协程,所述智能合约服务容器中设置有与各个业务链对应的一组或多组协程。
13.根据权利要求8-10任一项所述的系统,其特征在于,所述区块链节点用于根据各类业务数据的数据量和类型,确定所述广播服务容器和智能合约服务容器各自的数量。
14.一种基于区块链的数据处理装置,应用于区块链网络中的节点,其特征在于,所述装置包括:
获取模块,用于获取多个业务请求,所述业务请求携带业务数据和业务类型标识;获取各个业务类型标识对应的业务链,各个业务链在各类服务容器中存在对应的协程,各类服务容器提供不同的服务,各个服务用于执行业务数据处理流程的一个数据处理环节;
处理模块,用于按照业务数据处理流程,通过运行各类服务容器中各个业务链对应的协程,并行进行各类业务数据的数据处理;
存储模块,用于当与其他参与节点达成共识后,通过运行提供存储服务的服务容器中各个业务链对应的协程,并行存储各类业务数据的数据处理结果。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315097.0A CN111625593B (zh) | 2020-04-21 | 2020-04-21 | 基于区块链的数据处理方法、装置、计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010315097.0A CN111625593B (zh) | 2020-04-21 | 2020-04-21 | 基于区块链的数据处理方法、装置、计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625593A true CN111625593A (zh) | 2020-09-04 |
CN111625593B CN111625593B (zh) | 2023-09-08 |
Family
ID=72270273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010315097.0A Active CN111625593B (zh) | 2020-04-21 | 2020-04-21 | 基于区块链的数据处理方法、装置、计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625593B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202564A (zh) * | 2020-09-14 | 2021-01-08 | 成都质数斯达克科技有限公司 | 交易传递方法、装置、电子设备及可读存储介质 |
CN112559635A (zh) * | 2020-12-23 | 2021-03-26 | 网易(杭州)网络有限公司 | 以太坊联盟链节点的业务处理方法、装置、设备及介质 |
CN112835700A (zh) * | 2020-12-07 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 基于智能合约的数据处理方法、装置、设备及存储介质 |
CN112866359A (zh) * | 2021-01-05 | 2021-05-28 | 卓望数码技术(深圳)有限公司 | 数据上链方法、装置、电子设备及存储介质 |
CN113034281A (zh) * | 2021-03-16 | 2021-06-25 | 中国工商银行股份有限公司 | 基于区块链的业务数据处理方法、相关系统及节点 |
CN113110936A (zh) * | 2021-04-14 | 2021-07-13 | 区块动力(广州)科技有限公司 | 一种对区块链节点运行性能的调节方法 |
CN113454597A (zh) * | 2020-09-28 | 2021-09-28 | 支付宝(杭州)信息技术有限公司 | 区块链交易处理系统和方法 |
CN114499963A (zh) * | 2021-12-24 | 2022-05-13 | 杭州趣链科技有限公司 | 多层级跨链协同方法、装置、计算机设备及存储介质 |
CN115150413A (zh) * | 2022-05-20 | 2022-10-04 | 网易(杭州)网络有限公司 | 区块链数据的存储方法、装置、电子设备及存储介质 |
US11500845B2 (en) | 2020-08-03 | 2022-11-15 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
CN115720238A (zh) * | 2022-09-01 | 2023-02-28 | 西安电子科技大学 | 一种支持高并发的区块链请求处理系统与方法 |
US11604608B2 (en) | 2020-08-03 | 2023-03-14 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315786A (zh) * | 2017-06-12 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 业务数据存储方法及装置 |
CN107395659A (zh) * | 2017-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种业务受理及共识的方法及装置 |
CN110633323A (zh) * | 2019-09-16 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质和计算机设备 |
CN110830581A (zh) * | 2019-11-12 | 2020-02-21 | 金蝶软件(中国)有限公司 | 提升区块链响应速度的方法、区块链应用系统及相关设备 |
CN110908801A (zh) * | 2019-11-12 | 2020-03-24 | 金蝶软件(中国)有限公司 | 基于区块链的数据处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-04-21 CN CN202010315097.0A patent/CN111625593B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107395659A (zh) * | 2017-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种业务受理及共识的方法及装置 |
CN107315786A (zh) * | 2017-06-12 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 业务数据存储方法及装置 |
CN110633323A (zh) * | 2019-09-16 | 2019-12-31 | 腾讯科技(深圳)有限公司 | 业务数据存储方法、装置、存储介质和计算机设备 |
CN110830581A (zh) * | 2019-11-12 | 2020-02-21 | 金蝶软件(中国)有限公司 | 提升区块链响应速度的方法、区块链应用系统及相关设备 |
CN110908801A (zh) * | 2019-11-12 | 2020-03-24 | 金蝶软件(中国)有限公司 | 基于区块链的数据处理方法、装置、计算机设备和存储介质 |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11604608B2 (en) | 2020-08-03 | 2023-03-14 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
US11500845B2 (en) | 2020-08-03 | 2022-11-15 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
CN112202564A (zh) * | 2020-09-14 | 2021-01-08 | 成都质数斯达克科技有限公司 | 交易传递方法、装置、电子设备及可读存储介质 |
US11487736B2 (en) | 2020-09-28 | 2022-11-01 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
CN113454597A (zh) * | 2020-09-28 | 2021-09-28 | 支付宝(杭州)信息技术有限公司 | 区块链交易处理系统和方法 |
WO2022061878A1 (en) * | 2020-09-28 | 2022-03-31 | Alipay (Hangzhou) Information Technology Co., Ltd. | Blockchain transaction processing systems and methods |
CN112835700A (zh) * | 2020-12-07 | 2021-05-25 | 腾讯科技(深圳)有限公司 | 基于智能合约的数据处理方法、装置、设备及存储介质 |
CN112835700B (zh) * | 2020-12-07 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 基于智能合约的数据处理方法、装置、设备及存储介质 |
CN112559635A (zh) * | 2020-12-23 | 2021-03-26 | 网易(杭州)网络有限公司 | 以太坊联盟链节点的业务处理方法、装置、设备及介质 |
CN112559635B (zh) * | 2020-12-23 | 2023-06-16 | 网易(杭州)网络有限公司 | 以太坊联盟链节点的业务处理方法、装置、设备及介质 |
CN112866359A (zh) * | 2021-01-05 | 2021-05-28 | 卓望数码技术(深圳)有限公司 | 数据上链方法、装置、电子设备及存储介质 |
CN113034281A (zh) * | 2021-03-16 | 2021-06-25 | 中国工商银行股份有限公司 | 基于区块链的业务数据处理方法、相关系统及节点 |
CN113110936A (zh) * | 2021-04-14 | 2021-07-13 | 区块动力(广州)科技有限公司 | 一种对区块链节点运行性能的调节方法 |
CN114499963A (zh) * | 2021-12-24 | 2022-05-13 | 杭州趣链科技有限公司 | 多层级跨链协同方法、装置、计算机设备及存储介质 |
CN115150413A (zh) * | 2022-05-20 | 2022-10-04 | 网易(杭州)网络有限公司 | 区块链数据的存储方法、装置、电子设备及存储介质 |
CN115150413B (zh) * | 2022-05-20 | 2023-11-03 | 网易(杭州)网络有限公司 | 区块链数据的存储方法、装置、电子设备及存储介质 |
CN115720238A (zh) * | 2022-09-01 | 2023-02-28 | 西安电子科技大学 | 一种支持高并发的区块链请求处理系统与方法 |
CN115720238B (zh) * | 2022-09-01 | 2024-04-02 | 西安电子科技大学 | 一种支持高并发的区块链请求处理系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111625593B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111625593B (zh) | 基于区块链的数据处理方法、装置、计算机设备 | |
US11375010B2 (en) | Sharding block chain generation method based on tree structure | |
CN109936457B (zh) | 区块链多方见证方法、装置、设备及计算机可读存储介质 | |
Dong et al. | When private set intersection meets big data: an efficient and scalable protocol | |
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN108683747B (zh) | 资源获取、分发、下载方法、装置、设备及存储介质 | |
CN111522874B (zh) | 区块链共识方法、装置、计算机设备和存储介质 | |
CN110059055B (zh) | 一种基于分布式私有云的文件存储及读取方法及装置 | |
CN111556120A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN112087439B (zh) | 区块链交易查询方法、系统、计算机设备和存储介质 | |
CN111314067A (zh) | 区块存储方法、装置、计算机设备及存储介质 | |
CN112883015A (zh) | 区块链数据管理方法、设备及存储介质 | |
CN113409047B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN110730081B (zh) | 基于区块链网络的证书吊销方法、相关设备及介质 | |
CN113055188A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
Buchnik et al. | Fireledger: A high throughput blockchain consensus protocol | |
CN113282462A (zh) | 应用于区块链和大数据的信息处理方法及大数据平台 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN113157450A (zh) | 在区块链系统中执行区块的方法及装置 | |
CN114710504A (zh) | 区块链系统中共识节点的轮换方法、节点和区块链系统 | |
CN117370460A (zh) | 基于双链存储的区块链存储优化方法及装置 | |
US20230291656A1 (en) | Operation of a distributed deterministic network | |
CN112653539B (zh) | 一种待存储数据的存储方法、装置以及设备 | |
CN111510484A (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 |