CN111522873B - 区块生成方法、装置、计算机设备和存储介质 - Google Patents

区块生成方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111522873B
CN111522873B CN202010195908.8A CN202010195908A CN111522873B CN 111522873 B CN111522873 B CN 111522873B CN 202010195908 A CN202010195908 A CN 202010195908A CN 111522873 B CN111522873 B CN 111522873B
Authority
CN
China
Prior art keywords
block
current
node
current node
blockchain
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
Application number
CN202010195908.8A
Other languages
English (en)
Other versions
CN111522873A (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 CN202010195908.8A priority Critical patent/CN111522873B/zh
Publication of CN111522873A publication Critical patent/CN111522873A/zh
Application granted granted Critical
Publication of CN111522873B publication Critical patent/CN111522873B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种区块生成方法、装置、计算机设备和存储介质。所述方法包括:将共识结果打包生成第一区块;所述第一区块携带当前节点的标识和当前区块高度;按照所述标识和所述当前区块高度,将所述第一区块添加至当前节点所对应的第一区块链,并将所述第一区块广播至各非当前节点,以指示所述非当前节点将所述第一区块添加至所述非当前节点所存储的所述第一区块链中;当接收到由所述非当前节点生成并广播至的第二区块时,将所述第二区块添加至所存储的与所述非当前节点对应的第二区块链中;其中,所述当前节点生成第一区块和所述非当前节点生成第二区块的处理,属于异步处理。采用本方法能够提高区块生成的效率。

Description

区块生成方法、装置、计算机设备和存储介质
技术领域
本申请涉及区块链技术领域,特别是涉及一种区块生成方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了区块链技术,区块链因为其有效性和安全性而成为了当前越来越热门的技术,区块的生成是区块链技术中的一个重要技术问题。
传统技术中,特别在联盟链中,是由区块链中的所有节点共同生成同一条区块链,每个区块的生成需要各节点之间进行通信协商,在各节点协商完毕且生成一个区块的基础上才能生成下一个区块,节点间的通信和依次生成区块的过程非常耗费时间,降低了区块生成的效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高区块生成效率的区块生成方法、装置、计算机设备和存储介质。
一种区块生成方法,所述方法由区块链系统中的任一节点执行;每个节点中皆存储有所述区块链系统中各节点所分别对应的区块链;每条区块链用于对应记录一个节点所产生的区块;
所述方法包括:
将共识结果打包生成第一区块;所述第一区块携带当前节点的标识和当前区块高度;
按照所述标识和所述当前区块高度,将所述第一区块添加至当前节点所对应的第一区块链,并将所述第一区块广播至各非当前节点,以指示所述非当前节点将所述第一区块添加至所述非当前节点所存储的所述第一区块链中;
当接收到由所述非当前节点生成并广播至的第二区块时,将所述第二区块添加至所存储的与所述非当前节点对应的第二区块链中;
其中,所述当前节点生成第一区块和所述非当前节点生成第二区块的处理,属于异步处理。
在其中一个实施例中,所述第一区块存储有已有区块的唯一表征值;所述唯一表征值,用于唯一表征所述当前节点所存储的全部区块链中的已有区块。
在其中一个实施例中,所述唯一表征值包括所述当前节点所存储的各区块链中的目标区块的哈希值;所述目标区块,是指未被所述第一区块链上的区块引用过哈希值的区块。
在其中一个实施例中,所述将共识结果打包生成第一区块包括:
根据所述共识结果,确定待生成的第一区块的哈希值;
获取存储的各区块链中的目标区块的哈希值、当前区块高度和当前节点的标识;
根据所述第一区块的哈希值、所述目标区块的哈希值、所述当前区块高度和所述当前节点的标识,确定第一区块的区块头;
根据共识结果和所述区块头,生成第一区块。
在其中一个实施例中,所述将所述第二区块添加至所存储的与所述非当前节点对应的第二区块链中包括:
从所述第二区块中提取所述非当前节点的标识和区块高度;
从当前节点所存储的区块链中,查找与所述非当前节点的标识对应的第二区块链;
按照所述区块高度,将所述第二区块添加至所述第二区块链中。
一种区块生成装置,所述装置设置于区块链系统中的任一节点中;每个节点中皆存储有所述区块链系统中各节点所分别对应的区块链;每条区块链用于对应记录一个节点所产生的区块;
所述装置包括:
第一区块生成模块,用于将共识结果打包生成第一区块;所述第一区块携带当前节点的标识和当前区块高度;
第一区块存储模块,用于按照所述标识和所述当前区块高度,将所述第一区块添加至当前节点所对应的第一区块链,并将所述第一区块广播至各非当前节点,以指示所述非当前节点将所述第一区块添加至所述非当前节点所存储的所述第一区块链中;
第二区块存储模块,用于当接收到由所述非当前节点生成并广播至的第二区块时,将所述第二区块添加至所存储的与所述非当前节点对应的第二区块链中;
其中,所述当前节点生成第一区块和所述非当前节点生成第二区块的处理,属于异步处理。
在其中一个实施例中,所述第一区块生成模块还用于根据所述共识结果,确定待生成的第一区块的哈希值;获取存储的各区块链中的目标区块的哈希值、当前区块高度和当前节点的标识;根据所述第一区块的哈希值、所述目标区块的哈希值、所述当前区块高度和所述当前节点的标识,确定第一区块的区块头;根据共识结果和所述区块头,生成第一区块。
在其中一个实施例中,所述第二区块存储模块还用于从所述第二区块中提取所述非当前节点的标识和区块高度;从当前节点所存储的区块链中,查找与所述非当前节点的标识对应的第二区块链;按照所述区块高度,将所述第二区块添加至所述第二区块链中。
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行本申请各实施例所述的区块生成方法中的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行本申请各实施例所述的区块生成方法中的步骤。
上述区块生成方法、装置、计算机设备和存储介质,区块链系统中每个节点中皆存储有各节点所分别对应的区块链。区块链系统中的任一节点生成携带当前节点的标识和当前区块高度的第一区块,并按照节点标识和区块高度,将第一区块添加至当前节点所对应的第一区块链中,并将第一区块广播至非当前节点,非当前节点将第一区块添加至该非当前节点存储的第一区块链中。非当前节点异步地以同样的方式生成第二区块并广播。通过当前节点生成第一区块和非当前节点生成第二区块的异步处理,区块链系统中的一个节点不需要等待各节点协商完毕且生成一个区块才能生成下一个区块,提高了区块生成的效率,将生成的区块广播保证了异步生成区块过程中各节点存储的区块具有一致性。
附图说明
图1为一个实施例中区块生成方法的应用环境图;
图2为一个实施例中区块生成方法的流程示意图;
图3(a)~(b)为一个实施例中区块生成方法的对比的示意图;
图4为一个实施例中区块生成装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
首先需要说明的是,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
区块链系统包括多个节点(接入网络中的任意形式的计算机设备,如服务器、用户终端),节点之间形成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。
区块链共识,用于使各个区块链节点对某一结果的有效性达成共识。
本申请提供的区块生成方法,可以应用于如图1所示的应用环境中。其中,节点102为区块链系统中的任一节点。节点102的数量为多个。各节点102之间通过网络进行通信。节点102可以为终端或服务器。
在一个实施例中,如图2所示,提供了一种区块生成方法,以该方法应用于图1中的节点为例进行说明,该方法由区块链系统中的任一节点执行。包括以下步骤:
S202,将共识结果打包生成第一区块;第一区块携带当前节点的标识和当前区块高度。
其中,共识结果,是区块链共识的结果,即区块链中的各个节点对某一结果的有效性达成共识得到的最终结果。当前节点,是当前执行该方法的节点。可以理解,区块链系统包括多个节点,非当前节点,即为区块链系统中的除当前节点以外的其他的节点。第一区块,是当前节点生成的区块。当前节点的标识,用于表征当前节点。当前区块高度,用于表征当前节点中待生成的区块的区块高度。区块高度,是指区块链中某一区块与第一区块之间的块数。
具体地,当前节点接收业务请求,并将业务请求广播至区块链系统中的各非当前节点。各非当前节点根据业务请求得到相应的模拟结果,并将模拟结果反馈至当前节点。当前节点根据各非当前节点反馈的模拟结果,确定最终的共识结果。
当前节点确定包含当前节点的标识和当前区块高度的区块头,根据共识结果和区块头,打包生成第一区块。即,在区块中增加了节点的标识来与区块高度一起作为区块的唯一标识,即,将区块的唯一标识增加了一个维度的信息。
S204,按照标识和当前区块高度,将第一区块添加至当前节点所对应的第一区块链,并将第一区块广播至各非当前节点,以指示非当前节点将第一区块添加至非当前节点所存储的第一区块链中。
可以理解,本申请各实施例中,每个节点中皆存储有区块链系统中各节点所分别对应的区块链。每条区块链用于对应记录一个节点所产生的区块。即,同一节点所生成的区块形成一条区块链,不同节点生成的区块形成不同的区块链。而且,每个节点都存储有区块链系统中全部节点所对应的区块链(即存储有多条区块链)。
为了便于理解,现举例说明。假设,区块链系统中一共有4个节点A、B、C和D,那么,同一节点生成的区块形成一条区块链,则4个节点生成4条区块链a~d,那么,4个节点A~D中皆存储有这4条区块链a~d。
其中,第一区块链,是用于存储当前节点生成的区块(即第一区块)的区块链。可以理解,区块链系统中的每个节点都存储第一区块链。当前节点存储的第一区块链,用于存储当前节点自身生成的区块。非当前节点存储的第一区块链,用于存储当前节点生成的、且由当前节点广播至的区块。
具体地,当前节点根据第一区块中的当前节点的标识,在当前节点存储的多条区块链中,查找到与当前节点的标识对应的第一区块链,并按照第一区块中的当前区块高度,将第一区块添加至第一区块链中与当前区块高度对应的位置。
比如,区块链系统中一共有4个节点,当前节点为A节点,当前节点A中则存储了各节点分别对应的区块链,即存储了4条区块链。假设,当前节点A对应的第一区块链a中已经存储了3个区块,那么,当前节点A新生成的第一区块则为第4个区块,该第一区块中则包括用于表征其为第4个区块的当前区块高度以及当前节点A的标识。然后,可以按照当前节点A的标识查找对应的第一区块链a,并按照当前区块高度,将该第一区块添加至第一区块链a中相应位置,使其成为第一区块链a上的第4个区块。
当前节点将生成的第一区块广播至各非当前节点,非当前节点根据第一区块中的当前节点的标识,在该非当前节点自身存储的多条区块链中,查找与当前节点的标识对应的第一区块链,并按照第一区块中的当前区块高度,将第一区块添加至第一区块链中与当前区块高度对应的位置。
S206,当接收到由非当前节点生成并广播至的第二区块时,将第二区块添加至所存储的与非当前节点对应的第二区块链中。
其中,第二区块,是非当前节点生成的区块。第二区块链,是用于存储非当前节点生成的区块(即第二区块)的区块链。可以理解,非当前节点的数量可以为多个,那么第二区块链的数量相应的也可以为多个。每个非当前节点对应各自的第二区块链,该第二区块链用于存储该节点生成的区块。区块链系统中的每个节点都存储相同的第一区块链和第二区块链。
具体地,非当前节点将其生成的第二区块广播至当前节点,当前节点将第二区块添加至当前节点所存储的与该非当前节点对应的第二区块链中。
在一个实施例中,非当前节点将其生成的第二区块广播至当前节点,当前节点按照第二区块中的非当前节点的标识和区块高度,将第二区块添加至当前节点所存储的与该非当前节点的标识对应的第二区块链中区块高度对应的位置。
当前节点生成第一区块和非当前节点生成第二区块的处理,属于异步处理。即,区块链系统中的各个节点异步地各自生成区块并存储,并将自身生成的区块广播至其他各区块以保证异步生成区块过程中各节点存储的区块具有一致性。区块链系统中的各个节点都存储多条区块链,每条区块链用来对应存储其中一个节点生成的区块。每个区块用生成该区块的节点的标识和区块高度来区分。
如图3(a)所示,为传统区块生成方法的示意图,各节点按顺序共同生成这一条区块链中的区块,在生成某一个区块时各节点间协商决定由哪个节点生成该区块,只有等待一个区块生成完毕,才能生成下一个区块,区块生成效率低。
如图3(b)所示,为本实施例中区块生成方法的示意图,各节点分别生成各自对应的区块链,相当于将传统方法的一条区块链拆分成了几条子区块链来由不同的节点分别生成并存储,可以理解,最终生成的区块总数和各区块存储的数据与传统方法相比是相同的,不会造成存储体积的增加和存储数据的改变。
上述区块生成方法中,区块链系统中每个节点中皆存储有各节点所分别对应的区块链。区块链系统中的任一节点生成携带当前节点的标识和当前区块高度的第一区块,并按照节点标识和区块高度,将第一区块添加至当前节点所对应的第一区块链中,并将第一区块广播至非当前节点,非当前节点将第一区块添加至该非当前节点存储的第一区块链中。非当前节点异步地以同样的方式生成第二区块并广播。通过当前节点生成第一区块和非当前节点生成第二区块的异步处理,区块链系统中的一个节点不需要等待各节点协商完毕且生成一个区块才能生成下一个区块,即不需要区块链系统中的各节点共同生成同一条区块链而导致节点间的协商与等待降低区块生成效率,而是各节点分别生成不同的区块链并广播至其他节点,这种异步生成区块的方式提高了区块生成的效率。在异步生成区块过程中,各节点生成的区块不相同,通过各节点分别将各自生成的区块广播,使各节点最终保存的区块一致,保证了异步生成区块最终各节点保存的区块具有一致性。
在一个实施例中,第一区块存储有已有区块的唯一表征值;唯一表征值,用于唯一表征当前节点所存储的全部区块链中的已有区块。
其中,已有区块,是已经生成的全部区块。
可以理解,由于唯一表征值,用于唯一表征当前节点所存储的全部区块链中的已有区块,所以,当当前节点所存储的全部区块链中的任意已有区块被篡改,该唯一表征值都会发生变化。需要说的是,唯一表征值可以是一组数值,也可以是单值,对此不做限定。
为了便于理解,现对唯一表征值进行解释说明。假设,当前区块A存储了全部节点的区块链,比如,存储了4条区块链,每条区块链上都有已有区块,那么,这个唯一表征值,则能够对这4条区块链的全部已有区块进行唯一性表示,一旦这4条区块链的任意已有区块被篡改,该唯一表征值都会发生变化。
本实施例中,第一区块存储有已有区块的唯一表征值,这样一旦其中任意一个已有区块的数据被篡改,该唯一表征值将会发生变化,导致其与第一区块存储的唯一表征值不一致,就会被及时发现。保证了区块链中各区块的数据的不可篡改性。
在一个实施例中,唯一表征值包括当前节点所存储的各区块链中的目标区块的哈希值。目标区块,是指未被第一区块链上的区块引用过哈希值的区块。
具体地,第一区块的唯一表征值可以是引用没有被第一区块链中的已有区块引用过的各区块链中的区块(目标区块)的哈希值。即,在当前节点生成第一区块的过程中,当当前节点存储的各区块链中的某些区块的哈希值已经被第一区块链中的已有区块引用过,则该待生成的第一区块可以不用再次引用这些区块的哈希值。即,每条区块链中的区块的哈希值被每条区块链中的区块至少引用一次。为了便于理解,下面举例说明。假设区块链系统中有A和B两个节点,其中,B节点已经生成了B1、B2和B3三个区块,A节点生成的区块链中的已有区块引用过B1的哈希值,而没有引用过B2和B3的哈希值,则当A节点生成区块时,待生成的区块要引用B2和B3的哈希值,不需要引用B1的哈希值。
本实施例中,当前节点生成的第一区块存储有当前节点所存储的各区块链中的未被引用过哈希值的区块的哈希值,保证了区块链中各区块的数据的不可篡改性。
在一个实施例中,将共识结果打包生成第一区块的步骤,具体包括如下步骤:根据共识结果,确定待生成的第一区块的哈希值;获取存储的各区块链中的目标区块的哈希值、当前区块高度和当前节点的标识;根据第一区块的哈希值、目标区块的哈希值、当前区块高度和当前节点的标识,确定第一区块的区块头;根据共识结果和区块头,生成第一区块。
具体地,当前节点根据共识结果,确定待生成的第一区块的哈希值,并获取存储的各区块链中的目标区块的哈希值、当前区块高度和当前节点的标识,然后根据第一区块的哈希值、各区块链中目标区块的哈希值、当前区块高度和当前节点的标识,确定第一区块的区块头。当前节点根据共识结果确定第一区块的区块体,然后根据区块头和区块体,生成第一区块。即,当前节点生成的第一区块的区块头中,包含该区块的哈希值、各区块链中的目标区块的哈希值、当前区块高度以及当前节点的标识,增加了节点的标识来与区块高度一起作为区块的唯一标识,即,对区块的唯一标识增加了一个维度的信息。其中,各区块链中的目标区块的哈希值存储于区块头中用于存储上一个区块的哈希值的字段处。
本实施例中,当前节点根据共识结果、第一区块的哈希值、各区块链中目标区块的哈希值、当前区块高度和当前节点的标识,生成第一区块。区块头中包含各区块链中目标区块的哈希值,保证了区块链中各区块的数据的不可篡改性。区块头中包含当前区块高度和当前节点的标识两个维度的标识信息,能够唯一表征区块,从而能够使各个节点异步地生成区块,从而提高生成区块的效率。
在一个实施例中,将第二区块添加至所存储的与非当前节点对应的第二区块链中的步骤,具体包括如下步骤:从第二区块中提取非当前节点的标识和区块高度;从当前节点所存储的区块链中,查找与非当前节点的标识对应的第二区块链;按照区块高度,将第二区块添加至第二区块链中。
具体地,第二区块的区块头中包含生成该区块的非当前节点的标识和该区块在第二区块链中的区块高度,当前节点从第二区块的区块头中提取非当前节点的标识和区块高度,根据非当前节点的标识,从当前节点所存储的区块链中,查找与非当前节点的标识对应的第二区块链,然后按照区块高度,将第二区块添加至第二区块链中的对应位置。
本实施例中,当前节点根据第二区块中的非当前节点的标识和区块高度,将第二区块添加至所存储的与非当前节点对应的第二区块链中的对应位置,能够在一条节点存储多条区块链来分别存储各区块链对应的节点生成的区块,从而能够使各个节点异步地生成区块,从而提高生成区块的效率。
如图3(b)所示,是一个实施例中区块生成方法的示意图。假设区块链系统中有如图3(b)所示的A、B、C、D四个节点,每个节点生成了三个区块。则每个节点生成的全部区块组成了一条区块链,图3中的四条区块链即为A、B、C、D四个节点各自生成的区块链。一个节点生成区块后存储并向其他各节点广播,因此,A、B、C、D四个节点中都存储这四条区块链。可以理解,由于每个节点存储的区块链都相同,所以,图3(b)仅示出一个节点中所存储的四条区块链进行举例说明。图中第一行的区块链为节点A生成的区块链,第二行的区块链为节点B生成的区块链,以此类推。从图中可以看出,每个区块的区块头中包含生成该区块的节点的标识(ID):A、B、C、D。每个区块的区块头中还包含该区块在其所在的区块链中的区块高度(height):1、2、3。每个区块的区块头中还包含字段(phash),可以存储各条区块链中未被引用过哈希值的区块(目标区块)的哈希值。每个区块的区块头中还包含存储当前区块的哈希值的字段(chash),可以存储该区块自身的哈希值。区块体可以存储区块中的数据(data),区块中的数据可以根据共识结果确定。根据区块体中的数据(data)可以看出,该方法最终生成的全部区块与传统方法生成的全部区块的数量和存储的数据是相同的,并没有增加存储体积和改变存储数据。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种区块生成装置400,该装置设置于区块链系统中的任一节点中。每个节点中皆存储有所述区块链系统中各节点所分别对应的区块链。每条区块链用于对应记录一个节点所产生的区块。该装置包括:第一区块生成模块402、第一区块存储模块404和第二区块存储模块406,其中:
第一区块生成模块402,用于将共识结果打包生成第一区块;第一区块携带当前节点的标识和当前区块高度。
第一区块存储模块404,用于按照标识和当前区块高度,将第一区块添加至当前节点所对应的第一区块链,并将第一区块广播至各非当前节点,以指示非当前节点将第一区块添加至非当前节点所存储的第一区块链中。
第二区块存储模块406,用于当接收到由非当前节点生成并广播至的第二区块时,将第二区块添加至所存储的与非当前节点对应的第二区块链中。
其中,当前节点生成第一区块和非当前节点生成第二区块的处理,属于异步处理。
在一个实施例中,第一区块存储有已有区块的唯一表征值。唯一表征值,用于唯一表征当前节点所存储的全部区块链中的已有区块。
在一个实施例中,唯一表征值包括当前节点所存储的各区块链中的目标区块的哈希值;目标区块,是指未被第一区块链上的区块引用过哈希值的区块。
在一个实施例中,第一区块生成模块402还用于根据共识结果,确定待生成的第一区块的哈希值;获取存储的各区块链中的目标区块的哈希值、当前区块高度和当前节点的标识;根据第一区块的哈希值、目标区块的哈希值、当前区块高度和当前节点的标识,确定第一区块的区块头;根据共识结果和区块头,生成第一区块。
在一个实施例中,第二区块存储模块406还用于从第二区块中提取非当前节点的标识和区块高度;从当前节点所存储的区块链中,查找与非当前节点的标识对应的第二区块链;按照区块高度,将第二区块添加至第二区块链中。
上述区块生成装置中,区块链系统中每个节点中皆存储有各节点所分别对应的区块链。区块链系统中的任一节点生成携带当前节点的标识和当前区块高度的第一区块,并按照节点标识和区块高度,将第一区块添加至当前节点所对应的第一区块链中,并将第一区块广播至非当前节点,非当前节点将第一区块添加至该非当前节点存储的第一区块链中。非当前节点异步地以同样的方式生成第二区块并广播。通过当前节点生成第一区块和非当前节点生成第二区块的异步处理,区块链系统中的一个节点不需要等待各节点协商完毕且生成一个区块才能生成下一个区块,提高了区块生成的效率,将生成的区块广播保证了异步生成区块过程中各节点存储的区块具有一致性。
关于区块生成装置的具体限定可以参见上文中对于区块生成方法的限定,在此不再赘述。上述区块生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储区块链数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种区块生成方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种区块生成方法,其特征在于,所述方法由区块链系统中的任一节点执行;每个节点中皆存储有所述区块链系统中各节点所分别对应的区块链;每条所述区块链用于对应记录一个节点所产生的区块;
所述方法包括:
根据共识结果,确定待生成的第一区块的哈希值;
获取存储的各区块链中的目标区块的哈希值、当前区块高度和当前节点的标识;所述目标区块,是指未被第一区块链上的区块引用过哈希值的区块;
根据所述第一区块的哈希值、所述目标区块的哈希值、所述当前区块高度和所述当前节点的标识,确定第一区块的区块头;
根据所述共识结果和所述区块头,生成第一区块;
按照所述标识和所述当前区块高度,将所述第一区块添加至当前节点所对应的第一区块链,并将所述第一区块广播至各非当前节点,以指示所述非当前节点将所述第一区块添加至所述非当前节点所存储的所述第一区块链中;
当接收到由所述非当前节点生成并广播至的第二区块时,将所述第二区块添加至所存储的与所述非当前节点对应的第二区块链中;
其中,所述当前节点生成第一区块和所述非当前节点生成第二区块的处理,属于异步处理。
2.根据权利要求1所述的方法,其特征在于,所述第一区块存储有已有区块的唯一表征值;所述唯一表征值,用于唯一表征所述当前节点所存储的全部区块链中的已有区块。
3.根据权利要求2所述的方法,其特征在于,所述唯一表征值包括所述当前节点所存储的各区块链中的所述目标区块的哈希值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述将所述第二区块添加至所存储的与所述非当前节点对应的第二区块链中包括:
从所述第二区块中提取所述非当前节点的标识和区块高度;
从当前节点所存储的区块链中,查找与所述非当前节点的标识对应的第二区块链;
按照所述区块高度,将所述第二区块添加至所述第二区块链中。
5.一种区块生成装置,其特征在于,所述装置设置于区块链系统中的任一节点中;每个节点中皆存储有所述区块链系统中各节点所分别对应的区块链;每条区块链用于对应记录一个节点所产生的区块;
所述装置包括:
第一区块生成模块,用于根据共识结果,确定待生成的第一区块的哈希值;获取存储的各区块链中的目标区块的哈希值、当前区块高度和当前节点的标识;根据所述第一区块的哈希值、所述目标区块的哈希值、所述当前区块高度和所述当前节点的标识,确定第一区块的区块头;根据共识结果和所述区块头,生成第一区块;所述目标区块,是指未被所述第一区块链上的区块引用过哈希值的区块;
第一区块存储模块,用于按照所述标识和所述当前区块高度,将所述第一区块添加至当前节点所对应的第一区块链,并将所述第一区块广播至各非当前节点,以指示所述非当前节点将所述第一区块添加至所述非当前节点所存储的所述第一区块链中;
第二区块存储模块,用于当接收到由所述非当前节点生成并广播至的第二区块时,将所述第二区块添加至所存储的与所述非当前节点对应的第二区块链中;
其中,所述当前节点生成第一区块和所述非当前节点生成第二区块的处理,属于异步处理。
6.根据权利要求5所述的装置,其特征在于,所述第一区块存储有已有区块的唯一表征值;所述唯一表征值,用于唯一表征所述当前节点所存储的全部区块链中的已有区块。
7.根据权利要求6所述的装置,其特征在于,所述唯一表征值包括所述当前节点所存储的各区块链中的所述目标区块的哈希值。
8.根据权利要求5至7中的任一项所述的装置,其特征在于,所述第二区块存储模块还用于从所述第二区块中提取所述非当前节点的标识和区块高度;从当前节点所存储的区块链中,查找与所述非当前节点的标识对应的第二区块链;按照所述区块高度,将所述第二区块添加至所述第二区块链中。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202010195908.8A 2020-03-19 2020-03-19 区块生成方法、装置、计算机设备和存储介质 Active CN111522873B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010195908.8A CN111522873B (zh) 2020-03-19 2020-03-19 区块生成方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010195908.8A CN111522873B (zh) 2020-03-19 2020-03-19 区块生成方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111522873A CN111522873A (zh) 2020-08-11
CN111522873B true CN111522873B (zh) 2023-09-05

Family

ID=71910396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010195908.8A Active CN111522873B (zh) 2020-03-19 2020-03-19 区块生成方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111522873B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112417038B (zh) * 2020-11-10 2021-07-13 深圳百纳维科技有限公司 一种基于海洋运输的异步区块构造方法、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107622096A (zh) * 2017-08-31 2018-01-23 上海保险交易所股份有限公司 基于区块链系统的异步多方数据交互方法和存储介质
CN109978516A (zh) * 2019-03-06 2019-07-05 西安电子科技大学 区块链网络中区块的制造和同步方法、信息数据处理终端
CN110399424A (zh) * 2018-04-23 2019-11-01 百度在线网络技术(北京)有限公司 区块生成方法、装置、区块链节点及存储介质
CN110633323A (zh) * 2019-09-16 2019-12-31 腾讯科技(深圳)有限公司 业务数据存储方法、装置、存储介质和计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113518005B (zh) * 2021-06-22 2021-11-16 腾讯科技(深圳)有限公司 一种区块共识方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107622096A (zh) * 2017-08-31 2018-01-23 上海保险交易所股份有限公司 基于区块链系统的异步多方数据交互方法和存储介质
CN110399424A (zh) * 2018-04-23 2019-11-01 百度在线网络技术(北京)有限公司 区块生成方法、装置、区块链节点及存储介质
CN109978516A (zh) * 2019-03-06 2019-07-05 西安电子科技大学 区块链网络中区块的制造和同步方法、信息数据处理终端
CN110633323A (zh) * 2019-09-16 2019-12-31 腾讯科技(深圳)有限公司 业务数据存储方法、装置、存储介质和计算机设备

Also Published As

Publication number Publication date
CN111522873A (zh) 2020-08-11

Similar Documents

Publication Publication Date Title
CN109345388B (zh) 区块链智能合约验证方法、装置及存储介质
CN108961052B (zh) 区块链数据的验证方法、存储方法、装置、设备和介质
CN110245956B (zh) 一种基于异步多链的区块链交易确认方法及系统
CN110351357B (zh) 服务器限流方法、装置、计算机设备以及存储介质
CN111625593B (zh) 基于区块链的数据处理方法、装置、计算机设备
US20200322159A1 (en) Method for index-based and integrity-assured search in a blockchain
CN111522874B (zh) 区块链共识方法、装置、计算机设备和存储介质
CN110989922B (zh) 一种分布式数据存储方法及系统
CN111400246B (zh) 异步导入文件方法、装置、计算机设备和存储介质
CN112015674A (zh) 基于多层级的缓存资源访问方法、装置和计算机设备
CN113961908B (zh) 数据存证方法、装置、计算机设备和存储介质
CN111522873B (zh) 区块生成方法、装置、计算机设备和存储介质
CN114138468B (zh) 一种封装任务量自适应分配方法、装置及存储介质
CN108133026B (zh) 一种多数据的处理方法、系统及存储介质
CN108389124B (zh) 数据处理方法、装置、计算机设备和存储介质
CN111405027B (zh) 区块链共识结果筛选方法、装置、计算机设备和存储介质
US10212036B2 (en) Performance testing method, performance testing apparatus performing the same and storage medium storing the same
CN111510484B (zh) 区块链处理方法、系统、装置、计算机设备和存储介质
CN114513498B (zh) 文件传输校验方法、装置、计算机设备和存储介质
CN114745173B (zh) 登陆验证方法、装置、计算机设备和存储介质
CN110611568A (zh) 基于多种加解密算法的动态加解密方法、装置、及设备
CN115221244A (zh) 区块链跨链方法、装置、计算机设备和存储介质
CN112487094B (zh) 能源区块数据的同步方法、装置、计算机设备和存储介质
CN111241005A (zh) 一种基于键值对的安全分区存储方法及系统
CN111242778A (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