CN111405027B - 区块链共识结果筛选方法、装置、计算机设备和存储介质 - Google Patents
区块链共识结果筛选方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111405027B CN111405027B CN202010169301.2A CN202010169301A CN111405027B CN 111405027 B CN111405027 B CN 111405027B CN 202010169301 A CN202010169301 A CN 202010169301A CN 111405027 B CN111405027 B CN 111405027B
- Authority
- CN
- China
- Prior art keywords
- result
- node
- hash value
- simulation result
- simulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
- 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/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种区块链共识结果筛选方法、装置、计算机设备和存储介质。所述方法包括:接收业务请求;向所述区块链中的各第二节点广播所述业务请求;所述第二节点为所述区块链中除所述第一节点之外的节点;获取各所述第二节点反馈的模拟结果所对应的哈希值;所述模拟结果,是所述第二节点执行所述交易请求得到的结果;确定每个所述哈希值的票数,并将票数最多的哈希值对应的模拟结果,确定为共识结果。采用本方法能够提高区块链共识结果筛选的效率。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链共识结果筛选方法、装置、计算机设备和存储介质。
背景技术
随着区块链技术的发展,出现了区块链共识技术,用于使各个区块链节点对某一结果的有效性达成共识。对于一个业务请求,在不同的区块链节点执行智能合约得到的模拟结果,很可能会出现不一致的情况。
传统方法中,是直接对每个区块链节点的模拟结果进行比对并投票,来确定最终的共识结果。然而,传统方法需要事先知道模拟结果的数据结构才能实现。随着实际业务复杂度的提升,模拟结果的数据结构的解析复杂度也随之上升,降低了区块链共识结果筛选的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高区块链共识结果筛选效率的区块链共识结果筛选方法、装置、计算机设备和存储介质。
一种区块链共识结果筛选方法,所述方法应用于第一节点;所述第一节点为区块链中的任一节点;所述方法包括:
接收业务请求;
向所述区块链中的各第二节点广播所述业务请求;所述第二节点为所述区块链中除所述第一节点之外的节点;
获取各所述第二节点反馈的模拟结果所对应的哈希值;所述模拟结果,是所述第二节点执行所述业务请求得到的结果;
确定每个所述哈希值的票数,并根据票数最多的哈希值对应的模拟结果,确定共识结果。
在其中一个实施例中,所述获取各所述第二节点反馈的模拟结果所对应的哈希值包括:
获取各所述第二节点反馈的模拟结果;
从所述模拟结果中提取哈希值;所述哈希值是对所述模拟结果中的关键字段信息进行哈希运算后得到的、且添加至所述模拟结果中的值。
在其中一个实施例中,所述确定每个所述哈希值的票数包括:
依次获取各所述模拟结果中的哈希值;
每获取到一个哈希值,则将该所述哈希值对应的票数增加1;
直到全部所述模拟结果中的所述哈希值获取完毕,得到每个哈希值的所述票数。
在其中一个实施例中,所述业务请求包括交易请求;所述模拟结果,是所述第二节点对所述交易请求执行智能合约后得到的结果集;所述结果集包括交易标识号、智能合约名称和交易结果;所述模拟结果所对应的哈希值,是通过将所述交易标识号、所述智能合约名称和所述交易结果按顺序进行拼接组合,并对组合后的结果进行哈希运算得到的。
一种区块链共识结果筛选方法,所述方法应用于第二节点,所述方法包括:
接收区块链中的第一节点所广播的业务请求;
对所述业务请求执行智能合约,得到模拟结果;
对所述模拟结果进行哈希运算,得到所述模拟结果所对应的哈希值;
将所述哈希值添加到所对应的所述模拟结果中,并将所述模拟结果反馈至第一节点;所述模拟结果,用于指示所述第一节点,根据各所述第二节点反馈的模拟结果所对应的哈希值的票数,根据票数最多的所述哈希值所对应的模拟结果确定共识结果。
在其中一个实施例中,所述对所述模拟结果进行哈希运算,得到所述模拟结果所对应的哈希值包括:
将所述模拟结果中的关键字段信息按顺序进行拼接组合;
对组合后的结果进行哈希运算,得到所述模拟结果所对应的哈希值。
在其中一个实施例中,所述业务请求包括交易请求;所述模拟结果包括交易标识号、智能合约名称和交易结果;
所述将所述模拟结果中的关键字段信息按顺序进行拼接组合包括:
将所述模拟结果中的交易标识号、所述智能合约名称和所述交易结果按顺序进行拼接组合。
一种区块链共识结果筛选装置,所述装置应用于第一节点;所述第一节点为区块链中的任一节点;所述装置包括:
业务请求接收模块,用于接收业务请求;
广播模块,用于向所述区块链中的各第二节点广播所述业务请求;所述第二节点为所述区块链中除所述第一节点之外的节点;
哈希值获取模块,用于获取各所述第二节点反馈的模拟结果所对应的哈希值;所述模拟结果,是所述第二节点执行所述业务请求得到的结果;
共识结果确定模块,用于确定每个所述哈希值的票数,并根据票数最多的哈希值对应的模拟结果,确定共识结果。
一种区块链共识结果筛选装置,所述装置应用于第二节点,所述装置包括:
业务请求接收模块,用于接收区块链中的第一节点所广播的业务请求;
执行模块,用于对所述业务请求执行智能合约,得到模拟结果;
哈希运算模块,用于对所述模拟结果进行哈希运算,得到所述模拟结果所对应的哈希值;
模拟结果反馈模块,用于将所述哈希值添加到所对应的所述模拟结果中,并将所述模拟结果反馈至第一节点;所述模拟结果,用于指示所述第一节点,根据各所述第二节点反馈的模拟结果所对应的哈希值的票数,根据票数最多的所述哈希值所对应的模拟结果确定共识结果。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例所述的区块链共识结果筛选方法中的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的区块链共识结果筛选方法中的步骤。
上述区块链共识结果筛选方法、装置、计算机设备和存储介质,由第一节点接收业务请求,并将业务请求向第二节点广播,第二节点对业务请求执行智能合约,得到模拟结果,并将模拟结果反馈给第一节点,第一节点获取模拟结果对应的哈希值,根据票数最多的哈希值对应的模拟结果,确定共识结果。通过获取模拟结果的哈希值的票数,不需要事先知道模拟结果的数据结构来对模拟结果进行投票,就能确定共识结果,提高了区块链共识结果筛选的效率。
附图说明
图1为一个实施例中区块链共识结果筛选方法的应用环境图;
图2为一个实施例中区块链共识结果筛选方法的流程示意图;
图3为一个实施例中区块链共识结果筛选方法的流程示意图;
图4为一个实施例中区块链交易请求共识结果筛选方法的流程框图;
图5为一个实施例中区块链共识结果筛选装置的结构框图;
图6为一个实施例中区块链共识结果筛选装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先需要说明的是,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链***包括多个节点(接入网络中的任意形式的计算机设备,如服务器、用户终端),节点之间形成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。
区块链共识,用于使各个区块链节点对某一结果的有效性达成共识。
本申请提供的区块链共识结果筛选方法,可以应用于如图1所示的应用环境中。其中,客户端102为区块链之外的终端。第一节点104和第二节点106为区块链中的节点,可以为终端或服务器。第一节点104为区块链中的任一节点,第二节点106为区块链中除第一节点之外的节点,第二节点106的数量可以为一个或多个。客户端102与第一节点104通过网络进行通信,客户端102向第一节点104发送业务请求,第一节点104将业务请求对应的共识结果反馈至客户端102。第一节点104与各第二节点106通过网络进行通信,第一节点104向各第二节点106广播业务请求,第二节点106将业务请求的模拟结果反馈至第一节点104。
在一个实施例中,如图2所示,提供了一种区块链共识结果筛选方法,以该方法应用于图1中的第一节点为例进行说明,包括以下步骤:
S202,接收业务请求。
其中,业务请求,是客户端向区块链中的任一节点(第一节点)发送的、且用于实现某种业务操作的请求。
在一个实施例中,业务请求可以包括交易请求、数据存储请求等。
具体地,第一节点接收客户端发送的业务请求。第一节点接收到客户端发送的业务请求后,对客户端进行身份验证。
S204,向区块链中的各第二节点广播业务请求;第二节点为区块链中除第一节点之外的节点。
其中,广播,是区块链中的第一节点将业务请求以P2P(Peer To Peer)协议的形式转发至各第二节点。
具体地,区块链中的第一节点向各第二节点广播业务请求。第一节点接收到客户端发送的业务请求后,对客户端进行身份验证,验证通过后,向各第二节点广播业务请求。
S206,获取各第二节点反馈的模拟结果所对应的哈希值;模拟结果,是第二节点执行业务请求得到的结果。
其中,哈希值,是对模拟结果进行哈希运算得到的值。
在一个实施例中,第二节点对业务请求执行智能合约,得到模拟结果。智能合约,是计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求完成自动化的交易。
具体地,第一节点获取各第二节点对业务请求执行智能合约得到的模拟结果所对应的哈希值。
在一个实施例中,第二节点对模拟结果进行哈希运算,并将得到的哈希值添加至模拟结果中,第一节点从第二节点反馈来的模拟结果中提取哈希值。
在另一个实施例中,第一节点对第二节点反馈来的模拟结果进行哈希运算,得到哈希值。
S208,确定每个哈希值的票数,并根据票数最多的哈希值对应的模拟结果,确定共识结果。
其中,票数,是对哈希值进行投票所得到的,也就是对每个哈希值数量进行统计。共识结果,是区块链共识的的结果,即,对各第二节点的模拟结果达成共识所得到的最终的结果。
具体地,第一节点对各第二节点的模拟结果对应的哈希值进行统计,确定每个哈希值的票数,即每个哈希值的数量;将票数最多的哈希值对应的模拟结果确定为共识结果,即统计得到数量最多的哈希值对应的模拟结果确定为共识结果。第一节点将共识结果反馈至客户端。
上述区块链共识结果筛选方法中,由第一节点接收业务请求,并将业务请求向第二节点广播,第二节点对业务请求执行智能合约,得到模拟结果,并将模拟结果反馈给第一节点,第一节点获取模拟结果对应的哈希值,根据票数最多的哈希值对应的模拟结果,确定共识结果。通过获取模拟结果的哈希值的票数,不需要事先知道模拟结果的数据结构来对模拟结果进行投票,就能确定共识结果,提高了区块链共识结果筛选的效率。
在一个实施例中,获取各第二节点反馈的模拟结果所对应的哈希值的步骤,具体包括如下步骤:获取各第二节点反馈的模拟结果;从模拟结果中提取哈希值;哈希值是对模拟结果中的关键字段信息进行哈希运算后得到的、且添加至模拟结果中的值。
其中,关键字段信息,是模拟结果中包含的元素。关键字段,是模拟结果中包含的具有关键信息的字段。可以理解,关键字段可以预先设置。例如:当业务请求为交易请求时,模拟结果中的关键字段信息可以包括交易标识号、智能合约名称和交易结果。具体地,第二节点对模拟结果中的关键字段信息进行哈希运算,得到哈希值,并将哈希值添加至模拟结果中,第一节点获取第二节点反馈的模拟结果,从模拟结果中提取哈希值。
在一个实施例中,第二节点对模拟结果中的关键字段信息进行哈希运算,是将模拟结果中的关键字段信息按预设的顺序进行拼接组合后进行哈希运算。可以理解,各第二节点的模拟结果中的关键字段信息的拼接顺序必须一致。
本实施例中,第一节点通过从第二节点反馈的模拟结果中提取哈希值,能够方便地对各第二节点的模拟结果进行比较,从而确定共识结果,提高了区块链共识结果筛选的效率。
在一个实施例中,确定每个哈希值的票数的步骤,具体包括如下步骤:依次获取各模拟结果中的哈希值;每获取到一个哈希值,则将该哈希值对应的票数增加1;直到全部模拟结果中的哈希值获取完毕,得到每个哈希值的票数。
具体地,例如,第二节点的数量为5,各第二节点的模拟结果中的哈希值依次为a,b,c,a,a,则确定每个哈希值的票数:哈希值a的票数为3,哈希值b的票数为1,哈希值c的票数为1。
本实施例中,第一节点通过确定每个哈希值的票数,能够方便地对各第二节点的模拟结果进行比较,从而确定共识结果,提高了区块链共识结果筛选的效率。
在一个实施例中,业务请求包括交易请求。模拟结果,是第二节点对交易请求执行智能合约后得到的结果集。结果集包括交易标识号、智能合约名称和交易结果。模拟结果所对应的哈希值,是通过将交易标识号、智能合约名称和交易结果按顺序进行拼接组合,并对组合后的结果进行哈希运算得到的。
其中,交易请求,是执行一个交易的请求。交易标识号,用于表征一笔交易。智能合约名称,用于表征一个智能合约。交易结果,是对交易请求执行智能合约输出的交易结果。
可以理解,交易结果,描述的是不同账号的余额或交易错误信息。传统方法中即需要解析该交易结果的数据结构,才能确定出共识结果。
具体地,模拟结果所对应的哈希值,是通过将交易标识号、智能合约名称和交易结果按顺序进行拼接组合,并对组合后的结果进行哈希运算得到的。可以理解,各模拟结果中的交易标识号、智能合约名称和交易的拼接顺序必须一致。
本实施例中,由第一节点接收交易请求,并将交易请求向第二节点广播,第二节点对交易请求执行智能合约,得到模拟结果,并将模拟结果反馈给第一节点,第一节点获取模拟结果对应的哈希值,将票数最多的哈希值对应的模拟结果,确定为共识结果。通过获取模拟结果的哈希值的票数,不需要事先知道模拟结果的数据结构来对模拟结果进行投票,就能确定交易请求的共识结果,提高了区块链在处理交易请求的过程中共识结果筛选的效率。
在一个实施例中,如图3所示,提供了一种区块链共识结果筛选方法,以该方法应用于图1中的第二节点为例进行说明,包括以下步骤:
S302,接收区块链中的第一节点所广播的业务请求。
其中,业务请求,是客户端向区块链中的任一节点(第一节点)发送的、且用于实现某种业务操作的请求。
在一个实施例中,业务请求可以包括交易请求、数据存储请求等。
具体地,第一节点接收到客户端发送的业务请求后,对客户端进行身份验证,验证通过后,向各第二节点广播业务请求。第二节点接收第一节点所广播的业务请求。
S304,对业务请求执行智能合约,得到模拟结果。
其中,智能合约,是计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求完成自动化的交易。
在一个实施例中,模拟结果可以包括多个关键字段信息。
S306,对模拟结果进行哈希运算,得到模拟结果所对应的哈希值。
具体地,第二节点可以将模拟结果中的关键字段信息按顺序拼接组合,然后进行哈希运算,得到模拟结果对应的哈希值。
S308,将哈希值添加到所对应的模拟结果中,并将模拟结果反馈至第一节点。模拟结果,用于指示第一节点,根据各第二节点反馈的模拟结果所对应的哈希值的票数,根据票数最多的哈希值所对应的模拟结果确定共识结果。
具体地,第二节点将哈希值添加到对应的模拟结果中,并将模拟结果反馈至第一节点。第一节点根据模拟结果对应的哈希值的票数,将票数最多的哈希值所对应的模拟结果确定为共识结果。第一节点将共识结果反馈至客户端。
上述区块链共识结果筛选方法中,由第一节点接收业务请求,并将业务请求向第二节点广播,第二节点对业务请求执行智能合约,得到模拟结果,并将模拟结果反馈给第一节点,第一节点获取模拟结果对应的哈希值,根据票数最多的哈希值对应的模拟结果,确定共识结果。通过获取模拟结果的哈希值的票数,不需要事先知道模拟结果的数据结构来对模拟结果进行投票,就能确定共识结果,提高了区块链共识结果筛选的效率。
在一个实施例中,对模拟结果进行哈希运算,得到模拟结果所对应的哈希值的步骤,具体包括如下步骤:将模拟结果中的关键字段信息按顺序进行拼接组合;对组合后的结果进行哈希运算,得到模拟结果所对应的哈希值。
其中,关键字段信息,是模拟结果中包含的元素。例如:当业务请求为交易请求时,模拟结果中的关键字段信息可以包括交易标识号、智能合约名称和交易结果。
具体地,第二节点将模拟结果中的关键字段信息按顺序进行拼接组合,对组合后的结果进行哈希运算,得到模拟结果所对应的哈希值。可以理解,各第二节点将模拟结果中的关键字段信息按顺序进行拼接组合,拼接顺序必须一致。
本实施例中,第二节点通过对模拟结果进行哈希运算,得到模拟结果所对应的哈希值,能够使第一节点方便地对各第二节点的模拟结果进行比较,从而确定共识结果,提高了区块链共识结果筛选的效率。
在一个实施例中,业务请求包括交易请求。模拟结果包括交易标识号、智能合约名称和交易结果。将模拟结果中的关键字段信息按顺序进行拼接组合的步骤,具体包括如下步骤:将模拟结果中的交易标识号、智能合约名称和交易结果按顺序进行拼接组合。
其中,交易请求,是执行一个交易的请求。交易标识号,用于表征一笔交易。智能合约名称,用于表征一个智能合约。交易结果,是对交易请求执行智能合约输出的交易结果。
具体地,第二节点将模拟结果中的交易标识号、智能合约名称和交易结果按顺序进行拼接组合,对组合后的结果进行哈希运算,得到模拟结果所对应的哈希值。可以理解,各第二节点将模拟结果中的交易标识号、智能合约名称和交易结果按顺序进行拼接组合,拼接顺序必须一致。
本实施例中,由第一节点接收交易请求,并将交易请求向第二节点广播,第二节点对交易请求执行智能合约,得到模拟结果,并将模拟结果反馈给第一节点,第一节点获取模拟结果对应的哈希值,将票数最多的哈希值对应的模拟结果,确定为共识结果。通过获取模拟结果的哈希值的票数,不需要事先知道模拟结果的数据结构来对模拟结果进行投票,就能确定交易请求的共识结果,提高了区块链在处理交易请求的过程中共识结果筛选的效率。
在一个实施例中,如图4所示,是当业务请求为交易请求时,区块链共识结果筛选方法的流程框图。图中的区块链包括四个节点,其中:Node.A为第一节点,Node.B、Node.C和Node.D为第二节点。Request框为客户端发送的交易(Tx)请求,其中,交易标识号(TxID)=3719302,智能合约名称(CC)=kst,交易请求的输入(Input)=”Jason-100&Tom+100”是指用户Jason向用户Tom转账100元。假设用户Jason转账前账户余额为300元,用户Tom接受转账前账户余额为0元。
图4中该方法的整体流程是这样的:第一节点(Node.A)接收该交易请求(Request),并将该交易请求以P2P协议的形式向各第二节点(Node.B、Node.C和Node.D)广播。各第二节点(Node.B、Node.C和Node.D)分别对该交易请求执行智能合约,得到图中的模拟结果,其中,输出(output)表示交易结果。Node.B和Node.C得到的模拟结果中的交易结果是相同的,均为Jason账户余额为200元,Tom账户余额为100元。而Node.D得到的模拟结果中的交易结果为Jason账户余额不足,该交易结果与Node.B和Node.C不同。第二节点(Node.B、Node.C和Node.D)分别将模拟结果中的关键字段信息交易标识号(TxID)、智能合约名称(CC)和交易结果(output)按顺序拼接组合,对组合结果进行哈希运算,得到哈希值(Hash),并将哈希值添加至模拟结果中。从图中可以看出,Node.B和Node.C得到的哈希值相同,而Node.D得到的哈希值与Node.B和Node.C不同。各第二节点(Node.B、Node.C和Node.D)将模拟结果以P2P协议的形式反馈至第一节点(Node.A)。第一节点(Node.A)根据各第二节点(Node.B、Node.C和Node.D)的哈希值的票数,筛选出最终的共识结果(Response)。图中的哈希值(Hash)abcd1234的票数为2票,哈希值(Hash)xyz98765的票数为1票,因此第一节点(Node.A)将哈希值(Hash)abcd1234对应的模拟结果确定为共识结果。
可以理解,图4中第二节点Node.B和Node.C的模拟结果中的关键字段信息交易标识号(TxID)、智能合约名称(CC)和交易结果(output)完全一致,因此,将这些关键字段信息按顺序拼接组合后,进行哈希运算得到的哈希值也是相同的。而第二节点Node.D的模拟结果中的关键字段信息与Node.B和Node.C不完全一致,因此,Node.D得到的哈希值与Node.B和Node.C不同,即,任意变动一个字符,会导致哈希值产生较大变化。第一节点(Node.A)只需对各第二节点的哈希值的票数进行比较即可,不需要掌握各第二节点的模拟结果的数据结构,避免了在实际中处理复杂业务,数据结构复杂,导致共识结果筛选效率降低的情况,提高了区块链共识结果筛选的效率。
应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种区块链共识结果筛选装置500,该装置应用于第一节点;第一节点为区块链中的任一节点;该装置500包括:业务请求接收模块502、广播模块504、哈希值获取模块506和共识结果确定模块508,其中:
业务请求接收模块502,用于接收业务请求.
广播模块504,用于向区块链中的各第二节点广播业务请求;第二节点为区块链中除第一节点之外的节点。
哈希值获取模块506,用于获取各第二节点反馈的模拟结果所对应的哈希值;模拟结果,是第二节点执行业务请求得到的结果。
共识结果确定模块508,用于确定每个哈希值的票数,并根据票数最多的哈希值对应的模拟结果,确定共识结果。
在一个实施例中,哈希值获取模块506还用于获取各第二节点反馈的模拟结果;从模拟结果中提取哈希值;哈希值是对模拟结果中的关键字段信息进行哈希运算后得到的、且添加至模拟结果中的值。
在一个实施例中,共识结果确定模块508还用于依次获取各模拟结果中的哈希值;每获取到一个哈希值,则将该哈希值对应的票数增加1;直到全部模拟结果中的哈希值获取完毕,得到每个哈希值的票数。
在一个实施例中,业务请求包括交易请求。模拟结果,是第二节点对交易请求执行智能合约后得到的结果集。结果集包括交易标识号、智能合约名称和交易结果。模拟结果所对应的哈希值,是通过将交易标识号、智能合约名称和交易结果按顺序进行拼接组合,并对组合后的结果进行哈希运算得到的。
在一个实施例中,提供了一种区块链共识结果筛选装置600,该装置应用于第二节点,该装置600包括:业务请求接收模块602、执行模块604、哈希运算模块606和模拟结果反馈模块608,其中:
业务请求接收模块602,用于接收区块链中的第一节点所广播的业务请求。
执行模块604,用于对业务请求执行智能合约,得到模拟结果。
哈希运算模块606,用于对模拟结果进行哈希运算,得到模拟结果所对应的哈希值。
模拟结果反馈模块608,用于将哈希值添加到所对应的模拟结果中,并将模拟结果反馈至第一节点;模拟结果,用于指示第一节点,根据各第二节点反馈的模拟结果所对应的哈希值的票数,根据票数最多的哈希值所对应的模拟结果确定共识结果。
在一个实施例中,哈希运算模块606还用于将模拟结果中的关键字段信息按顺序进行拼接组合;对组合后的结果进行哈希运算,得到模拟结果所对应的哈希值。
在一个实施例中,业务请求包括交易请求。模拟结果包括交易标识号、智能合约名称和交易结果。哈希运算模块606还用于将模拟结果中的交易标识号、智能合约名称和交易结果按顺序进行拼接组合。
上述区块链共识结果筛选装置中,由第一节点接收业务请求,并将业务请求向第二节点广播,第二节点对业务请求执行智能合约,得到模拟结果,并将模拟结果反馈给第一节点,第一节点获取模拟结果对应的哈希值,根据票数最多的哈希值对应的模拟结果,确定共识结果。通过获取模拟结果的哈希值的票数,不需要事先知道模拟结果的数据结构来对模拟结果进行投票,就能确定共识结果,提高了区块链共识结果筛选的效率。
关于区块链共识结果筛选装置的具体限定可以参见上文中对于区块链共识结果筛选方法的限定,在此不再赘述。上述区块链共识结果筛选装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储区块链数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链共识结果筛选方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种区块链共识结果筛选方法,其特征在于,所述方法应用于第一节点;所述第一节点为区块链中的任一节点;所述方法包括:
接收业务请求;
向所述区块链中的各第二节点广播所述业务请求;所述第二节点为所述区块链中除所述第一节点之外的节点;
获取各所述第二节点反馈的模拟结果,从所述模拟结果中提取哈希值;所述模拟结果,是所述第二节点执行所述业务请求得到的结果;所述哈希值,是对所述模拟结果中的关键字段信息按预设的顺序进行拼接组合后进行哈希运算后得到的、且添加至所述模拟结果中的值;各所述第二节点的模拟结果中的关键字段信息的拼接顺序一致;
依次获取各所述模拟结果中的哈希值;
每获取到一个哈希值,则将所述哈希值对应的票数增加1;
直到全部所述模拟结果中的哈希值获取完毕,得到每个哈希值的票数;
将票数最多的哈希值对应的模拟结果确定为共识结果;所述共识结果,是对各所述第二节点的模拟结果达成共识所得到的最终的结果。
2.根据权利要求1所述的方法,其特征在于,所述业务请求包括交易请求;所述模拟结果,是所述第二节点对所述交易请求执行智能合约后得到的结果集;所述结果集包括交易标识号、智能合约名称和交易结果;所述模拟结果所对应的哈希值,是通过将所述交易标识号、所述智能合约名称和所述交易结果按顺序进行拼接组合,并对组合后的结果进行哈希运算得到的。
3.一种区块链共识结果筛选方法,其特征在于,所述方法应用于第二节点,所述方法包括:
接收区块链中的第一节点所广播的业务请求;
对所述业务请求执行智能合约,得到模拟结果;
对所述模拟结果中的关键字段信息按预设的顺序进行拼接组合后进行哈希运算,得到所述模拟结果所对应的哈希值;各所述第二节点的模拟结果中的关键字段信息的拼接顺序一致;
将所述哈希值添加到所对应的所述模拟结果中,并将所述模拟结果反馈至第一节点;所述模拟结果,用于指示所述第一节点,依次获取各所述模拟结果中的哈希值,每获取到一个哈希值,则将所述哈希值对应的票数增加1,直到全部所述模拟结果中的哈希值获取完毕,得到每个哈希值的票数,根据各所述第二节点反馈的模拟结果中的哈希值的票数,将票数最多的所述哈希值所对应的模拟结果确定为共识结果;所述共识结果,是对各所述第二节点的模拟结果达成共识所得到的最终的结果。
4.根据权利要求3所述的方法,其特征在于,所述业务请求包括交易请求;所述模拟结果包括交易标识号、智能合约名称和交易结果;
所述对所述模拟结果中的关键字段信息按预设的顺序进行拼接组合后进行哈希运算,得到所述模拟结果所对应的哈希值包括:
将所述模拟结果中的交易标识号、所述智能合约名称和所述交易结果按预设的顺序进行拼接组合后进行哈希运算,得到所述模拟结果所对应的哈希值。
5.一种区块链共识结果筛选装置,其特征在于,所述装置应用于第一节点;所述第一节点为区块链中的任一节点;所述装置包括:
业务请求接收模块,用于接收业务请求;
广播模块,用于向所述区块链中的各第二节点广播所述业务请求;所述第二节点为所述区块链中除所述第一节点之外的节点;
哈希值获取模块,用于获取各所述第二节点反馈的模拟结果,从所述模拟结果中提取哈希值;所述模拟结果,是所述第二节点执行所述业务请求得到的结果;所述哈希值,是对所述模拟结果中的关键字段信息按预设的顺序进行拼接组合后进行哈希运算后得到的、且添加至所述模拟结果中的值;各所述第二节点的模拟结果中的关键字段信息的拼接顺序一致;
共识结果确定模块,用于依次获取各所述模拟结果中的哈希值;每获取到一个哈希值,则将所述哈希值对应的票数增加1;直到全部所述模拟结果中的哈希值获取完毕,得到每个哈希值的票数;将票数最多的哈希值对应的模拟结果确定为共识结果;所述共识结果,是对各所述第二节点的模拟结果达成共识所得到的最终的结果。
6.根据权利要求5所述的装置,其特征在于,所述业务请求包括交易请求;所述模拟结果,是所述第二节点对所述交易请求执行智能合约后得到的结果集;所述结果集包括交易标识号、智能合约名称和交易结果;所述模拟结果所对应的哈希值,是通过将所述交易标识号、所述智能合约名称和所述交易结果按顺序进行拼接组合,并对组合后的结果进行哈希运算得到的。
7.一种区块链共识结果筛选装置,其特征在于,所述装置应用于第二节点,所述装置包括:
业务请求接收模块,用于接收区块链中的第一节点所广播的业务请求;
执行模块,用于对所述业务请求执行智能合约,得到模拟结果;
哈希运算模块,用于对所述模拟结果中的关键字段信息按预设的顺序进行拼接组合后进行哈希运算,得到所述模拟结果所对应的哈希值;各所述第二节点的模拟结果中的关键字段信息的拼接顺序一致;
模拟结果反馈模块,用于将所述哈希值添加到所对应的所述模拟结果中,并将所述模拟结果反馈至第一节点;所述模拟结果,用于指示所述第一节点,依次获取各所述模拟结果中的哈希值,每获取到一个哈希值,则将所述哈希值对应的票数增加1,直到全部所述模拟结果中的哈希值获取完毕,得到每个哈希值的票数,根据各所述第二节点反馈的模拟结果中的哈希值的票数,将票数最多的哈希值对应的模拟结果确定为共识结果;所述共识结果,是对各所述第二节点的模拟结果达成共识所得到的最终的结果。
8.根据权利要求7所述的装置,其特征在于,所述业务请求包括交易请求;所述模拟结果包括交易标识号、智能合约名称和交易结果;所述哈希运算模块还用于将所述模拟结果中的交易标识号、所述智能合约名称和所述交易结果按预设的顺序进行拼接组合后进行哈希运算,得到所述模拟结果所对应的哈希值。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010169301.2A CN111405027B (zh) | 2020-03-12 | 2020-03-12 | 区块链共识结果筛选方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010169301.2A CN111405027B (zh) | 2020-03-12 | 2020-03-12 | 区块链共识结果筛选方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111405027A CN111405027A (zh) | 2020-07-10 |
CN111405027B true CN111405027B (zh) | 2023-06-23 |
Family
ID=71432365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010169301.2A Active CN111405027B (zh) | 2020-03-12 | 2020-03-12 | 区块链共识结果筛选方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111405027B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112087502B (zh) * | 2020-08-28 | 2022-10-21 | 成都质数斯达克科技有限公司 | 处理请求的方法、装置、设备及存储介质 |
CN112260905B (zh) * | 2020-12-23 | 2021-04-06 | 江苏荣泽信息科技股份有限公司 | 一种用于区块链网络的共识效率控制*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012142331A1 (en) * | 2011-04-13 | 2012-10-18 | Autonomy, Inc. | Methods and systems for generating concept-based hash tags |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019019056A1 (zh) * | 2017-07-26 | 2019-01-31 | 杭州复杂美科技有限公司 | 前置机参与区块链共识的方法 |
CN109447810B (zh) * | 2018-11-29 | 2021-03-09 | 杭州秘猿科技有限公司 | 并行区块链共识方法、***、电子设备和计算机可读存储介质 |
CN110046992A (zh) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链智能合约的交易哈希获取方法及*** |
CN110247774A (zh) * | 2019-06-28 | 2019-09-17 | 深圳市网心科技有限公司 | 一种区块链数据的共识方法及相关设备 |
CN110825755B (zh) * | 2019-10-30 | 2021-05-04 | 北京海益同展信息科技有限公司 | 区块链的共识方法、共识节点、电子设备、存储介质 |
-
2020
- 2020-03-12 CN CN202010169301.2A patent/CN111405027B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012142331A1 (en) * | 2011-04-13 | 2012-10-18 | Autonomy, Inc. | Methods and systems for generating concept-based hash tags |
CN110708171A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 区块链共识投票方法、装置、设备以及存储介质 |
Non-Patent Citations (1)
Title |
---|
董友康.基于区块链的安全电子投票***的设计与实现.《硕士电子期刊社会科学Ⅰ辑》.2020,(第1期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111405027A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111861477A (zh) | 基于区块链的交易后数据处理方法、装置和计算机设备 | |
CN108509392B (zh) | 多机构对账方法、***、计算机设备和存储介质 | |
CN113487427B (zh) | 一种交易风险识别方法、装置及*** | |
CN111405027B (zh) | 区块链共识结果筛选方法、装置、计算机设备和存储介质 | |
WO2020042503A1 (zh) | 风控***的验证方法、装置、设备及存储介质 | |
CN111860865A (zh) | 模型构建和分析的方法、装置、电子设备和介质 | |
CN113888299A (zh) | 风控决策方法、装置、计算机设备和存储介质 | |
CN112613877A (zh) | 应用于区块链网络的智能合约触发方法、装置及相关设备 | |
CN110598007B (zh) | 账单文件处理方法、装置、介质及电子设备 | |
CN113360269A (zh) | 一种任务分配方法、装置、服务器及存储介质 | |
CN112597240A (zh) | 一种基于联盟链的联邦学习的数据处理方法与*** | |
CN110990790A (zh) | 一种数据处理方法及设备 | |
CN115858322A (zh) | 日志数据处理方法、装置和计算机设备 | |
CN106951225B (zh) | 基于服务配置模板的数据处理方法及装置 | |
CN111510484B (zh) | 区块链处理方法、***、装置、计算机设备和存储介质 | |
CN113343577B (zh) | 一种基于机器学习的参数优化方法、装置、设备及介质 | |
CN111522873B (zh) | 区块生成方法、装置、计算机设备和存储介质 | |
CN111723129B (zh) | 报表生成方法、报表生成装置和电子设备 | |
CN114610803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN113448876A (zh) | 一种业务测试方法、装置、计算机设备及存储介质 | |
CN111369370A (zh) | 估值表处理方法、装置、服务器及存储介质 | |
CN117952748A (zh) | 智能合约处理方法、装置、设备、存储介质和程序产品 | |
CN112860755B (zh) | 业务标识生成方法、装置、计算机设备和介质 | |
CN113204535B (zh) | 路由方法及装置、电子设备和计算机可读存储介质 | |
CN116228305A (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 |