一种区块链节点及其执行的业务处理方法技术

技术编号:29465007 阅读:14 留言:0更新日期:2021-07-27 17:52
本发明专利技术公开了一种区块链节点及其执行的业务处理方法,涉及计算机技术领域。该方法的一具体实施方式包括:区块链节点包括根据业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中每一逻辑功能模块依照业务逻辑的时序执行对应的业务操作,业务操作包括与其他逻辑功能模块进行消息通信,通信中间件用于在不同的逻辑功能模块之间进行消息通信时传递消息,该实施方式能够避免区块链节点的各功能之间竞争硬件资源,提高区块链节点的业务处理效率,进而提升整个区块链系统的处理性能,且可实现对各功能分开部署、升级和测试,升级的风险低,具有更强的可扩展性以及更好的可维护性。

【技术实现步骤摘要】
一种区块链节点及其执行的业务处理方法
本专利技术涉及计算机
,尤其涉及一种区块链节点及其执行的业务处理方法。
技术介绍
区块链节点一般包括共识,账本,RPC(RemoteProcedureCallProtocol,远程过程调用协议),虚拟机等功能,现有的公链例如以太坊等,这些功能均在同一个项目工程下,物理逻辑上将这些功能放在同一个项目下,因为其物理上就耦合在一块,会存在一些缺陷,例如有单节点物理限制,各功能改动后对其他功能均需要回归测试,各功能耦合在一起对硬件资源消耗造成竞争关系,例如内存消耗、硬盘存储消耗等,各功能耦合在一起且容易造成无法平滑过渡部分功能,例如要将共识算法由pbft变更成效率更高的hotstuff共识协议时,由于功能耦合在一起则需要进行整体升级和回归测试,而整体升级又会有较大的风险。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:各功能对硬件资源消耗造成竞争关系,降低了业务处理效率和整个区块链系统的处理性能,且需要进行整体升级和测试,升级的风险高,可扩展性和可维护性差。
技术实现思路
有鉴于此,本专利技术实施例提供一种区块链节点及其执行的业务处理方法,能够避免区块链节点的各功能之间竞争硬件资源,提高区块链节点的业务处理效率,进而提升整个区块链系统的处理性能,且可实现对各功能分开部署、升级和测试,升级的风险低,具有更强的可扩展性以及更好的可维护性。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种区块链节点。一种区块链节点,包括:根据区块链节点的业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中:所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括与其他逻辑功能模块进行消息通信;所述通信中间件用于在不同的所述逻辑功能模块之间进行所述消息通信时传递消息。可选地,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传递消息。可选地,不同的所述逻辑功能模块部署在相同或不同的物理节点上。可选地,每一所述逻辑功能模块包括一个或多个接口,所述业务逻辑的时序包括模块内部调用时序、模块外部调用时序,所述模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在所述单个逻辑功能模块内部进行接口调用的时序,所述模块外部调用时序指示了不同逻辑功能模块之间进行所述消息通信时,在所述不同逻辑功能模块间进行接口调用的时序。可选地,所述区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对所述交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存所述交易数据和相应的区块信息的逻辑,每一所述逻辑功能模块根据所述业务逻辑中的至少一个逻辑划分得到。可选地,所述多个逻辑功能模块包括监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块;所述模块外部调用时序包括:所述监听模块在监听到交易请求后,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块对所述交易请求进行交易校验和缓存对应的交易数据;所述交易分发和缓存模块调用所述执行模块的接口,以由所述执行模块执行智能合约验证;所述交易分发和缓存模块调用所述网络模块的接口,以由所述网络模块将所述交易请求广播到其他区块链节点;所述交易分发和缓存模块调用所述共识模块的接口,由所述共识模块对区块发起共识请求和共识投票,所述区块是所述交易分发和缓存模块将所述交易数据打包而生成的;所述共识模块调用所述网络模块的接口,将所述区块广播到对等的区块链节点;所述共识模块收到所述对等的区块链节点的投票信息后,根据所述投票信息判断是否对所述区块上链,若上链,则调用所述账本模块的接口,以由所述账本模块上链和保存所述区块;所述账本模块在保存所述区块后,调用所述共识模块的接口,以由所述共识模块更新所述区块的共识状态;以及,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块删除缓存的所述交易数据。可选地,所述交易分发和缓存模块的所述模块内部调用时序包括分别与接收交易请求、验证重复交易、验证UTXO(未花费过的交易输出)是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序;所述账本模块的所述模块内部调用时序包括分别与交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序;所述共识模块的所述模块内部调用时序包括分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序。可选地,所述区块链节点为公链节点、私链节点、联盟链节点中的任意一种节点。根据本专利技术实施例的另一方面,提供了一种区块链节点执行的业务处理方法。一种区块链节点执行的业务处理方法,包括:根据区块链节点的业务逻辑部署多个逻辑功能模块,以及通信中间件;由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括通过所述通信中间件与其他逻辑功能模块进行消息通信。可选地,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传递消息。可选地,不同的所述逻辑功能模块部署在相同或不同的物理节点上。可选地,每一所述逻辑功能模块包括一个或多个接口,所述业务逻辑的时序包括模块内部调用时序、模块外部调用时序,所述模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在所述单个逻辑功能模块内部进行接口调用的时序,所述模块外部调用时序指示了不同逻辑功能模块之间进行所述消息通信时,在所述不同逻辑功能模块间进行接口调用的时序。可选地,所述区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对所述交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存所述交易数据和相应的区块信息的逻辑,每一所述逻辑功能模块根据所述业务逻辑中的至少一个逻辑部署得到。可选地,所述多个逻辑功能模块包括:监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块;所述由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,包括:由所述监听模块、所述交易分发和缓存模块、所述执行模块、所述共识模块、所述网络模块、所述账本模块分别按照所述模块外部调用时序执行对应的业务操作,其中:所述监听模块在监听到交易请求后,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块对所述交易请求进行交易校验和缓存对应的交易数据;所述交易分发和缓存模块调用所述执行模块的接口,以由所述执行模块执行智能合约验证;所述交易分发和缓存模块调用所述网络模块的接口,以由所述网络模块将所述交易请求广播到其他区块链节点;所述交易分发和缓存模块调用所述共识模块的接口,由所述共识模块对区块发起共识请求和共识投票,所述区块是所述交易分发和缓存模块将所述交易数据本文档来自技高网...

【技术保护点】
1.一种区块链节点,其特征在于,包括:根据区块链节点的业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中:/n所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括与其他逻辑功能模块进行消息通信;/n所述通信中间件用于在不同的所述逻辑功能模块之间进行所述消息通信时传递消息。/n

【技术特征摘要】
1.一种区块链节点,其特征在于,包括:根据区块链节点的业务逻辑划分的多个逻辑功能模块,以及通信中间件,其中:
所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括与其他逻辑功能模块进行消息通信;
所述通信中间件用于在不同的所述逻辑功能模块之间进行所述消息通信时传递消息。


2.根据权利要求1所述的区块链节点,其特征在于,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传递消息。


3.根据权利要求1所述的区块链节点,其特征在于,不同的所述逻辑功能模块部署在相同或不同的物理节点上。


4.根据权利要求1所述的区块链节点,其特征在于,每一所述逻辑功能模块包括一个或多个接口,所述业务逻辑的时序包括模块内部调用时序、模块外部调用时序,所述模块内部调用时序指示了单个逻辑功能模块执行对应的业务操作时,在所述单个逻辑功能模块内部进行接口调用的时序,所述模块外部调用时序指示了不同逻辑功能模块之间进行所述消息通信时,在所述不同逻辑功能模块间进行接口调用的时序。


5.根据权利要求4所述的区块链节点,其特征在于,所述区块链节点的业务逻辑包括:对交易请求进行监听的逻辑、对所述交易请求进行分发以及缓存对应的交易数据的逻辑、执行智能合约的逻辑、进行区块共识发起和共识投票的逻辑、与其他区块链节点进行消息传递的逻辑、保存所述交易数据和相应的区块信息的逻辑,每一所述逻辑功能模块根据所述业务逻辑中的至少一个逻辑划分得到。


6.根据权利要求5所述的区块链节点,其特征在于,所述多个逻辑功能模块包括监听模块、交易分发和缓存模块、执行模块、共识模块、网络模块、账本模块;
所述模块外部调用时序包括:
所述监听模块在监听到交易请求后,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块对所述交易请求进行交易校验和缓存对应的交易数据;
所述交易分发和缓存模块调用所述执行模块的接口,以由所述执行模块执行智能合约验证;
所述交易分发和缓存模块调用所述网络模块的接口,以由所述网络模块将所述交易请求广播到其他区块链节点;
所述交易分发和缓存模块调用所述共识模块的接口,由所述共识模块对区块发起共识请求和共识投票,所述区块是所述交易分发和缓存模块将所述交易数据打包而生成的;
所述共识模块调用所述网络模块的接口,将所述区块广播到对等的区块链节点;
所述共识模块收到所述对等的区块链节点的投票信息后,根据所述投票信息判断是否对所述区块上链,若上链,则调用所述账本模块的接口,以由所述账本模块上链和保存所述区块;
所述账本模块在保存所述区块后,调用所述共识模块的接口,以由所述共识模块更新所述区块的共识状态;以及,调用所述交易分发和缓存模块的接口,以由所述交易分发和缓存模块删除缓存的所述交易数据。


7.根据权利要求6所述的区块链节点,其特征在于,所述交易分发和缓存模块的所述模块内部调用时序包括分别与接收交易请求、验证重复交易、验证UTXO是否已消费、缓存交易数据、删除交易数据的操作对应的接口之间的调用时序;
所述账本模块的所述模块内部调用时序包括分别与交易查询、UTXO查询、区块上链、区块保存、交易保存、UTXO集合更新、UTXO增加的操作对应的接口之间的调用时序;
所述共识模块的所述模块内部调用时序包括分别与发起共识请求、接收共识请求、接收投票信息、更新共识状态的操作对应的接口之间的调用时序。


8.根据权利要求1所述的区块链节点,其特征在于,所述区块链节点为公链节点、私链节点、联盟链节点中的任意一种节点。


9.一种区块链节点执行的业务处理方法,其特征在于,包括:
根据区块链节点的业务逻辑部署多个逻辑功能模块,以及通信中间件;
由所述多个逻辑功能模块中每一逻辑功能模块依照所述业务逻辑的时序执行对应的业务操作,所述业务操作包括通过所述通信中间件与其他逻辑功能模块进行消息通信。


10.根据权利要求9所述的方法,其特征在于,在不同的所述逻辑功能模块之间进行所述消息通信时,通过所述通信中间件异步传...

【专利技术属性】
技术研发人员:穆长春狄刚钱有才刘杰群
申请(专利权)人:中国人民银行数字货币研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1