CN111522876A - 区块链共识方法、装置和计算机设备、及区块链节点 - Google Patents

区块链共识方法、装置和计算机设备、及区块链节点 Download PDF

Info

Publication number
CN111522876A
CN111522876A CN202010264762.8A CN202010264762A CN111522876A CN 111522876 A CN111522876 A CN 111522876A CN 202010264762 A CN202010264762 A CN 202010264762A CN 111522876 A CN111522876 A CN 111522876A
Authority
CN
China
Prior art keywords
service request
node
consensus
service
request set
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
Application number
CN202010264762.8A
Other languages
English (en)
Other versions
CN111522876B (zh
Inventor
唐俊峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kingdee Software China Co Ltd
Original Assignee
Kingdee Software China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kingdee Software China Co Ltd filed Critical Kingdee Software China Co Ltd
Priority to CN202010264762.8A priority Critical patent/CN111522876B/zh
Publication of CN111522876A publication Critical patent/CN111522876A/zh
Application granted granted Critical
Publication of CN111522876B publication Critical patent/CN111522876B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Cardiology (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Educational Administration (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种区块链共识方法、装置和计算机设备、及区块链节点。所述方法应用于第一节点;所述第一节点为区块链中的任一节点;所述方法包括:将获取的业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至第二节点;所述第二节点为所述区块链中除所述第一节点之外的节点;接收各所述第二节点针对所述业务请求集返回的模拟结果集;根据所述模拟结果集,确定与所述业务请求集中各业务请求相应的共识结果,得到共识结果集;所述共识结果集中的各共识结果,按照所述业务请求集中相应的业务请求之间的顺序排列;对与多个业务请求集分别对应的所述共识结果集进行排序,并将排序后的共识结果集打包生成区块。采用本方法能够提高区块链共识效率。

Description

区块链共识方法、装置和计算机设备、及区块链节点
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块链共识方法、装置和计算机设备、及区块链节点。
背景技术
随着区块链技术的发展,出现了区块链共识技术,用于使各个区块链节点对某一结果的有效性达成共识。
传统技术中,区块链中的节点在得到业务请求的共识结果后,需要对所有业务请求的共识结果进行排序。然而在业务请求量比较多的情况下,排序速度会很低,降低了区块链共识的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高区块链共识效率的区块链共识方法、装置、计算机设备和存储介质、及区块链节点。
一种区块链共识方法,所述方法应用于第一节点;所述第一节点为区块链中的任一节点;所述方法包括:
将获取的业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至第二节点;所述第二节点为所述区块链中除所述第一节点之外的节点;
接收各所述第二节点针对所述业务请求集返回的模拟结果集;
根据所述模拟结果集,确定与所述业务请求集中各业务请求相应的共识结果,得到共识结果集;所述共识结果集中的各共识结果,按照所述业务请求集中相应的业务请求之间的顺序排列;
对与多个业务请求集分别对应的所述共识结果集进行排序,并将排序后的共识结果集打包生成区块。
在其中一个实施例中,所述将获取的业务请求按顺序排列生成业务请求集包括:
按照接收到业务请求的时间顺序,将所述业务请求排列生成业务请求集;或,
将获取的业务请求按预设权重优先值的顺序排列生成业务请求集。
在其中一个实施例中,所述将获取的业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至第二节点包括:
监听业务请求;
当监听到业务请求时,将所述业务请求按顺序添加至业务请求集中;
当所述业务请求集满足预设发送条件时,则将所述业务请求集打包并广播至第二节点。
在其中一个实施例中,所述方法还包括:
当在预设时间间隔内未监听到业务请求时,则触发超时机制,检测所述业务请求集中是否存在业务请求;
当检测到所述业务请求集中不存在业务请求时,则继续执行所述监听业务请求;
当检测到所述业务请求集中存在业务请求时,则判定所述业务请求集满足预设发送条件。
在其中一个实施例中,所述方法还包括:
启动计时器,并在每监听到一个业务请求时,触发所述计时器重新开始计时;
所述当在预设时间间隔内未监听到业务请求时,则触发超时机制,检测所述业务请求集中是否存在业务请求包括:
当计时时长达到预设时长阈值时,则触发超时机制,检测业务请求集中是否存在业务请求。
在其中一个实施例中,所述方法还包括:
当所述业务请求集中的业务请求的数量达到预设数量阈值时,则判定所述业务请求集满足预设发送条件,以执行所述将所述业务请求集打包并广播至第二节点。
在其中一个实施例中,所述将所述业务请求集广播至第二节点之后,还包括:
重置所述业务请求集,返回执行所述当监听到业务请求时,将所述业务请求按顺序添加至业务请求集中及后续步骤。
在其中一个实施例中,所述对所述共识结果集进行排序,并将排序后的共识结果集打包生成区块包括:
根据同一所述共识结果集中的共识结果所对应的业务请求的时间点,得到所述共识结果集所对应的排序参照时间点;
根据各所述共识结果集所对应的排序参照时间点,对各所述共识结果集进行排序;
将排序后的所述共识结果集打包生成区块。
一种区块链共识装置,所述装置设置于第一节点中;所述第一节点为区块链中的任一节点;所述装置包括:
业务请求处理单元,用于将获取的业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至第二节点;所述第二节点为所述区块链中除所述第一节点之外的节点;
模拟结果集接收单元,用于接收各所述第二节点针对所述业务请求集返回的模拟结果集;
共识结果确定单元,用于根据所述模拟结果集,确定与所述业务请求集中各业务请求相应的共识结果,得到共识结果集;所述共识结果集中的各共识结果,按照所述业务请求集中相应的业务请求之间的顺序排列;
排序单元,用于对与多个业务请求集分别对应的所述共识结果集进行排序,并将排序后的共识结果集打包生成区块。
一种区块链节点,所述区块链节点包括节点模块、智能合约模块、共识模块和存储模块;所述节点模块中设置有缓冲区;
所述节点模块,用于接收业务请求,在所述缓冲区将获取的所述业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至区块链中除所述区块链节点之外的其他节点;
所述智能合约模块,用于对所述业务请求集中的各业务请求执行智能合约,得到所述业务请求集对应的模拟结果集;
所述共识模块,用于接收各所述其他节点针对所述业务请求集返回的模拟结果集;
所述共识模块还用于根据所述模拟结果集,确定与所述业务请求集中各业务请求相应的共识结果,得到共识结果集;所述共识结果集中的各共识结果,按照所述业务请求集中相应的业务请求之间的顺序排列;
所述共识模块还用于对与多个业务请求集分别对应的所述共识结果集进行排序,并将排序后的共识结果集打包生成区块;
所述存储模块,用于存储生成的所述区块。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例所述的区块链共识方法中的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的区块链共识方法中的步骤。
上述区块链共识方法、装置、计算机设备和存储介质、及区块链节点,由区块链中的第一节点(任一节点)将获取的业务请求按顺序排列生成业务请求集,并将业务请求集广播至第二节点(除第一节点之外的节点),第一节点根据各第二节点针对业务请求集返回的模拟结果集,确定与业务请求集中各业务请求相应的共识结果,得到共识结果集,对共识结果集进行排序,并将排序后的共识结果集打包生成区块。将获取的业务请求按顺序排列生成业务请求集,相当于提前对业务请求进行了排序,得到的共识结果集中的共识结果按照相应的业务请求之间的顺序排列,因此,在共识阶段,不需要再对共识结果集中的共识结果进行排序,只需对多个共识结果集进行排序即可,相较于传统方法中需要对于来自不同节点的业务请求对应的大量共识结果进行排序而言,提高了区块链共识的效率。
附图说明
图1为一个实施例中区块链共识方法的应用环境图;
图2为一个实施例中区块链共识方法的流程示意图;
图3为一个实施例中将业务请求按顺序排列并广播的方法示意图;
图4为一个实施例中区块链节点的结构框图;
图5为一个实施例中区块链共识装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先需要说明的是,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(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,接收各第二节点针对业务请求集返回的模拟结果集。
其中,模拟结果集,是业务请求集中的业务请求所对应的模拟结果的集合。模拟结果,是第二节点对业务请求执行智能合约所得到的结果。
具体地,第二节点接收到第一节点广播至的业务请求集,对业务请求集中的各业务请求执行智能合约,得到各业务请求对应的模拟结果,从而得到模拟结果集,第一节点接收第二节点返回的模拟结果集。
在一个实施例中,第一节点自身也可以对业务请求集中的业务请求执行智能合约,从而得到模拟结果集。
可以理解,针对同一业务请求集,各第二节点分别返回该业务请求集对应的模拟结果集,不同的第二节点针对同一业务请求集返回的模拟结果集可能不同,也可能相同。一个节点针对每个业务请求集都返回相应的模拟结果集。下面举例说明,假设区块链中有A、B、C三个节点,A节点生成4个业务请求集并广播至B节点和C节点,则B节点针对这4个业务请求集返回4个相应的模拟结果集至A节点,C节点同样针对这4个业务请求集返回4个相应的模拟结果集至A节点,A节点自身也可以执行智能合约得到4个相应的模拟结果集,因此,A节点最终可以得到12个模拟结果集,其中,每个业务请求集对应3个模拟结果集(分别由A、B、C三个节点得到,可能不同,也可能相同)。
S206,根据模拟结果集,确定与业务请求集中各业务请求相应的共识结果,得到共识结果集。共识结果集中的各共识结果,按照业务请求集中相应的业务请求之间的顺序排列。
其中,共识结果,是区块链共识的结果,即,对区块链中的各节点针对业务请求得到的模拟结果达成共识所得到的最终的结果。共识结果集,是共识结果的集合。共识结果集中的共识结果与相应的业务请求集中的业务请求一一对应,且共识结果集中的共识结果与相应的业务请求集中的业务请求的排列顺序一致。
具体地,第一节点在同一业务请求集对应的各模拟结果集中,查找同一业务请求对应的模拟结果,对查找到的模拟结果进行共识处理,得到该业务请求对应的共识结果。对全部模拟结果集进行上述处理,从而得到业务请求集中各业务请求对应的共识结果,将共识结果按照相应的业务请求的顺序排列,从而确定共识结果集。第一节点可以按照业务请求集中的业务请求的排列顺序依次处理确定各个业务请求所对应的共识结果,即可得到共识结果按照相应的业务请求的顺序排列的共识结果集。每个业务请求集对应一个共识结果集。
S208,对与多个业务请求集分别对应的共识结果集进行排序,并将排序后的共识结果集打包生成区块。
具体地,第一节点对与多个业务请求集分别对应的共识结果集进行排序,并将排序后的共识结果集按顺序打包生成区块。可以理解,将排序靠前的共识结果集,先打包生成区块,将排序靠后的共识结果集,后打包生成区块,即,按照排序从前到后的顺序将共识结果集打包生成区块。
在一个实施例中,第一节点可以根据各共识结果集中的共识结果的时间点信息的先后顺序,对共识结果集进行排序。
在一个实施例中,可以将各共识结果集分别单独打包生成区块。在一个实施例中,也可以将多个共识结果集打包生成区块。
上述区块链共识方法中,由区块链中的第一节点(任一节点)将获取的业务请求按顺序排列生成业务请求集,并将业务请求集广播至第二节点(除第一节点之外的节点),第一节点根据各第二节点针对业务请求集返回的模拟结果集,确定与业务请求集中各业务请求相应的共识结果,得到共识结果集,对共识结果集进行排序,并将排序后的共识结果集打包生成区块。将获取的业务请求按顺序排列生成业务请求集,相当于提前对业务请求进行了排序,得到的共识结果集中的共识结果按照相应的业务请求之间的顺序排列,因此,在共识阶段,不需要再对共识结果集中的共识结果进行排序,只需对多个共识结果集进行排序即可,相较于传统方法中需要对于来自不同节点的业务请求对应的大量共识结果进行排序而言,提高了区块链共识的效率。此外,节点间以业务请求集的形式进行传输,可以有效解决高并发的情况下网络拥堵的问题,提高了区块链的传输效率。
在一个实施例中,S202将获取的业务请求按顺序排列生成业务请求集,并将业务请求集广播至第二节点的步骤,具体包括如下步骤:监听业务请求;当监听到业务请求时,将业务请求按顺序添加至业务请求集中;当业务请求集满足预设发送条件时,则将业务请求集打包并广播至第二节点。
具体地,第一节点不断监听业务请求,当监听到业务请求时,将业务请求按顺序添加至业务请求集中。当业务请求集满足预设发送条件时,第一节点则将业务请求集打包并广播至第二节点。
在一个实施例中,第一节点可以按照接收到业务请求的时间顺序将业务请求按顺序添加至业务请求集中,即,每接收到一个业务请求,便将该业务请求添加至业务请求集中。例如:第一节点依次接收到a、b、c、d和e五个业务请求,则当接收到a时将a添加至业务请求集中,接着接收到b,然后将b添加至业务请求集中的业务请求a之后(即在a之后且相邻于a),以此类推,则最终a、b、c、d和e五个业务请求在业务请求集中的顺序即为abcde。
在一个实施例中,预设发送条件,可以从业务请求集中业务请求的数量维度进行设置。具体地,预设发送条件,可以包括业务请求集中业务请求的数量达到预设数量阈值。
在一个实施例中,预设发送条件,也可以从监听业务请求的时间维度上进行设置。具体地,预设发送条件,可以包括在预设时间间隔内未监听到业务请求、且业务请求集中存在业务请求。
本实施例中,第一节点监听到业务请求时,将业务请求按顺序添加至业务请求集中,当业务请求集满足预设发送条件时,则将业务请求集打包并广播至第二节点,能够实现提前对业务请求进行排序,在共识阶段只需对业务请求集对应的共识结果集进行排序,不需要对业务请求对应的共识结果进行大量的排序操作,提高了共识效率。并且将业务请求打包传输,提高了区块链的传输效率。
在一个实施例中,该方法还包括如下步骤:当在预设时间间隔内未监听到业务请求时,则触发超时机制,检测业务请求集中是否存在业务请求;当检测到业务请求集中不存在业务请求时,则继续执行监听业务请求;当检测到业务请求集中存在业务请求时,则判定业务请求集满足预设发送条件。
其中,超时机制,是当第一节点在预设时间间隔内未监听到业务请求时触发的机制,用于表征第一节点长时间未监听到业务请求。例如:假设预设时间间隔为5秒,当第一节点在5秒内未监听到业务请求时,则触发超时机制,检测业务请求集中是否存在业务请求。
在一个实施例中,第一节点中启动了计时器,通过计时器计时,以判断是否在预设时间间隔内监听到业务请求。
在一个实施例中,当检测到业务请求集中不存在业务请求时,则继续执行监听业务请求,并重新开始计时,即,触发计时器重新开始计时。
在一个实施例中,当检测到业务请求集中存在业务请求时,不管业务请求集中业务请求的数量为多少,都判定业务请求集满足预设发送条件,将该业务请求集打包并广播至第二节点,并重新开始计时。
本实施例中,当在预设时间间隔内未监听到业务请求时,则触发超时机制,使得即使在非高并发的情况下,也能保证区块链的正常服务和高效的通信。
在一个实施例中,该方法还包括如下步骤:启动计时器,并在每监听到一个业务请求时,触发计时器重新开始计时。本实施例中,当在预设时间间隔内未监听到业务请求时,则触发超时机制,检测业务请求集中是否存在业务请求的步骤,具体包括如下步骤:当计时时长达到预设时长阈值时,则触发超时机制,检测业务请求集中是否存在业务请求。
其中,计时器设置于第一节点中。
具体地,第一节点可以启动计时器,并在每监听到一个业务请求时,触发计时器从头开始计时。当计时时长达到预设时长阈值时,则触发超时机制,检测业务请求集中是否存在业务请求。
下面举例说明,假设预设时间间隔为5秒,计时器从0开始计时到3秒时,第一节点监听到业务请求,则计时器从0开始重新计时。若5秒内一直没有监听到业务请求,则当计时时长达到5秒时,触发超时机制,检测业务请求集中是否存在业务请求。
本实施例中,通过计时器进行计时,当计时时长达到预设时长阈值时,则触发超时机制,能够在非高并发的情况下,保证节点间高效的通信。
在一个实施例中,该方法还包括如下步骤:当业务请求集中的业务请求的数量达到预设数量阈值时,则判定业务请求集满足预设发送条件,以执行将业务请求集打包并广播至第二节点。
下面举例说明,假设第一节点先后接收到100个业务请求,预设数量阈值为20,则第一节点将接收到的业务请求按顺序添加至业务请求集中,当业务请求集中的业务请求数量达到20时,则判定该业务请求集满足预设发送条件,将该业务请求集打包并广播至第二节点。然后重置业务请求集,继续将新获取的业务请求添加至新的业务请求集中。则第一节点最终至少生成并广播5个业务请求集,每个业务请求集中最多包含20个业务请求。
本实施例中,当业务请求集中的业务请求的数量达到预设数量阈值时,则判定业务请求集满足预设发送条件,从业务请求集的容量方面进行控制,一方面能够减少数据存储压力,另一方面也能够防止数据传输量过大,减少数据传输压力。
在一个实施例中,将业务请求集广播至第二节点的步骤之后,还包括如下步骤:重置业务请求集,返回执行当监听到业务请求时,将业务请求按顺序添加至业务请求集中及后续步骤。
具体地,在第一节点将业务请求集广播至第二节点之后,第一节点重置业务请求集(即,清空业务请求集),继续监听业务请求,当监听到业务请求时,将业务请求按顺序添加至已经重置的业务请求集中。
本实施例中,通过在将业务请求集广播至第二节点后,重置业务请求集,继续将监听到的业务请求添加至业务请求集中,能够不断地对接收到的业务请求进行排序和打包,从而提高区块链共识效率。
在一个实施例中,对共识结果集进行排序,并将排序后的共识结果集打包生成区块的步骤,具体包括如下步骤:根据同一共识结果集中的共识结果所对应的业务请求的时间点,得到共识结果集所对应的排序参照时间点;根据各共识结果集所对应的排序参照时间点,对各共识结果集进行排序;将排序后的共识结果集打包生成区块。
其中,排序参照时间点,用于对共识结果集进行排序时作为排序的参照。
在一个实施例中,第一节点可以对同一共识结果集中的全部共识结果所对应的业务请求的时间点求平均值,得到该共识结果集的排序参照时间点。根据各共识结果集所对应的排序参照时间点的先后顺序,对各共识结果集进行排序,将排序后的共识结果集打包生成区块。第一节点也可以对同一共识结果集中的全部共识结果所对应的业务请求的时间点进行其他处理,得到该共识结果集的排序参照时间点,处理方法不做限定。
在一个实施例中,业务请求的时间点,可以是第一节点接收到业务请求的时间点。在一个实施例中,业务请求的时间点,也可以是对业务请求进行共识的时间点。
本实施例中,第一节点根据各共识结果集的排序参照时间点,对共识结果集进行排序,将排序后的共识结果集打包生成区块,只需对共识结果集进行排序,提高了区块链共识效率。
如图3所示,是第一节点对业务请求按顺序排列并广播的方法示意图。在第一节点的节点模块中设置缓冲区,每当第一节点的节点模块接收到客户端发送的交易(业务请求),则将交易添加至交易集(业务请求集)中。假设交易集的预设数量阈值为100,则当交易集中的交易数量大于100时,将交易集发送至其他节点(第二节点),未大于100则继续接收并添加交易至交易集中。第一节点的计时器不断计时,每当第一节点的节点模块接收到客户端发送的交易(业务请求),则重新开始计时,若计时时长达到预设时长阈值时,则触发超时机制检测交易集中是否存在交易。若不存在交易,则重新开始计时并继续接收并添加交易至交易集中;若存在交易,即使交易集中的交易数量小于100,也将当前的交易集发送至其他节点(第二节点)。在将交易集发送至其他节点(第二节点)后,重置交易集,然后继续接收并添加交易至交易集中。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种区块链节点,该区块链节点包括节点模块、智能合约模块、共识模块和存储模块。节点模块中设置有缓冲区。
节点模块,用于接收业务请求,在缓冲区将获取的业务请求按顺序排列生成业务请求集,并将业务请求集广播至区块链中除区块链节点之外的其他节点。
智能合约模块,用于对业务请求集中的各业务请求执行智能合约,得到业务请求集对应的模拟结果集。
共识模块,用于接收各其他节点针对业务请求集返回的模拟结果集。
共识模块还用于根据模拟结果集,确定与业务请求集中各业务请求相应的共识结果,得到共识结果集;共识结果集中的各共识结果,按照业务请求集中相应的业务请求之间的顺序排列。
共识模块还用于对与多个业务请求集分别对应的共识结果集进行排序,并将排序后的共识结果集打包生成区块。
存储模块,用于存储生成的区块。
图4的区块链中有A和B两个节点,A节点(区块链节点)的节点模块接收到交易1和交易2两笔交易(业务请求),则在缓冲区将交易1和交易2按顺序排列生成交易集(业务请求集),并将交易集向B节点(其他节点)进行p2p广播。A节点和B节点的智能合约模块分别对交易集中的各交易执行智能合约得到交易集对应的模拟结果集。A节点的共识模块接收B节点的共识模块广播至的模拟结果集,并根据模拟结果集确定交易集中各交易相应的共识结果,得到共识结果集,共识结果集中的各共识结果,按照交易集中相应的交易之间的顺序排列。A节点和B节点的共识模块分别对与多个交易集分别对应的共识结果集进行排序,并将排序后的共识结果集打包生成区块,并将生成的区块存储至存储模块中。
可以理解,假设A节点接收到100笔交易,每20笔交易可以打包成一个交易集,那么A节点的节点模块在缓冲区将100笔交易打包成5个交易集,并广播至B节点,经过共识得到这5个交易集对应的5个共识结果集,在共识模块只需对5个共识结果集进行排序,然后按顺序将共识结果集打包生成区块,而不需要对100笔交易对应的100个共识结果进行排序,提高了区块链共识效率。
在一个实施例中,如图5所示,提供了一种区块链共识装置500,该装置设置于第一节点中,第一节点为区块链中的任一节点。该装置包括:业务请求处理单元502、模拟结果集接收单元504、共识结果确定单元506和排序单元508,其中:
业务请求处理单元502,用于将获取的业务请求按顺序排列生成业务请求集,并将业务请求集广播至第二节点;第二节点为区块链中除第一节点之外的节点。
模拟结果集接收单元504,用于接收各第二节点针对业务请求集返回的模拟结果集。
共识结果确定单元506,用于根据模拟结果集,确定与业务请求集中各业务请求相应的共识结果,得到共识结果集;共识结果集中的各共识结果,按照业务请求集中相应的业务请求之间的顺序排列。
排序单元508,用于对与多个业务请求集分别对应的共识结果集进行排序,并将排序后的共识结果集打包生成区块。
在一个实施例中,业务请求处理单元502还用于按照接收到业务请求的时间顺序,将业务请求排列生成业务请求集。
在一个实施例中,业务请求处理单元502还用于将获取的业务请求按预设权重优先值的顺序排列生成业务请求集。
在一个实施例中,业务请求处理单元502还用于监听业务请求;当监听到业务请求时,将业务请求按顺序添加至业务请求集中;当业务请求集满足预设发送条件时,则将业务请求集打包并广播至第二节点。
在一个实施例中,业务请求处理单元502还用于当在预设时间间隔内未监听到业务请求时,则触发超时机制,检测业务请求集中是否存在业务请求;当检测到业务请求集中不存在业务请求时,则继续执行监听业务请求;当检测到业务请求集中存在业务请求时,则判定业务请求集满足预设发送条件。
在一个实施例中,业务请求处理单元502还用于启动计时器,并在每监听到一个业务请求时,触发计时器重新开始计时;当计时时长达到预设时长阈值时,则触发超时机制,检测业务请求集中是否存在业务请求。
在一个实施例中,业务请求处理单元502还用于当业务请求集中的业务请求的数量达到预设数量阈值时,则判定业务请求集满足预设发送条件,以执行将业务请求集打包并广播至第二节点。
在一个实施例中,业务请求处理单元502还用于重置业务请求集,返回执行当监听到业务请求时,将业务请求按顺序添加至业务请求集中及后续步骤。
在一个实施例中,排序单元508还用于根据同一共识结果集中的共识结果所对应的业务请求的时间点,得到共识结果集所对应的排序参照时间点;根据各共识结果集所对应的排序参照时间点,对各共识结果集进行排序;将排序后的共识结果集打包生成区块。
上述区块链共识装置中,由区块链中的第一节点(任一节点)将获取的业务请求按顺序排列生成业务请求集,并将业务请求集广播至第二节点(除第一节点之外的节点),第一节点根据各第二节点针对业务请求集返回的模拟结果集,确定与业务请求集中各业务请求相应的共识结果,得到共识结果集,对共识结果集进行排序,并将排序后的共识结果集打包生成区块。将获取的业务请求按顺序排列生成业务请求集,相当于提前对业务请求进行了排序,得到的共识结果集中的共识结果按照相应的业务请求之间的顺序排列,因此,在共识阶段,不需要再对共识结果集中的共识结果进行排序,只需对多个共识结果集进行排序即可,相较于传统方法中需要对于来自不同节点的业务请求对应的大量共识结果进行排序而言,提高了区块链共识的效率。此外,节点间以业务请求集的形式进行传输,可以有效解决高并发的情况下网络拥堵的问题,提高了区块链的传输效率。
关于区块链共识装置的具体限定可以参见上文中对于区块链共识方法的限定,在此不再赘述。上述区块链共识装置中的各个单元可全部或部分通过软件、硬件及其组合来实现。上述各单元可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个单元对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储区块数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块链共识方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种区块链共识方法,其特征在于,所述方法应用于第一节点;所述第一节点为区块链中的任一节点;所述方法包括:
将获取的业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至第二节点;所述第二节点为所述区块链中除所述第一节点之外的节点;
接收各所述第二节点针对所述业务请求集返回的模拟结果集;
根据所述模拟结果集,确定与所述业务请求集中各业务请求相应的共识结果,得到共识结果集;所述共识结果集中的各共识结果,按照所述业务请求集中相应的业务请求之间的顺序排列;
对与多个业务请求集分别对应的所述共识结果集进行排序,并将排序后的共识结果集打包生成区块。
2.根据权利要求1所述的方法,其特征在于,所述将获取的业务请求按顺序排列生成业务请求集包括:
按照接收到业务请求的时间顺序,将所述业务请求排列生成业务请求集;或,
将获取的业务请求按预设权重优先值的顺序排列生成业务请求集。
3.根据权利要求1所述的方法,其特征在于,所述将获取的业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至第二节点包括:
监听业务请求;
当监听到业务请求时,将所述业务请求按顺序添加至业务请求集中;
当所述业务请求集满足预设发送条件时,则将所述业务请求集打包并广播至第二节点。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当在预设时间间隔内未监听到业务请求时,则触发超时机制,检测所述业务请求集中是否存在业务请求;
当检测到所述业务请求集中不存在业务请求时,则继续执行所述监听业务请求;
当检测到所述业务请求集中存在业务请求时,则判定所述业务请求集满足预设发送条件。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
启动计时器,并在每监听到一个业务请求时,触发所述计时器重新开始计时;
所述当在预设时间间隔内未监听到业务请求时,则触发超时机制,检测所述业务请求集中是否存在业务请求包括:
当计时时长达到预设时长阈值时,则触发超时机制,检测业务请求集中是否存在业务请求。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述业务请求集中的业务请求的数量达到预设数量阈值时,则判定所述业务请求集满足预设发送条件,以执行所述将所述业务请求集打包并广播至第二节点。
7.根据权利要求3所述的方法,其特征在于,所述将所述业务请求集广播至第二节点之后,还包括:
重置所述业务请求集,返回执行所述当监听到业务请求时,将所述业务请求按顺序添加至业务请求集中及后续步骤。
8.根据权利要求1至7任意一项所述的方法,其特征在于,所述对所述共识结果集进行排序,并将排序后的共识结果集打包生成区块包括:
根据同一所述共识结果集中的共识结果所对应的业务请求的时间点,得到所述共识结果集所对应的排序参照时间点;
根据各所述共识结果集所对应的排序参照时间点,对各所述共识结果集进行排序;
将排序后的所述共识结果集打包生成区块。
9.一种区块链共识装置,其特征在于,所述装置设置于第一节点中;所述第一节点为区块链中的任一节点;所述装置包括:
业务请求处理单元,用于将获取的业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至第二节点;所述第二节点为所述区块链中除所述第一节点之外的节点;
模拟结果集接收单元,用于接收各所述第二节点针对所述业务请求集返回的模拟结果集;
共识结果确定单元,用于根据所述模拟结果集,确定与所述业务请求集中各业务请求相应的共识结果,得到共识结果集;所述共识结果集中的各共识结果,按照所述业务请求集中相应的业务请求之间的顺序排列;
排序单元,用于对与多个业务请求集分别对应的所述共识结果集进行排序,并将排序后的共识结果集打包生成区块。
10.一种区块链节点,其特征在于,所述区块链节点包括节点模块、智能合约模块、共识模块和存储模块;所述节点模块中设置有缓冲区;
所述节点模块,用于接收业务请求,在所述缓冲区将获取的所述业务请求按顺序排列生成业务请求集,并将所述业务请求集广播至区块链中除所述区块链节点之外的其他节点;
所述智能合约模块,用于对所述业务请求集中的各业务请求执行智能合约,得到所述业务请求集对应的模拟结果集;
所述共识模块,用于接收各所述其他节点针对所述业务请求集返回的模拟结果集;
所述共识模块还用于根据所述模拟结果集,确定与所述业务请求集中各业务请求相应的共识结果,得到共识结果集;所述共识结果集中的各共识结果,按照所述业务请求集中相应的业务请求之间的顺序排列;
所述共识模块还用于对与多个业务请求集分别对应的所述共识结果集进行排序,并将排序后的共识结果集打包生成区块;
所述存储模块,用于存储生成的所述区块。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN202010264762.8A 2020-04-07 2020-04-07 区块链共识方法、装置和计算机设备、及区块链节点 Active CN111522876B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010264762.8A CN111522876B (zh) 2020-04-07 2020-04-07 区块链共识方法、装置和计算机设备、及区块链节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010264762.8A CN111522876B (zh) 2020-04-07 2020-04-07 区块链共识方法、装置和计算机设备、及区块链节点

Publications (2)

Publication Number Publication Date
CN111522876A true CN111522876A (zh) 2020-08-11
CN111522876B CN111522876B (zh) 2024-02-20

Family

ID=71901392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010264762.8A Active CN111522876B (zh) 2020-04-07 2020-04-07 区块链共识方法、装置和计算机设备、及区块链节点

Country Status (1)

Country Link
CN (1) CN111522876B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112068978A (zh) * 2020-08-27 2020-12-11 恒宝股份有限公司 View-change二次启动定时器的定时期限延长方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196900A (zh) * 2017-03-24 2017-09-22 阿里巴巴集团控股有限公司 一种共识校验的方法及装置
CN107360206A (zh) * 2017-03-29 2017-11-17 阿里巴巴集团控股有限公司 一种区块链共识方法、设备及系统
CN107395659A (zh) * 2017-03-28 2017-11-24 阿里巴巴集团控股有限公司 一种业务受理及共识的方法及装置
US20180365686A1 (en) * 2017-06-19 2018-12-20 Hitachi, Ltd. Smart contract lifecycle management
CN109660601A (zh) * 2018-11-26 2019-04-19 北京瑞卓喜投科技发展有限公司 一种区块链共识方法及区块链共识装置
CN110830581A (zh) * 2019-11-12 2020-02-21 金蝶软件(中国)有限公司 提升区块链响应速度的方法、区块链应用系统及相关设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107196900A (zh) * 2017-03-24 2017-09-22 阿里巴巴集团控股有限公司 一种共识校验的方法及装置
CN107395659A (zh) * 2017-03-28 2017-11-24 阿里巴巴集团控股有限公司 一种业务受理及共识的方法及装置
CN107360206A (zh) * 2017-03-29 2017-11-17 阿里巴巴集团控股有限公司 一种区块链共识方法、设备及系统
US20180365686A1 (en) * 2017-06-19 2018-12-20 Hitachi, Ltd. Smart contract lifecycle management
CN109660601A (zh) * 2018-11-26 2019-04-19 北京瑞卓喜投科技发展有限公司 一种区块链共识方法及区块链共识装置
CN110830581A (zh) * 2019-11-12 2020-02-21 金蝶软件(中国)有限公司 提升区块链响应速度的方法、区块链应用系统及相关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112068978A (zh) * 2020-08-27 2020-12-11 恒宝股份有限公司 View-change二次启动定时器的定时期限延长方法
CN112068978B (zh) * 2020-08-27 2022-06-10 恒宝股份有限公司 View-change二次启动定时器的定时期限延长方法及装置

Also Published As

Publication number Publication date
CN111522876B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
CN111625593B (zh) 基于区块链的数据处理方法、装置、计算机设备
CN109714412B (zh) 区块同步方法、装置、设备及计算机可读存储介质
CN109344172A (zh) 一种高并发数据处理方法、装置及客户端服务器
CN111242784B (zh) 区块预打包方法、区块节点、装置及存储介质
CN111294390B (zh) 一种区块数据快速同步方法、装置、设备及存储介质
CN111654348B (zh) 物联网数据传输方法、装置、计算机设备和存储介质
CN111885050B (zh) 基于区块链网络的数据存储方法、装置、相关设备及介质
CN110768873B (zh) 分布式心跳检测方法、系统、装置和计算机设备
CN110336848B (zh) 一种访问请求的调度方法及调度系统、设备
CN110928880B (zh) 基于区块链的数据处理方法、装置、终端及介质
CN110784521B (zh) 区块链的共识方法、电子设备和存储介质
CN109800204B (zh) 数据分配方法及相关产品
CN113220483A (zh) 一种区块链共识主节点的切换方法及系统
CN111061735A (zh) 一种基于单链区块链的扩容方法及装置
CN112232957A (zh) 交易共识方法、装置和电子设备
CN111522876B (zh) 区块链共识方法、装置和计算机设备、及区块链节点
CN111506655B (zh) 区块链系统的同步处理方法、装置及智能设备、存储介质
CN111324433B (zh) 一种数据计算的方法及相关设备
CN112804233A (zh) 一种面向区块链多通道的区块打包方法、装置及存储介质
CN111507695A (zh) 数据处理方法、装置、节点设备及存储介质
CN115361295B (zh) 基于topsis的资源备份方法、装置、设备及介质
CN116303343A (zh) 数据分片方法、装置、电子设备及存储介质
CN115729961A (zh) 数据查询方法、装置、设备和计算机可读存储介质
CN111522873B (zh) 区块生成方法、装置、计算机设备和存储介质
CN111510484B (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