CN111553670A - 一种交易处理方法、装置及计算机可读存储介质 - Google Patents
一种交易处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111553670A CN111553670A CN202010351517.0A CN202010351517A CN111553670A CN 111553670 A CN111553670 A CN 111553670A CN 202010351517 A CN202010351517 A CN 202010351517A CN 111553670 A CN111553670 A CN 111553670A
- Authority
- CN
- China
- Prior art keywords
- node
- transaction
- nodes
- leaf
- hash value
- 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
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种交易处理方法、装置及计算机可读存储介质,其中方法包括:当共识节点接收到终端设备提交的交易数据时,该共识节点可以获取交易数据的哈希值,从字典树中查找该哈希值对应的目标叶子节点,该字典树包括多个叶子节点,每个叶子节点对应表示一个共识节点的交易池,目标叶子节点包括至少一个叶子节点,并向该目标叶子节点对应表示的交易池发送该交易数据,以使得目标叶子节点对应表示的交易池缓存该交易数据,可见,利用交易数据的哈希值和字典树可以将交易数据发送到随机确定出的交易池中,从而可以有效地均衡各个交易池的负载,充分利用区块链网络中各个分布式共识节点的资源,提高区块链网络的运行效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种交易处理方法、装置及计算机可读存储介质。
背景技术
目前,在将交易添加到交易池的时候,容易出现部分交易池过载的情况,例如收到的交易不断地被投放到某些交易池中,导致负载较大的交易池中的交易不能及时被打包上链,这不利于区块链网络的高效运行。可见,如何提供一种高效、均衡的交易池分配方案已成为亟待解决的问题。
发明内容
本发明实施例提供一种交易处理方法、装置及计算机可读存储介质,可以有效地均衡各个交易池的负载,充分利用区块链网络中各个共识节点的资源,从而提高区块链网络的运行效率。
第一方面,本发明实施例提供了一种交易处理方法,应用于区块链网络,所述区块链网络包括多个共识节点,所述多个共识节点中的每个共识节点对应维护一个交易池,所述方法包括:
当接收到终端设备提交的交易数据时,获取所述交易数据的哈希值。
从字典树中查找所述哈希值对应的目标叶子节点,所述字典树包括多个叶子节点,所述多个叶子节点中的每个叶子节点对应表示一个共识节点的交易池,所述目标叶子节点包括至少一个叶子节点。
向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
第二方面,本发明实施例提供了一种交易处理装置,应用于区块链网络,所述区块链网络包括多个共识节点,所述多个共识节点中的每个共识节点对应维护一个交易池,所述装置包括:
接收模块,用于接收终端设备提交的交易数据。
获取模块,用于当所述接收模块接收到所述终端设备提交的交易数据时,获取所述交易数据的哈希值。
查询模块,用于从字典树中查找所述哈希值对应的目标叶子节点,所述字典树包括多个叶子节点,所述多个叶子节点中的每个叶子节点对应表示一个共识节点的交易池,所述目标叶子节点包括至少一个叶子节点。
发送模块,用于向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
第三方面,本发明实施例提供了一种节点设备,应用于区块链网络,所述区块链网络包括多个共识节点,所述多个共识节点中的每个共识节点对应维护一个交易池,所述节点设备包括处理器、网络接口和存储装置,所述处理器、所述网络接口和所述存储装置相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行第一方面所述的交易处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行第一方面所述的交易处理方法。
本发明实施例中,当共识节点接收到终端设备提交的交易数据时,该共识节点可以获取交易数据的哈希值,从字典树中查找该哈希值对应的目标叶子节点,该字典树包括多个叶子节点,每个叶子节点对应表示一个共识节点的交易池,目标叶子节点包括至少一个叶子节点,并向该目标叶子节点对应表示的交易池发送该交易数据,以使得目标叶子节点对应表示的交易池缓存该交易数据,可见,利用交易数据的哈希值和字典树可以将交易数据发送到随机确定出的交易池中,从而可以有效地均衡各个交易池的负载,充分利用区块链网络中各个分布式共识节点的资源,提高区块链网络的运行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种交易处理系统的架构示意图;
图1b是本发明实施例提供的一种区块链的结构示意图;
图1c是本发明实施例提供的一种产生新区块的过程示意图;
图2是本发明实施例提供的一种交易处理方法的流程示意图;
图3是本发明实施例提供的另一种交易处理方法的流程示意图;
图4是本发明实施例提供的一种字典树的结构示意图;
图5是本发明实施例提供的一种交易处理装置的结构示意图;
图6是本发明实施例提供的一种节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对目前区块链网络中的部分交易池存在负载过大,交易无法被及时打包处理,导致区块链网络运行效率较低的问题,本发明实施例提供了一种交易处理方法,可以将交易数据发送到随机确定出的交易池中,从而可以有效地均衡各个交易池的负载,充分利用区块链网络中各个分布式共识节点的资源,提高区块链网络的运行效率。
请参见图1a,是本发明实施例提供的一种交易处理系统的架构示意图,该交易处理系统包括区块链网络10和终端设备11,其中:
区块链网络10是指用于进行节点与节点之间数据共享的网络,区块链网络中可以包括多个节点101。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据(即区块链)。为了保证区块链网络内的信息互通,每个节点之间可以存在信息连接,任意两个节点之间可以实现点对点(Peer To Peer,P2P)通信,具体可以通过有线通信链路或无线通信链路进行P2P通信。例如,当区块链网络中的任意节点接收到输入信息时,其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
终端设备11可以接入该区块链网络,并可以与区块链网络中的节点进行通信,例如,向节点提交交易数据,从节点查询数据,等等。其中,终端设备11具体可以是智能手机、平板电脑、笔记本电脑、台式电脑、车载智能终端等,本发明实施例不做限定。
需要说明的是,图1a中所示的节点的数目仅仅是示意性的,根据实际需要,可以部署任意数目的节点。
其中,对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有区块链网络中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为互联网协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息,表中仅以IP地址为例进行说明。
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
其中,区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
其中,在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络中其他节点的节点标识,将新生成的区块分别发送给其所在的区块链网络中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
其中,区块链网络的节点上可以运行智能合约,智能合约是用于在满足一定条件时而执行的代码实现,开发人员可以通过编程语言定义合约逻辑,发布到区块链上(智能合约注册),根据合约条款的逻辑,调用密钥或者其他的事件触发执行,完成合约逻辑,同时还提供对智能合约升级、注销的功能。
在一些可行的实施方式中,当区块链网络的某一节点(具体是共识节点)101接收到终端设备11提交的交易数据时,共识节点101获取交易数据的哈希值,从字典树中查找该哈希值对应的目标叶子节点,该字典树包括多个叶子节点,每个叶子节点对应表示一个共识节点的交易池,目标叶子节点包括至少一个叶子节点,共识节点101向该目标叶子节点对应表示的交易池发送该交易数据,以使得目标叶子节点对应表示的交易池缓存该交易数据,利用交易数据的哈希值和字典树可以将交易数据发送到随机确定出的交易池中,从而可以有效地均衡各个交易池的负载,充分利用区块链网络中各个分布式共识节点的资源,提高区块链网络的运行效率。
以下对本发明实施例的技术方案的实现细节进行详细阐述:
请参见图2,是本发明实施例基于图1a所示的交易处理系统提供的一种交易处理方法的流程示意图,本发明实施例的交易处理方法主要是从共识节点一侧进行描述的,所述区块链网络包括多个共识节点,该交易处理方法包括如下步骤:
201、当第一共识节点接收到终端设备提交的交易数据时,所述第一共识节点获取所述交易数据的哈希值。
其中,该第一共识节点为区块链网络包括的多个共识节点中的任意一个,每个共识节点对应维护一个交易池。
需要说明的是,区块链网络的每个共识节点都会维护一份未确认交易的临时列表,被称为内存池或交易池。其中,交易池存储在本地内存中,并不是存储在永久性存储设备(如硬盘)里,交易池随区块链网络传入的交易数据动态填充。共识节点启动时,对应的交易池是空闲的,随着区块链网络中新的交易数据不断被接收,交易池也逐渐被填充。
具体的,第一共识节点在接收到终端设备提交的交易数据时,获取交易数据的哈希值,例如可以通过sha1 hash算法得到交易数据的哈希值,该哈希值具有随机性,是不可预测的。
202、所述第一共识节点从字典树中查找所述哈希值对应的目标叶子节点,所述字典树包括多个叶子节点,所述多个叶子节点中的每个叶子节点对应表示一个共识节点的交易池,所述目标叶子节点包括至少一个叶子节点。
其中,字典树是根据每个共识节点的交易池的最短前缀创建的,字典树中的每个叶子节点都对应表示一个共识节点的交易池。
具体的,第一共识节点收到交易数据后,可以通过查询字典树确定需要将该交易数据发送到哪些交易池中,具体可以根据上述具有随机性的哈希值中的二进制序列,查找字典树,找出与该哈希值中的二进制序列对应的至少一个叶子节点(记为目标叶子节点),由于每个叶子节点对应表示一个共识节点的交易池,则目标叶子节点对应表示的交易池即为需要接收该交易数据的交易池。
203、所述第一共识节点向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
具体的,第一共识节点可以查询目标叶子节点对应表示的交易池的地址,并根据该地址向目标叶子节点对应表示的至少一个交易池发送该交易数据,以使得目标叶子节点对应表示的至少一个交易池缓存交易数据。
本发明实施例中,当共识节点接收到终端设备提交的交易数据时,该共识节点可以获取交易数据的哈希值,从字典树中查找该哈希值对应的目标叶子节点,该字典树包括多个叶子节点,每个叶子节点对应表示一个共识节点的交易池,目标叶子节点包括至少一个叶子节点,并向该目标叶子节点对应表示的交易池发送该交易数据,以使得目标叶子节点对应表示的交易池缓存该交易数据,可见,利用交易数据的哈希值和字典树可以将交易数据发送到随机确定出的交易池中,从而可以有效地均衡各个交易池的负载,充分利用区块链网络中各个分布式共识节点的资源,提高区块链网络的运行效率。
请参见图3,是本发明实施例基于图1a所示的交易处理系统提供的另一种交易处理方法的流程示意图,本发明实施例的交易处理方法主要是从共识节点一侧进行描述的,所述区块链网络包括多个共识节点,该交易处理方法包括如下步骤:
301、第一共识节点获取多个共识节点中每个共识节点的交易池的标识。
302、所述第一共识节点根据所述标识确定所述每个共识节点的交易池的最短前缀,不同的共识节点的交易池的最短前缀之间互不相同。
其中,第一共识节点可以是区块链网络包括的多个共识节点中的任意一个。交易池的标识可以是互联网协议IP地址或者公钥等,不同的交易池的标识不同。
具体的,第一共识节点可以对各个共识节点的标识进行哈希运算,得到每个共识节点的交易池对应的哈希值,哈希运算例如可以是sha1 hash运算,则得到的哈希值是160bit的数据,再通过对比每个共识节点的交易池对应的哈希值,可以确定每个共识节点的交易池的最短前缀。
303、所述第一共识节点根据所述每个共识节点的交易池的最短前缀,将所述每个共识节点的交易池分别作为叶子节点,并确定所述叶子节点在字典树中的位置。
304、所述第一共识节点利用所述叶子节点以及对应的位置构建得到字典树,并向所述多个共识节点中的其他共识节点广播所述字典树。
具体的,确定出每个共识节点的交易池的最短前缀后,第一共识节点将字典树的一个叶子节点视为一个共识节点的交易池,利用最短前缀确定各个叶子节点在字典树中的位置,从而利用叶子节点的位置构建得到字典树,实现了将各个共识节点的交易池映射到了字典树中。此外,第一共识节点可以将构建得到的字典树广播给其他共识节点进行使用。
在一些可行的实施方式中,其他共识节点也可以按照步骤301~304的方法自行构建得到字典树,此时不需要向其他共识节点广播字典树,由于采用相同的方案,每个共识节点构建得到的字典树之间应该是相同的。
举例来说,如图3所示,是根据区块链网络中每个共识节点的交易池的最短前缀创建的字典树,该字典树包括多个叶子节点,每个叶子节点对应表示一个共识节点的交易池,例如,第一叶子节点对应表示的交易池的最短前缀为1100,也就是从根节点开始到达第一叶子节点的路径上的0和1按顺序排列的结果。第二叶子节点对应表示的交易池的最短前缀为0011,也就是从根节点开始到达第二叶子节点的路径上的0和1按顺序排列的结果。
其中,关于最短前缀,以第一叶子节点为例,除了第一叶子节点对应的交易池之外,不存在哈希值的前面4位二进制排列为1100的其他交易池。
305、当所述第一共识节点接收到终端设备提交的交易数据时,所述第一共识节点获取所述交易数据的哈希值。
具体的,第一共识节点在接收到终端设备提交的交易数据时,获取交易数据的哈希值,例如可以通过sha1 hash算法得到交易数据的哈希值,该哈希值具有随机性,是不可预测的。
306、所述第一共识节点获取所述哈希值的前缀,并从字典树的根节点开始,根据所述哈希值的前缀逐个查找所述字典树的各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值,以及将所述第一子树包括的叶子节点作为所述哈希值对应的目标叶子节点。
具体的,哈希值的前缀具体是二进制序列,第一共识节点可以从字典树的根节点开始,按照二进制序列中0和1的排列顺序从对应的子树分支下逐个查找各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值,预设数量阈值可以取2个,即可将第一子树包括的叶子节点作为该交易数据的哈希值对应的目标叶子节点,由于每个叶子节点对应表示一个共识节点的交易池,则目标叶子节点对应表示的交易池即为需要接收该交易数据的交易池。
在一些可行的实施方式中,预设数量阈值也可以取3个或者3个以上,本发明实施例不做限定。
在一些可行的实施方式中,若出现第一子树包括的叶子节点的数量为一个,则第一共识节点可以获取与第一子树对应同一父节点的第二子树,并将第一子树包括的叶子节点以及第二子树包括的叶子节点中的至少两个叶子节点作为哈希值对应的目标叶子节点,从而保证可以为交易数据确定出至少两个交易池用于缓存该交易数据,即每个交易数据至少会发到两个交易池中,以保证该交易数据的安全。
举例来说,结合图3,假设第一共识节点计算得到的交易数据的hash为100……,则第一共识节点可以按照1、0、0的顺序查询字典树,从根节点开始,先找到1对应的子树,包括的叶子节点个数太多(8个),则继续查找10对应的子树,有3个叶子节点(101、1000和1001),继续在该字树中查找100,100对应的字树包括2个叶子节点,意味着找出匹配的子树,即可停止查找,并且匹配的子树包括1000和1001两个叶子节点,从而可以将1000和1001这两个叶子节点对应的两个交易池作为该交易数据需要加入的交易池。
又举例来说,结合图3,假设第一共识节点计算得到的交易数据的hash为101……,则第一共识节点可以按照1、0、1的顺序查询字典树,找出匹配的子树,由于匹配的子树只包括101这一个叶子节点,考虑到安全性,可以将10对应的子树作为匹配子树,并将101、1000、1001这三个叶子节点对应的三个交易池作为该交易需要加入的交易池。当然,也可以将101、1000、1001这三个叶子节点中任意两个叶子节点对应的两个交易池作为该交易需要加入的交易池,本发明实施例不做限定。
307、所述第一共识节点向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
具体的,第一共识节点可以查询目标叶子节点对应表示的交易池的地址,交易池的地址可以是IP地址、端口号等,并根据该地址向目标叶子节点对应表示的至少一个交易池发送该交易数据,以使得目标叶子节点对应表示的至少一个交易池缓存交易数据。
在一些可行的实施方式中,当检测到区块链网络的新增共识节点时,第一共识节点可以根据新增共识节点的交易池的标识重新确定每个共识节点的交易池的最短前缀,并利用重新确定的每个共识节点的交易池的最短前缀更新字典树,得到更新后的字典树,更新后的字典树包括用于对应表示新增共识节点的交易池的叶子节点,从而保证字典树得以及时的更新以及从字典树得到的查询结果的准确度。
举例来说,结合图3,当有新增共识节点加入时,需要根据新增共识节点的交易池的hash重新调整字典树的结构,例如新增共识节点的交易池(记为第一交易池)的hash为11001……,上图中第一叶子节点对应表示的交易池(记为第二交易池)的hash为11000……,则由于第一交易池和第二交易池这两个交易池的hash的前面4位二进制均为1100,需要更新这两个交易池的最短前缀,从而第一交易池的最短前缀为11001,第二交易池的最短前缀由1100更新为11000,相应的,图3中第一叶子节点不再是叶子节点,而是作为子节点,该子节点包括最短前缀为11000的叶子节点(代表上述第二交易池)和最短前缀为11001的叶子节点(代表上述第一交易池)。
在一些可行的实施方式中,区块链网络还可以包括路由节点,字典树可以由路由节点构建得到,并广播给各个共识节点,即第一共识节点可以接收路由节点向每个共识节点广播的字典树,该字典树是由路由节点根据每个共识节点的交易池的最短前缀构建得到的。
本发明实施例中,可以根据每个共识节点的交易池的标识确定每个共识节点的交易池的最短前缀,并根据每个共识节点的交易池的最短前缀将每个共识节点的交易池分别作为叶子节点,并确定叶子节点在字典树中的位置,从而利用叶子节点以及对应的位置构建得到字典树,该字典树包括多个叶子节点,每个叶子节点对应表示一个共识节点的交易池,从而将各个共识节点的交易池映射到了字典树中。当接收到终端设备提交的交易数据时,可以获取交易数据的哈希值,从构建的字典树中查找该哈希值对应的目标叶子节点,目标叶子节点包括至少一个叶子节点,并向该目标叶子节点对应表示的交易池发送该交易数据,以使得目标叶子节点对应表示的交易池缓存该交易数据,可见,利用交易数据的哈希值和字典树可以将交易数据发送到随机确定出的交易池中,从而可以有效地均衡各个交易池的负载,充分利用区块链网络中各个分布式共识节点的资源,提高区块链网络的运行效率。
请参见图5,是本发明实施例的一种交易处理装置的结构示意图,本发明实施例的所述交易处理装置应用于区块链网络,所述区块链网络包括多个共识节点,所述多个共识节点中的每个共识节点对应维护一个交易池,所述装置包括:
接收模块501,用于接收终端设备提交的交易数据。
获取模块502,用于当所述接收模块接收到所述终端设备提交的交易数据时,获取所述交易数据的哈希值。
查询模块503,用于从字典树中查找所述哈希值对应的目标叶子节点,所述字典树包括多个叶子节点,所述多个叶子节点中的每个叶子节点对应表示一个共识节点的交易池,所述目标叶子节点包括至少一个叶子节点。
发送模块504,用于向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
可选的,所述查询模块503,具体用于:
获取所述哈希值的前缀。
从字典树的根节点开始,根据所述哈希值的前缀逐个查找所述字典树的各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值。
将所述第一子树包括的叶子节点作为所述哈希值对应的目标叶子节点。
可选的,所述哈希值的前缀为二进制序列,所述查询模块503从字典树的根节点开始,根据所述哈希值的前缀逐个查找所述字典树的各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值的具体方式为:
从字典树的根节点开始,按照所述二进制序列中0和1的排列顺序从对应的子树分支下逐个查找各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值。
可选的,所述查询模块503将所述第一子树包括的叶子节点作为所述哈希值对应的目标叶子节点的具体方式为:
若所述第一子树包括的叶子节点的数量为一个,则获取与所述第一子树对应同一父节点的第二子树。
将所述第一子树包括的叶子节点以及所述第二子树包括的叶子节点中的至少两个叶子节点作为所述哈希值对应的目标叶子节点。
可选的,所述获取模块502,还用于获取所述每个共识节点的交易池的标识,根据所述标识确定所述每个共识节点的交易池的最短前缀,不同的共识节点的交易池的最短前缀之间互不相同,并根据所述每个共识节点的交易池的最短前缀,将所述每个共识节点的交易池分别作为叶子节点,并确定所述叶子节点在字典树中的位置,以及利用所述叶子节点以及对应的位置构建得到字典树。
所述发送模块504,还用于向所述多个共识节点中的其他共识节点广播所述字典树。
可选的,所述获取模块502根据所述每个共识节点的交易池的标识确定所述每个共识节点的交易池的最短前缀的具体方式为:
对所述标识进行哈希运算,得到所述每个共识节点的交易池对应的哈希值。
对比所述每个共识节点的交易池对应的哈希值,以确定所述每个共识节点的交易池的最短前缀。
可选的,所述装置还包括:
更新模块505,用于当检测到所述区块链网络的新增共识节点时,根据所述新增共识节点的交易池的标识重新确定每个共识节点的交易池的最短前缀,并利用重新确定的每个共识节点的交易池的最短前缀更新所述字典树,得到更新后的字典树,所述更新后的字典树包括用于对应表示所述新增共识节点的交易池的叶子节点。
可选的,所述区块链网络还包括路由节点,所述接收模块501,还用于接收所述路由节点向所述每个共识节点广播的字典树,所述字典树是由所述路由节点根据所述每个共识节点的交易池的最短前缀构建得到的。
需要说明的是,本发明实施例的交易处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图6,是本发明实施例的一种节点设备的结构示意图,本发明实施例的所述节点设备包括供电模块等结构,并包括处理器601、存储装置602以及网络接口603。所述处理器601、存储装置602以及网络接口603之间可以交互数据。
所述存储装置602可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置602也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;所述存储装置602还可以包括上述种类的存储器的组合。
所述处理器601可以是中央处理器601(central processing unit,CPU)。在一个实施例中,所述处理器601还可以是图形处理器601(Graphics Processing Unit,GPU)。所述处理器601也可以是由CPU和GPU的组合。在一个实施例中,所述存储装置602用于存储程序指令。所述处理器601可以调用所述程序指令,执行如下操作:
通过所述网络接口603接收终端设备提交的交易数据。
当所述接收模块接收到所述终端设备提交的交易数据时,获取所述交易数据的哈希值。
从字典树中查找所述哈希值对应的目标叶子节点,所述字典树包括多个叶子节点,所述多个叶子节点中的每个叶子节点对应表示一个共识节点的交易池,所述目标叶子节点包括至少一个叶子节点。
通过所述网络接口603向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
可选的,所述处理器601,具体用于:
获取所述哈希值的前缀。
从字典树的根节点开始,根据所述哈希值的前缀逐个查找所述字典树的各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值。
将所述第一子树包括的叶子节点作为所述哈希值对应的目标叶子节点。
可选的,所述哈希值的前缀为二进制序列,所述处理器601,具体用于:
从字典树的根节点开始,按照所述二进制序列中0和1的排列顺序从对应的子树分支下逐个查找各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值。
可选的,所述处理器601,具体用于:
若所述第一子树包括的叶子节点的数量为一个,则获取与所述第一子树对应同一父节点的第二子树。
将所述第一子树包括的叶子节点以及所述第二子树包括的叶子节点中的至少两个叶子节点作为所述哈希值对应的目标叶子节点。
可选的,所述处理器601,还用于获取所述每个共识节点的交易池的标识,根据所述标识确定所述每个共识节点的交易池的最短前缀,不同的共识节点的交易池的最短前缀之间互不相同,并根据所述每个共识节点的交易池的最短前缀,将所述每个共识节点的交易池分别作为叶子节点,并确定所述叶子节点在字典树中的位置,以及利用所述叶子节点以及对应的位置构建得到字典树。
所述处理器601,还用于通过所述网络接口603向所述多个共识节点中的其他共识节点广播所述字典树。
可选的,所述处理器601,具体用于:
对所述标识进行哈希运算,得到所述每个共识节点的交易池对应的哈希值。
对比所述每个共识节点的交易池对应的哈希值,以确定所述每个共识节点的交易池的最短前缀。
可选的,所述处理器601,还用于当检测到所述区块链网络的新增共识节点时,根据所述新增共识节点的交易池的标识重新确定每个共识节点的交易池的最短前缀,并利用重新确定的每个共识节点的交易池的最短前缀更新所述字典树,得到更新后的字典树,所述更新后的字典树包括用于对应表示所述新增共识节点的交易池的叶子节点。
可选的,所述区块链网络还包括路由节点,所述处理器601,还用于通过所述网络接口603接收所述路由节点向所述每个共识节点广播的字典树,所述字典树是由所述路由节点根据所述每个共识节点的交易池的最短前缀构建得到的。
具体实现中,本发明实施例中所描述的处理器601、存储装置602以及网络接口603可执行本发明实施例图2或图3提供的一种交易处理方法的相关实施例中所描述的实现方式,也可执行本发明实施例图5提供的一种交易处理装置的相关实施例中所描述的实现方式,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(英文:Read-Only Memory,缩写:ROM)或者随机存取存储器(英文:Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种交易处理方法,其特征在于,应用于区块链网络,所述区块链网络包括多个共识节点,所述多个共识节点中的每个共识节点对应维护一个交易池,所述方法包括:
当接收到终端设备提交的交易数据时,获取所述交易数据的哈希值;
从字典树中查找所述哈希值对应的目标叶子节点,所述字典树包括多个叶子节点,所述多个叶子节点中的每个叶子节点对应表示一个共识节点的交易池,所述目标叶子节点包括至少一个叶子节点;
向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
2.根据权利要求1所述的方法,其特征在于,所述从字典树中查找所述哈希值对应的目标叶子节点,包括:
获取所述哈希值的前缀;
从字典树的根节点开始,根据所述哈希值的前缀逐个查找所述字典树的各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值;
将所述第一子树包括的叶子节点作为所述哈希值对应的目标叶子节点。
3.根据权利要求2所述的方法,其特征在于,所述哈希值的前缀为二进制序列,所述从字典树的根节点开始,根据所述哈希值的前缀逐个查找所述字典树的各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值,包括:
从字典树的根节点开始,按照所述二进制序列中0和1的排列顺序从对应的子树分支下逐个查找各个子树,直到第一子树包括的叶子节点的数量小于或等于预设数量阈值。
4.根据权利要求2或3所述的方法,其特征在于,所述将所述第一子树包括的叶子节点作为所述哈希值对应的目标叶子节点,包括:
若所述第一子树包括的叶子节点的数量为一个,则获取与所述第一子树对应同一父节点的第二子树;
将所述第一子树包括的叶子节点以及所述第二子树包括的叶子节点中的至少两个叶子节点作为所述哈希值对应的目标叶子节点。
5.根据权利要求1所述的方法,其特征在于,所述当接收到终端设备提交的交易数据时,获取所述交易数据的哈希值之前,所述方法还包括:
获取所述每个共识节点的交易池的标识;
根据所述标识确定所述每个共识节点的交易池的最短前缀,不同的共识节点的交易池的最短前缀之间互不相同;
根据所述每个共识节点的交易池的最短前缀,将所述每个共识节点的交易池分别作为叶子节点,并确定所述叶子节点在字典树中的位置;
利用所述叶子节点以及对应的位置构建得到字典树,并向所述多个共识节点中的其他共识节点广播所述字典树。
6.根据权利要求5所述的方法,其特征在于,所述根据所述每个共识节点的交易池的标识确定所述每个共识节点的交易池的最短前缀,包括:
对所述标识进行哈希运算,得到所述每个共识节点的交易池对应的哈希值;
对比所述每个共识节点的交易池对应的哈希值,以确定所述每个共识节点的交易池的最短前缀。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
当检测到所述区块链网络的新增共识节点时,根据所述新增共识节点的交易池的标识重新确定每个共识节点的交易池的最短前缀;
利用重新确定的每个共识节点的交易池的最短前缀更新所述字典树,得到更新后的字典树,所述更新后的字典树包括用于对应表示所述新增共识节点的交易池的叶子节点。
8.根据权利要求1所述的方法,其特征在于,所述区块链网络还包括路由节点,所述当接收到终端设备提交的交易数据时,获取所述交易数据的哈希值之前,所述方法还包括:
接收所述路由节点向所述每个共识节点广播的字典树,所述字典树是由所述路由节点根据所述每个共识节点的交易池的最短前缀构建得到的。
9.一种交易处理装置,其特征在于,应用于区块链网络,所述区块链网络包括多个共识节点,所述多个共识节点中的每个共识节点对应维护一个交易池,所述装置包括:
接收模块,用于接收终端设备提交的交易数据;
获取模块,用于当所述接收模块接收到所述终端设备提交的交易数据时,获取所述交易数据的哈希值;
查询模块,用于从字典树中查找所述哈希值对应的目标叶子节点,所述字典树包括多个叶子节点,所述多个叶子节点中的每个叶子节点对应表示一个共识节点的交易池,所述目标叶子节点包括至少一个叶子节点;
发送模块,用于向所述目标叶子节点对应表示的交易池发送所述交易数据,以使得所述目标叶子节点对应表示的交易池缓存所述交易数据。
10.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行如权利要求1-8任一项所述的交易处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351517.0A CN111553670B (zh) | 2020-04-28 | 2020-04-28 | 一种交易处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351517.0A CN111553670B (zh) | 2020-04-28 | 2020-04-28 | 一种交易处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111553670A true CN111553670A (zh) | 2020-08-18 |
CN111553670B CN111553670B (zh) | 2021-10-15 |
Family
ID=72008257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010351517.0A Active CN111553670B (zh) | 2020-04-28 | 2020-04-28 | 一种交易处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111553670B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708844A (zh) * | 2020-08-24 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及设备 |
CN112215611A (zh) * | 2020-11-20 | 2021-01-12 | 中国联合网络通信集团有限公司 | 基于区块链的优惠方法、卖方节点、终端设备及存储介质 |
CN112433913A (zh) * | 2020-11-23 | 2021-03-02 | 中国建设银行股份有限公司 | 交易路径生成方法、系统、计算机设备和存储介质 |
WO2023207871A1 (zh) * | 2022-04-29 | 2023-11-02 | 华为技术有限公司 | 一种节点集群以及数据备份方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020107860A1 (en) * | 2000-11-29 | 2002-08-08 | Gobeille Robert C. | Data structure and storage and retrieval method supporting ordinality based searching and data retrieval |
CN106980656A (zh) * | 2017-03-10 | 2017-07-25 | 北京大学 | 一种基于二值码字典树的搜索方法 |
CN109409889A (zh) * | 2018-11-13 | 2019-03-01 | 杭州秘猿科技有限公司 | 一种区块链中的区块确定方法、装置及电子设备 |
CN110602148A (zh) * | 2019-10-10 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种区块的状态树的生成和链上数据验证的方法及装置 |
-
2020
- 2020-04-28 CN CN202010351517.0A patent/CN111553670B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020107860A1 (en) * | 2000-11-29 | 2002-08-08 | Gobeille Robert C. | Data structure and storage and retrieval method supporting ordinality based searching and data retrieval |
CN106980656A (zh) * | 2017-03-10 | 2017-07-25 | 北京大学 | 一种基于二值码字典树的搜索方法 |
CN109409889A (zh) * | 2018-11-13 | 2019-03-01 | 杭州秘猿科技有限公司 | 一种区块链中的区块确定方法、装置及电子设备 |
CN110602148A (zh) * | 2019-10-10 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种区块的状态树的生成和链上数据验证的方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708844A (zh) * | 2020-08-24 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置及设备 |
CN112215611A (zh) * | 2020-11-20 | 2021-01-12 | 中国联合网络通信集团有限公司 | 基于区块链的优惠方法、卖方节点、终端设备及存储介质 |
CN112215611B (zh) * | 2020-11-20 | 2023-06-09 | 中国联合网络通信集团有限公司 | 基于区块链的优惠方法、卖方节点设备、终端设备及存储介质 |
CN112433913A (zh) * | 2020-11-23 | 2021-03-02 | 中国建设银行股份有限公司 | 交易路径生成方法、系统、计算机设备和存储介质 |
CN112433913B (zh) * | 2020-11-23 | 2024-04-09 | 中国建设银行股份有限公司 | 交易路径生成方法、系统、计算机设备和存储介质 |
WO2023207871A1 (zh) * | 2022-04-29 | 2023-11-02 | 华为技术有限公司 | 一种节点集群以及数据备份方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111553670B (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111553670B (zh) | 一种交易处理方法、装置及计算机可读存储介质 | |
CN109242500B (zh) | 区块链交易有效性验证方法、装置及存储介质 | |
TWI659300B (zh) | 一種設備標識提供方法及裝置 | |
US11182365B2 (en) | Systems and methods for distributed storage of data across multiple hash tables | |
US10628382B2 (en) | Teleporting content over network using hash matches | |
WO2019160128A1 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード | |
CN111338806B (zh) | 一种业务控制方法及装置 | |
CN110880147B (zh) | 一种交易处理方法、相关设备及计算机存储介质 | |
CN110597918A (zh) | 一种账户管理方法、装置及计算机可读存储介质 | |
CN111553669B (zh) | 一种交易路由方法、装置及计算机可读存储介质 | |
JP6467540B1 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード | |
CN110266834B (zh) | 基于互联网协议地址的地区查找方法及装置 | |
JP6233846B2 (ja) | 可変長ノンスの生成 | |
CN110888892A (zh) | 一种区块同步方法、装置及存储介质 | |
CN112187743B (zh) | 一种基于ip地址最长前缀的网络策略匹配方法及系统 | |
CN112148925A (zh) | 用户标识关联查询方法、装置、设备及可读存储介质 | |
CN115328892B (zh) | 一种业务表单数据结构处理方法、系统、电子设备及介质 | |
WO2023160040A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN117056342B (zh) | 一种基于区块链的数据处理方法及相关设备 | |
CN110737663B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
Abawajy et al. | A framework for scalable distributed provenance storage system | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN110889040B (zh) | 用于推送信息的方法和装置 | |
CN109408241B (zh) | 负载均衡方法、装置、设备和存储介质 | |
CN114443707A (zh) | 一种地址查询方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40027376 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |