CN113179324B - 一种区块链节点及其执行的业务处理方法 - Google Patents
一种区块链节点及其执行的业务处理方法 Download PDFInfo
- Publication number
- CN113179324B CN113179324B CN202110473267.2A CN202110473267A CN113179324B CN 113179324 B CN113179324 B CN 113179324B CN 202110473267 A CN202110473267 A CN 202110473267A CN 113179324 B CN113179324 B CN 113179324B
- Authority
- CN
- China
- Prior art keywords
- module
- transaction
- consensus
- logic
- block
- 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
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000004891 communication Methods 0.000 claims abstract description 70
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 147
- 238000012795 verification Methods 0.000 claims description 27
- 238000012544 monitoring process Methods 0.000 claims description 26
- 230000000977 initiatory effect Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 24
- 238000012360 testing method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- 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
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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
- 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/546—Message passing systems or structures, e.g. queues
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种区块链节点及其执行的业务处理方法,涉及计算机技术领域。该方法的一具体实施方式包括:区块链节点包括根据业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,业务操作包括与其他逻辑功能模块进行消息通信,通信中间件用于在不同的逻辑功能模块之间进行消息通信时传递消息,该实施方式能够避免区块链节点的各功能之间竞争硬件资源,提高区块链节点的业务处理效率,进而提升整个区块链系统的处理性能,且可实现对各功能分开部署、升级和测试,升级的风险低,具有更强的可扩展性以及更好的可维护性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种区块链节点及其执行的业务处理方法。
背景技术
区块链节点一般包括共识,账本,RPC(Remote Procedure Call Protocol,远程过程调用协议),虚拟机等功能,现有的公链例如以太坊等,这些功能均在同一个项目工程下,物理逻辑上将这些功能放在同一个项目下,因为其物理上就耦合在一块,会存在一些缺陷,例如有单节点物理限制,各功能改动后对其他功能均需要回归测试,各功能耦合在一起对硬件资源消耗造成竞争关系,例如内存消耗、硬盘存储消耗等,各功能耦合在一起且容易造成无法平滑过渡部分功能,例如要将共识算法由pbft变更成效率更高的hotstuff共识协议时,由于功能耦合在一起则需要进行整体升级和回归测试,而整体升级又会有较大的风险。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
各功能对硬件资源消耗造成竞争关系,降低了业务处理效率和整个区块链系统的处理性能,且需要进行整体升级和测试,升级的风险高,可扩展性和可维护性差。
发明内容
有鉴于此,本发明实施例提供一种区块链节点及其执行的业务处理方法,能够避免区块链节点的各功能之间竞争硬件资源,提高区块链节点的业务处理效率,进而提升整个区块链系统的处理性能,且可实现对各功能分开部署、升级和测试,升级的风险低,具有更强的可扩展性以及更好的可维护性。
为实现上述目的,根据本发明实施例的一个方面,提供了一种区块链节点。
一种区块链节点,包括:根据区块链节点的业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中:所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括与其他逻辑功能模块进行消息通信;所述通信中间件用于在不同的所述逻辑功能模块之间进行所述消息通信时传递消息。
可选地,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传递消息。
可选地,不同的所述逻辑功能模块部署在相同或不同的物理节点上。
可选地,每一所述逻辑功能模块包括一个或多个接口,所述业务逻辑的时序包括模块内部调用时序、模块外部调用时序,所述模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在所述单个逻辑功能模块内部进行接口调用的时序,所述模块外部调用时序指示了不同逻辑功能模块之间进行所述消息通信时,在所述不同逻辑功能模块间进行接口调用的时序。
可选地,所述区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对所述交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存所述交易数据和相应的区块信息的逻辑,每一所述逻辑功能模块根据所述业务逻辑中的至少一个逻辑划分得到。
可选地,所述多个逻辑功能模块包括监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块;所述模块外部调用时序包括:所述监听模块在监听到交易请求后,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块对所述交易请求进行交易校验和缓存对应的交易数据;所述交易分发和缓存模块调用所述执行模块的接口,以由所述执行模块执行智能合约验证;所述交易分发和缓存模块调用所述网络模块的接口,以由所述网络模块将所述交易请求广播到其他区块链节点;所述交易分发和缓存模块调用所述共识模块的接口,由所述共识模块对区块发起共识请求和共识投票,所述区块是所述交易分发和缓存模块将所述交易数据打包而生成的;所述共识模块调用所述网络模块的接口,将所述区块广播到对等的区块链节点;所述共识模块收到所述对等的区块链节点的投票信息后,根据所述投票信息判断是否对所述区块上链,若上链,则调用所述账本模块的接口,以由所述账本模块上链和保存所述区块;所述账本模块在保存所述区块后,调用所述共识模块的接口,以由所述共识模块更新所述区块的共识状态;以及,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块删除缓存的所述交易数据。
可选地,所述交易分发和缓存模块的所述模块内部调用时序包括分别与接收交易请求、验证重复交易、验证UTXO(未花费过的交易输出)是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序;所述账本模块的所述模块内部调用时序包括分别与交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序;所述共识模块的所述模块内部调用时序包括分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序。
可选地,所述区块链节点为公链节点、私链节点、联盟链节点中的任意一种节点。
根据本发明实施例的另一方面,提供了一种区块链节点执行的业务处理方法。
一种区块链节点执行的业务处理方法,包括:根据区块链节点的业务逻辑部署多个逻辑功能模块,以及通信中间件;由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括通过所述通信中间件与其他逻辑功能模块进行消息通信。
可选地,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传递消息。
可选地,不同的所述逻辑功能模块部署在相同或不同的物理节点上。
可选地,每一所述逻辑功能模块包括一个或多个接口,所述业务逻辑的时序包括模块内部调用时序、模块外部调用时序,所述模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在所述单个逻辑功能模块内部进行接口调用的时序,所述模块外部调用时序指示了不同逻辑功能模块之间进行所述消息通信时,在所述不同逻辑功能模块间进行接口调用的时序。
可选地,所述区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对所述交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存所述交易数据和相应的区块信息的逻辑,每一所述逻辑功能模块根据所述业务逻辑中的至少一个逻辑部署得到。
可选地,所述多个逻辑功能模块包括:监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块;所述由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,包括:由所述监听模块、所述交易分发和缓存模块、所述执行模块、所述共识模块、所述网络模块、所述账本模块分别按照所述模块外部调用时序执行对应的业务操作,其中:所述监听模块在监听到交易请求后,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块对所述交易请求进行交易校验和缓存对应的交易数据;所述交易分发和缓存模块调用所述执行模块的接口,以由所述执行模块执行智能合约验证;所述交易分发和缓存模块调用所述网络模块的接口,以由所述网络模块将所述交易请求广播到其他区块链节点;所述交易分发和缓存模块调用所述共识模块的接口,由所述共识模块对区块发起共识请求和共识投票,所述区块是所述交易分发和缓存模块将所述交易数据打包而生成的;所述共识模块调用所述网络模块的接口,将所述区块广播到对等的区块链节点;所述共识模块收到所述对等的区块链节点的投票信息后,根据所述投票信息判断是否对所述区块上链,若上链,则调用所述账本模块的接口,以由所述账本模块上链和保存所述区块;所述账本模块在保存所述区块后,调用所述共识模块的接口,以由所述共识模块更新所述区块的共识状态;以及,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块删除缓存的所述交易数据。
可选地,所述由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,还包括:由所述交易分发和缓存模块、所述账本模块、所述共识模块分别按照各自的所述模块内部调用时序执行对应的业务操作,其中:由所述交易分发和缓存模块按照分别与接收交易请求、验证重复交易、验证UTXO是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序,执行交易校验和缓存对应的交易数据的操作;由所述账本模块按照分别与交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序,执行上链和保存所述区块的操作;由所述共识模块按照分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序,执行对区块发起共识请求和共识投票、判断是否对所述区块上链的操作、更新所述区块的共识状态的操作。
可选地,所述区块链节点为公链节点、私链节点、联盟链节点中的任意一种节点。
根据本发明实施例的又一方面,提供了一种电子设备。
一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明实施例所提供的区块链节点执行的业务处理方法。
根据本发明实施例的又一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的区块链节点执行的业务处理方法。
上述发明中的一个实施例具有如下优点或有益效果:区块链节点包括根据业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,业务操作包括与其他逻辑功能模块进行消息通信,通信中间件用于在不同的逻辑功能模块之间进行消息通信时传递消息,能够避免区块链节点的各功能之间竞争硬件资源,提高区块链节点的业务处理效率,进而提升整个区块链系统的处理性能,且可实现对各功能分开部署、升级和测试,升级的风险低,具有更强的可扩展性以及更好的可维护性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明一个实施例的区块链节点的主要构成示意图;
图2是根据本发明一个实施例的区块链节点的模块化架构示意图;
图3是根据本发明一个实施例的区块链节点的模块间通信时序示意图;
图4是根据本发明一个实施例的区块链节点的模块接口的交互时序示意图;
图5是根据本发明一个实施例的区块链节点执行的业务处理方法的主要步骤示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例的区块链节点包括:根据区块链节点的业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中,多个逻辑功能模块中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,业务操作包括与其他逻辑功能模块进行消息通信;通信中间件用于在不同的逻辑功能模块之间进行消息通信时传递消息。
在不同的逻辑功能模块之间进行消息通信时,可通过通信中间件异步传递消息。本发明实施例的逻辑功能模块之间的消息通信具体可基于MQ(消息队列)全异步方式通信,从而实现高效、稳定、无丢失地消息传递和转发。
不同的逻辑功能模块可以部署在相同或不同的物理节点上,物理节点即物理机。
每一逻辑功能模块包括一个或多个接口,业务逻辑的时序包括模块内部调用时序、模块外部调用时序。
模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在单个逻辑功能模块内部进行接口调用的时序。
模块外部调用时序指示了不同逻辑功能模块之间进行消息通信时,在不同逻辑功能模块间进行接口调用的时序。
图1是根据本发明一个实施例的区块链节点的主要构成示意图,如图1所示,本发明一个实施例的区块链节点100主要包括监听模块101、交易分发和缓存模块102、执行模块103、共识模块104、网络模块105、账本模块106、通信中间件107。
区块链节点的业务逻辑可以包括:对交易请求进行监听的逻辑、对交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存交易数据和相应的区块信息的逻辑。
每一逻辑功能模块可以根据业务逻辑中的至少一个逻辑划分得到。
在一个实施例中,可以根据业务逻辑中的每一逻辑划分出一个逻辑功能模块,得到的各逻辑功能模块分别为监听模块101、交易分发和缓存模块102、执行模块103、共识模块104、网络模块105、账本模块106。下面主要基于该方式划分出的各逻辑功能模块为例,对本发明实施例的区块链节点进行介绍。需要说明的是,上述各逻辑功能模块的具体名称可以根据具体需要进行设定,模块名称并不构成对本发明保护范围的限制。
其他区块链节点是指区块链节点所在区块链网络中的其他节点。
模块外部调用时序具体如下:
监听模块101在监听到交易请求后,调用交易分发和缓存模块102的接口,以由交易分发和缓存模块102对交易请求进行交易校验和缓存对应的交易数据;
交易分发和缓存模块102调用执行模块103的接口,以由执行模块103执行智能合约验证;
交易分发和缓存模块102调用网络模块105的接口,以由网络模块105将交易请求广播到其他区块链节点;
交易分发和缓存模块102调用共识模块104的接口,由共识模块104对区块发起共识请求和共识投票,区块是交易分发和缓存模块102将交易数据打包而生成的;
共识模块104调用网络模块105的接口,将区块广播到对等的区块链节点;
共识模块104收到对等的区块链节点的投票信息后,根据投票信息判断是否对区块上链,若上链,则调用账本模块106的接口,以由账本模块106上链和保存区块;
账本模块106在保存区块后,调用共识模块104的接口,以由共识模块104更新区块的共识状态;以及,调用交易分发和缓存模块102的接口,以由交易分发和缓存模块102删除缓存的交易数据。
交易分发和缓存模块102的模块内部调用时序包括:分别与接收交易请求、验证重复交易、验证UTXO是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序。
账本模块106的模块内部调用时序包括:分别与交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序。
共识模块104的模块内部调用时序包括:分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序。
单个逻辑功能模块内部的接口与操作之间的对应关系,可以一个接口对应一个操作,也可以是一个接口对应多个操作。例如,上述的账本模块106中,对应交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加中的每一操作,可以分别设置一个对应的接口,或者,可以将其中的两个或两个以上的操作,设置对应为同一个接口。具体根据业务需要来封装接口,本发明实施例对此不作限定。
本发明一个实施例的区块链节点具体可以为公链节点,即公链的区块链节点。
本发明另外的实施例的区块链节点还可以是私链节点或联盟链节点。
对于私链节点或联盟链节点,由于涉及权限控制,因此,与公链节点的不同之处在于,区块链节点的业务逻辑还包括权限控制的逻辑,相应地,根据权限控制的逻辑可以划分出一个逻辑功能模块。
本发明一个实施例中,根据业务逻辑划分逻辑功能模块时,可以根据业务逻辑中的两个或两个以上的逻辑划分出一个逻辑功能模块,即,划分得到的某个逻辑功能模块可以是上述的监听模块101、交易分发和缓存模块102、执行模块103、共识模块104、网络模块105、账本模块106中的两个或多个模块整合得到的模块。具体哪些模块之间可以整合为一个模块可根据业务逻辑和需求确定,例如,可以根据与其他区块链节点进行消息传递的逻辑、保存交易数据和相应的区块信息的逻辑这两个逻辑,划分得到一个逻辑功能模块,使得划分出的该逻辑功能模块既具备网络模块105的功能、又具备账本模块106的功能。
本发明实施例实现了纯粹的区块链(符合去中心化特性,无中心化的节点)的模块化设计,可以更换算法的内核而保证其对外的接口部分不变化,这样可以保留整个区块链中部分采用新算法,部分保留旧有算法,利用算法本身的节点容错性可以进行灰度升级和测试。
图2是根据本发明一个实施例的区块链节点的模块化架构示意图。
本发明一个实施例根据公链节点的主要功能,将公链节点模块化为六个逻辑功能模块,以及一个消息通信中间件MQ(消息队列),模块化构架图如图2所示,各逻辑功能模块及对应的功能描述如下:
RPC监听模块,或称Listener模块,与上文的监听模块101功能相同,该模块主要用于监听APP(应用程序)端发送的RPC交易请求,并且返回区块链上账本数据到客户端(即APP端)等;
交易分发和缓存模块,或称Dispatcher模块,与上文的交易分发和缓存模块102功能相同,该模块设有交易池(或称Tx Pool,为一个缓冲池),通常共识需要花费一定时间在各节点之间达成共识,才将区块落盘到账本上,在此过程产生的交易需要设计一个交易池,来缓存这些交易,并且本区块链节点产生的交易也需要分发(广播)到区块链网络中的其他节点(即其他区块链节点),该模块主要用于进行交易校验、交易数据缓存、交易数据打包为区块、交易数据删除等操作;
执行模块,或称Executor模块,与上文的执行模块103功能相同,该模块用于支持智能合约代码执行;
共识模块,或称Consensus模块,与上文的共识模块104功能相同,区块链上产生的交易只有被打包成区块,并且区块经过区块链网络中的其他节点共识投票后才被承认这笔交易被确认,即这笔交易才是有效的,该模块主要用于完成区块共识发起和共识投票的操作;
网络模块,或称Network模块,与上文的网络模块105功能相同,区块链节点之间的所有消息传递、通信全部通过该模块来完成。
账本模块,或称Leedger模块,与上文的账本模块106功能相同,用于保存交易,保存资产,保存区块头,区块等信息,将所有区块链接起来,使得所有的交易可以溯源追溯;
消息通信中间件,或称MQ模块,与上文的通信中间件107功能相同,基于异步消息通信bus(总线),完成区块链节点内部各逻辑功能模块之间的消息通信。
图3是根据本发明一个实施例的区块链节点的模块间通信时序示意图。
客户端从发起交易到交易落盘,经过区块链节点的六个逻辑功能模块(监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块)的时序图如图3所示。
监听模块在监听到客户端发起的交易(即发送的交易请求)后,将交易发送到交易分发和缓存模块进行交易校验,校验的具体逻辑包括交易所花费的代币的合法性(即验证UTXO合法性),交易可以是带有智能合约约束的交易,例如条件支付,所以需要对交易涉及到的所有智能合约发送到执行模块的虚拟机进行执行校验,执行智能合约,进行交易签名及合约验证,只有校验通过的交易才能被加入交易分发和缓存模块中的交易池,并且交易分发和缓存模块需要将交易发送到网络模块,网络模块再将这笔交易转发到区块链网络中的其他节点;按照出块时间间隔(打包为区块的时间间隔),交易分发和缓存模块会将交易池中的交易打包成区块,并且向共识模块发起共识请求,共识请求由共识模块发送到网络模块,再由网络模块转发到对等节点(区块链网络中的另一节点),以执行将区块广播到其他节点的操作。网络模块接收对等节点的投票信息,将投票信息转发到共识模块,共识模块根据投票信息决定区块是否可以上链,如果投票满足区块上链的阈值,则将区块保存在本节点的账本上,账本模块保存区块、保存交易,在区块落盘成功后,共识模块进行共识状态的更新,交易分发和缓存模块将已落盘的交易全部删除掉。
对于对等节点,对等节点的网络模块对接收到的区块请求进行基本的校验,校验通过后发送投票信息给网络模块,网络模块再转发到共识模块,共识模块收集到投票信息后,进行统计确认区块是否可以上链,若可以上链则将区块发送到账本模块进行区块落盘;区块落盘完成后发送落盘成功标识给共识模块,表示可以进行下一轮的共识,并且同时账本模块将本次落盘成功的所有交易通知交易分发和缓存模块,以从其交易池中删除相应的交易数据。
图4是根据本发明一个实施例的区块链节点的模块接口的交互时序示意图。
为了实现本发明实施例的模块间通信时序,各逻辑功能模块分别设置了如表1所示的接口,并且通过这些接口完成区块链核心功能。
图4描述了上述各接口的调用顺序(图4中的401至413,其中,401至413表示与相应接口对应的操作)。
表1
监听模块监听客户端调用发起新交易的接口(sendTransaction接口)发送交易(401);
监听模块调用交易分发和缓存模块的接收交易并验证的接口(handleTransaction接口)处理交易(402),其中包括:调用交易分发和缓存模块的验证交易hash是否重复的接口(verifyTransactionDup接口)进行重复交易验证,调用账本模块的根据交易hash查询交易的接口(getTransactionByTxHash接口)进行判断(4021),调用交易分发和缓存模块的验证UTXO是否已消费的接口(verifyDoubleSpend接口),验证UTXO是否已消费,并调用账本模块的根据交易hash和下标查询UTXO的接口(getUtxoList接口)进行判断(4022),调用执行模块的交易签名及合约验证接口(verifyTransaction接口)进行智能合约验证(4023);
交易分发和缓存模块调用网络模块的交易广播接口(broadcastTransaction接口),将交易广播到其他节点(403);
交易分发和缓存模块执行的交易校验(即402中的操作)通过后,调用交易分发和缓存模块的添加交易到交易池接口(addTransactionsToPool接口),将交易加入到交易池(404);
网络模块还通过接收交易广播接口(receiveBroadcastTransaction接口)接收其他节点广播的交易(405);
将交易加入到交易池之后,通过调用共识模块的发起共识接口(proposeConsensus接口),向共识模块发起区块共识(406);
共识模块接收区块共识请求,通过调用接收共识请求接口(receiveConsensusReq接口)进行区块接收,其功能主要是判断是否是某轮的主节点,具有发起区块共识请求权限,并将共识区块发送到网络模块(407);
网络模块接收到共识区块请求后,调用提议区块广播接口(broadcastBlock接口)将区块广播出去,发送到对等节点(即图4中的其他节点)(408);
对等节点对共识区块进行合法性校验;校验通过后会发送投票信息并将投票信息经由其节点的网络模块转发到本区块链节点网络模块;
网络模块调用投票广播接口(broadcastVote接口)将投票信息转发到共识模块(409);
共识模块通过调用接收投票信息接口(receiveVote接口)接收对等节点投票,并根据投票信息决定区块是否可以上链,如果投票满足区块上链的阈值,则调用账本模块的区块上链接口(commitBlock接口)将区块保存在本节点的账本上(410);
账本模块调用内部的保存区块接口(saveBlock接口)以保存区块,并调用内部的保存交易接口(saveTransactions接口)以保存交易,调用内部的更新UTXO集合接口(removeUtxos接口)以删除本次交易消费的UTXO,并调用内部的增加UTXO集合接口(addUtxos接口)以增加本次交易产生的UTXO(411);
在区块落盘成功后,调用共识模块的更新共识状态接口(updateConsensusState接口),进行共识状态的更新,状态更新后表示共识模块可以进行下一轮的区块共识(412);
区块落盘成功后,表示这些交易可以从交易池中删除掉,通过调用交易分发和缓存模块的从交易池删除交易接口(removeTransactions FromPool接口)将已落盘的交易全部删除掉(413)。
根据图4,本发明实施例的区块链节点的业务逻辑的时序包括模块内部调用时序、模块外部调用时序。其中,模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在单个逻辑功能模块内部进行接口调用的时序,模块外部调用时序指示了不同逻辑功能模块之间进行消息通信时,在不同逻辑功能模块间进行接口调用的时序。其中交易分发和缓存模块、账本模块、共识模块、网络模块均分别包括多个接口,并且,交易分发和缓存模块、账本模块、共识模块中的每个模块内部的接口之间也存在调用的时序,即模块内部调用时序,例如图4所示,交易分发和缓存模块中,接收交易并验证的接口、验证交易hash是否重复的接口、验证UTXO是否已消费的接口、添加交易到交易池接口,存在模块内部的接口调用(具体参见上文对图4的介绍以及这些接口在图4中的箭头走向)。对于其他模块的模块内部调用时序由于上文已经详细介绍,不再赘述。
本发明实施例通过上述各接口实现了模块化的全异步方式区块链系统设计,各模块可以分开部署和升级,无需将所有功能部署到同一个物理节点上。
图5是根据本发明一个实施例的区块链节点执行的业务处理方法的主要步骤示意图。
如图5所示,本发明一个实施例的区块链节点执行的业务处理方法主要包括如下的步骤S501至步骤S502。
步骤S501:根据区块链节点的业务逻辑部署多个逻辑功能模块,以及通信中间件;
步骤S502:由多个逻辑功能模块中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,业务操作包括通过通信中间件与其他逻辑功能模块进行消息通信。
在不同的逻辑功能模块之间进行消息通信时,通过通信中间件异步传递消息。
不同的逻辑功能模块部署在相同或不同的物理节点上。
每一逻辑功能模块包括一个或多个接口,业务逻辑的时序包括模块内部调用时序、模块外部调用时序,模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在单个逻辑功能模块内部进行接口调用的时序,模块外部调用时序指示了不同逻辑功能模块之间进行消息通信时,在不同逻辑功能模块间进行接口调用的时序。
区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存交易数据和相应的区块信息的逻辑,每一逻辑功能模块根据业务逻辑中的至少一个逻辑部署得到。
在一个实施例中,部署的多个逻辑功能模块包括:监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块。
由多个逻辑功能模块中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,包括:由监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块分别按照模块外部调用时序执行对应的业务操作,其中:监听模块在监听到交易请求后,调用交易分发和缓存模块的接口,以由交易分发和缓存模块对交易请求进行交易校验和缓存对应的交易数据;交易分发和缓存模块调用执行模块的接口,以由执行模块执行智能合约验证;交易分发和缓存模块调用网络模块的接口,以由网络模块将交易请求广播到其他区块链节点;交易分发和缓存模块调用共识模块的接口,由共识模块对区块发起共识请求和共识投票,区块是交易分发和缓存模块将交易数据打包而生成的;共识模块调用网络模块的接口,将区块广播到对等的区块链节点;共识模块收到对等的区块链节点的投票信息后,根据投票信息判断是否对区块上链,若上链,则调用账本模块的接口,以由账本模块上链和保存区块;账本模块在保存区块后,调用共识模块的接口,以由共识模块更新区块的共识状态;以及,调用交易分发和缓存模块的接口,以由交易分发和缓存模块删除缓存的交易数据。
由多个逻辑功能模块中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,还包括:由交易分发和缓存模块、账本模块、共识模块分别按照各自的模块内部调用时序执行对应的业务操作,其中:由交易分发和缓存模块按照分别与接收交易请求、验证重复交易、验证UTXO是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序,执行交易校验和缓存对应的交易数据的操作;由账本模块按照分别与交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序,执行上链和保存区块的操作;由共识模块按照分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序,执行对区块发起共识请求和共识投票、判断是否对区块上链的操作、更新区块的共识状态的操作。
区块链节点为公链节点、私链节点、联盟链节点中的任意一种节点。
另外,在本发明实施例中区块链节点的具体实施内容,在上面所述区块链节点执行的业务处理方法中已经详细说明了,故在此重复内容不再说明。
图6示出了可以应用本发明实施例的区块链节点或区块链节点执行的业务处理方法的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的交易请求等数据进行分析等处理,并将处理结果(例如交易数据--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的区块链节点执行的业务处理方法一般由服务器605执行,相应地,区块链节点一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统700的结构示意图。图7示出的终端设备或服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考主要步骤示意图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤示意图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的主要步骤示意图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,主要步骤示意图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或主要步骤示意图中的每个方框、以及框图或主要步骤示意图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块、通信中间件。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,监听模块还可以被描述为“用于监听APP端发送的RPC交易请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据区块链节点的业务逻辑部署多个逻辑功能模块,以及通信中间件;由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括通过所述通信中间件与其他逻辑功能模块进行消息通信。
根据本发明实施例的技术方案,区块链节点包括根据业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,业务操作包括与其他逻辑功能模块进行消息通信,通信中间件用于在不同的逻辑功能模块之间进行消息通信时传递消息,能够避免区块链节点的各功能之间竞争硬件资源,提高区块链节点的业务处理效率,进而提升整个区块链系统的处理性能,且可实现对各功能分开部署、升级和测试,升级的风险低,具有更强的可扩展性以及更好的可维护性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (16)
1.一种区块链节点,其特征在于,包括:根据区块链节点的业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中:
所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括与其他逻辑功能模块进行消息通信;所述多个逻辑功能模块包括监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块;
所述通信中间件用于在不同的所述逻辑功能模块之间进行所述消息通信时传递消息;
所述业务逻辑的时序包括模块外部调用时序,所述模块外部调用时序指示了不同逻辑功能模块之间进行所述消息通信时,在所述不同逻辑功能模块间进行接口调用的时序;所述模块外部调用时序包括:
所述监听模块在监听到交易请求后,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块对所述交易请求进行交易校验和缓存对应的交易数据;
所述交易分发和缓存模块调用所述执行模块的接口,以由所述执行模块执行智能合约验证;所述交易分发和缓存模块调用所述网络模块的接口,以由所述网络模块将所述交易请求广播到其他区块链节点;所述交易分发和缓存模块调用所述共识模块的接口,由所述共识模块对区块发起共识请求和共识投票,所述区块是所述交易分发和缓存模块将所述交易数据打包而生成的;
所述共识模块调用所述网络模块的接口,将所述区块广播到对等的区块链节点;所述共识模块收到所述对等的区块链节点的投票信息后,根据所述投票信息判断是否对所述区块上链,若上链,则调用所述账本模块的接口,以由所述账本模块上链和保存所述区块;
所述账本模块在保存所述区块后,调用所述共识模块的接口,以由所述共识模块更新所述区块的共识状态;以及,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块删除缓存的所述交易数据。
2.根据权利要求1所述的区块链节点,其特征在于,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传递消息。
3.根据权利要求1所述的区块链节点,其特征在于,不同的所述逻辑功能模块部署在相同或不同的物理节点上。
4.根据权利要求1所述的区块链节点,其特征在于,每一所述逻辑功能模块包括一个或多个接口,所述业务逻辑的时序包括模块内部调用时序,所述模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在所述单个逻辑功能模块内部进行接口调用的时序。
5.根据权利要求4所述的区块链节点,其特征在于,所述区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对所述交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存所述交易数据和相应的区块信息的逻辑,每一所述逻辑功能模块根据所述业务逻辑中的至少一个逻辑划分得到。
6.根据权利要求4所述的区块链节点,其特征在于,所述交易分发和缓存模块的所述模块内部调用时序包括分别与接收交易请求、验证重复交易、验证UTXO是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序;
所述账本模块的所述模块内部调用时序包括分别与交易查询、UT XO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序;
所述共识模块的所述模块内部调用时序包括分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序。
7.根据权利要求1所述的区块链节点,其特征在于,所述区块链节点为公链节点、私链节点、联盟链节点中的任意一种节点。
8.一种区块链节点执行的业务处理方法,其特征在于,包括:
根据区块链节点的业务逻辑部署多个逻辑功能模块,以及通信中间件;所述多个逻辑功能模块包括监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块;
由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括通过所述通信中间件与其他逻辑功能模块进行消息通信;
所述业务逻辑的时序包括模块外部调用时序,所述模块外部调用时序指示了不同逻辑功能模块之间进行所述消息通信时,在所述不同逻辑功能模块间进行接口调用的时序;所述模块外部调用时序包括:
所述监听模块在监听到交易请求后,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块对所述交易请求进行交易校验和缓存对应的交易数据;
所述交易分发和缓存模块调用所述执行模块的接口,以由所述执行模块执行智能合约验证;所述交易分发和缓存模块调用所述网络模块的接口,以由所述网络模块将所述交易请求广播到其他区块链节点;所述交易分发和缓存模块调用所述共识模块的接口,由所述共识模块对区块发起共识请求和共识投票,所述区块是所述交易分发和缓存模块将所述交易数据打包而生成的;
所述共识模块调用所述网络模块的接口,将所述区块广播到对等的区块链节点;所述共识模块收到所述对等的区块链节点的投票信息后,根据所述投票信息判断是否对所述区块上链,若上链,则调用所述账本模块的接口,以由所述账本模块上链和保存所述区块;
所述账本模块在保存所述区块后,调用所述共识模块的接口,以由所述共识模块更新所述区块的共识状态;以及,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块删除缓存的所述交易数据。
9.根据权利要求8所述的方法,其特征在于,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传递消息。
10.根据权利要求8所述的方法,其特征在于,不同的所述逻辑功能模块部署在相同或不同的物理节点上。
11.根据权利要求8所述的方法,其特征在于,每一所述逻辑功能模块包括一个或多个接口,所述业务逻辑的时序包括模块内部调用时序,所述模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在所述单个逻辑功能模块内部进行接口调用的时序。
12.根据权利要求11所述的方法,其特征在于,所述区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对所述交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存所述交易数据和相应的区块信息的逻辑,每一所述逻辑功能模块根据所述业务逻辑中的至少一个逻辑部署得到。
13.根据权利要求11所述的方法,其特征在于,所述由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,还包括:由所述交易分发和缓存模块、所述账本模块、所述共识模块分别按照各自的所述模块内部调用时序执行对应的业务操作,其中:
由所述交易分发和缓存模块按照分别与接收交易请求、验证重复交易、验证UTXO是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序,执行交易校验和缓存对应的交易数据的操作;
由所述账本模块按照分别与交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序,执行上链和保存所述区块的操作;
由所述共识模块按照分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序,执行对区块发起共识请求和共识投票、判断是否对所述区块上链的操作、更新所述区块的共识状态的操作。
14.根据权利要求8所述的方法,其特征在于,所述区块链节点为公链节点、私链节点、联盟链节点中的任意一种节点。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求8-14中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求8-14中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110473267.2A CN113179324B (zh) | 2021-04-29 | 2021-04-29 | 一种区块链节点及其执行的业务处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110473267.2A CN113179324B (zh) | 2021-04-29 | 2021-04-29 | 一种区块链节点及其执行的业务处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113179324A CN113179324A (zh) | 2021-07-27 |
CN113179324B true CN113179324B (zh) | 2024-03-26 |
Family
ID=76925157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110473267.2A Active CN113179324B (zh) | 2021-04-29 | 2021-04-29 | 一种区块链节点及其执行的业务处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113179324B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113409047B (zh) * | 2021-08-18 | 2021-11-23 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
CN114564756B (zh) * | 2022-03-03 | 2023-01-10 | 广州万辉信息科技有限公司 | 一种基于区块链的专利质押业务处理平台及方法 |
CN115859244A (zh) * | 2022-12-28 | 2023-03-28 | 中国人民银行数字货币研究所 | 业务权限的管理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147735A (zh) * | 2017-05-12 | 2017-09-08 | 北京博晨技术有限公司 | 一种基于分层结构的分布式账本系统 |
CN108875407A (zh) * | 2018-06-12 | 2018-11-23 | 东方银谷(北京)投资管理有限公司 | 用于金融业务的敏感信息处理方法及装置、客户端、数据架构 |
CN109840429A (zh) * | 2019-01-08 | 2019-06-04 | 北京众享比特科技有限公司 | 智能合约部署、调用方法和装置 |
CN110391911A (zh) * | 2019-07-23 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链匿名投票系统及方法 |
CN110650189A (zh) * | 2019-09-20 | 2020-01-03 | 深圳供电局有限公司 | 一种基于中继的区块链的交互系统及方法 |
CN111258840A (zh) * | 2018-11-30 | 2020-06-09 | 杭州海康威视数字技术股份有限公司 | 一种集群节点管理方法、装置及集群 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10873625B2 (en) * | 2018-02-26 | 2020-12-22 | International Business Machines Corpora ! Ion | Service management for the infrastructure of blockchain networks |
-
2021
- 2021-04-29 CN CN202110473267.2A patent/CN113179324B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107147735A (zh) * | 2017-05-12 | 2017-09-08 | 北京博晨技术有限公司 | 一种基于分层结构的分布式账本系统 |
CN108875407A (zh) * | 2018-06-12 | 2018-11-23 | 东方银谷(北京)投资管理有限公司 | 用于金融业务的敏感信息处理方法及装置、客户端、数据架构 |
CN111258840A (zh) * | 2018-11-30 | 2020-06-09 | 杭州海康威视数字技术股份有限公司 | 一种集群节点管理方法、装置及集群 |
CN109840429A (zh) * | 2019-01-08 | 2019-06-04 | 北京众享比特科技有限公司 | 智能合约部署、调用方法和装置 |
CN110391911A (zh) * | 2019-07-23 | 2019-10-29 | 中国工商银行股份有限公司 | 区块链匿名投票系统及方法 |
CN110650189A (zh) * | 2019-09-20 | 2020-01-03 | 深圳供电局有限公司 | 一种基于中继的区块链的交互系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113179324A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113179324B (zh) | 一种区块链节点及其执行的业务处理方法 | |
CN110601952A (zh) | 多渠道消息通知发送方法和装置 | |
US20220239496A1 (en) | Blockchain consensus method, device and system | |
US11716264B2 (en) | In situ triggered function as a service within a service mesh | |
CN111277639B (zh) | 一种保持数据一致性的方法和装置 | |
CN109992406A (zh) | 图片请求方法、响应图片请求的方法及客户端 | |
CN113657900A (zh) | 一种跨链交易验证方法、系统以及跨链交易系统 | |
CN109104368B (zh) | 一种请求连接方法、装置、服务器及计算机可读存储介质 | |
CN104579905A (zh) | 消息传递方法和系统及mom服务器、接收端 | |
CN111427701A (zh) | 一种工作流引擎系统和业务处理方法 | |
CN110287266A (zh) | 一种分布式系统及数据处理方法 | |
CN112329049A (zh) | 业务数据管理方法、装置、电子设备和介质 | |
CN110515741A (zh) | 一种基于本地任务队列的降级处理方法和装置 | |
CN109348434A (zh) | 一种场景信息的发送方法、发送装置及终端设备 | |
CN115562887A (zh) | 基于数据组包的核间数据通信方法、系统、设备及介质 | |
CN111510493A (zh) | 分布式数据传输方法及装置 | |
CN111343220B (zh) | 转发器、分布式文件传输方法、系统、介质及电子设备 | |
CN112116326A (zh) | 一种基于共享平台的公积金业务处理方法和系统 | |
WO2022171190A1 (zh) | 固定执行顺序的交易方法和装置 | |
CN109284177B (zh) | 一种数据更新方法和装置 | |
CN107948337B (zh) | 电子文件传输方法、装置、系统及计算机可读存储介质 | |
CN113553206B (zh) | 数据事件执行方法、装置、电子设备和计算机可读介质 | |
CN113973139B (zh) | 一种消息处理的方法和装置 | |
CN111524011B (zh) | 平行链共识确认方法、设备和存储介质 | |
CN116263925A (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Mu Changchun Inventor after: Di Gang Inventor after: Qian Youcai Inventor after: Liu Jiequn Inventor before: Mu Changchun Inventor before: Di Gang Inventor before: Qian Youcai Inventor before: Liu Jiequn |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |