CN110235162B - 区块链***数据处理方法和区块的生成方法 - Google Patents

区块链***数据处理方法和区块的生成方法 Download PDF

Info

Publication number
CN110235162B
CN110235162B CN201980000562.7A CN201980000562A CN110235162B CN 110235162 B CN110235162 B CN 110235162B CN 201980000562 A CN201980000562 A CN 201980000562A CN 110235162 B CN110235162 B CN 110235162B
Authority
CN
China
Prior art keywords
chain
block
hash
transaction
sub
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
CN201980000562.7A
Other languages
English (en)
Other versions
CN110235162A (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.)
Xiamen Tehua Rong Trading Co ltd
Original Assignee
Xiamen Tehua Rong Trading 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 Xiamen Tehua Rong Trading Co ltd filed Critical Xiamen Tehua Rong Trading Co ltd
Publication of CN110235162A publication Critical patent/CN110235162A/zh
Application granted granted Critical
Publication of CN110235162B publication Critical patent/CN110235162B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/3827Use of message hashing
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Technology Law (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本申请实施例公开了一种区块链***数据处理方法和区块的生成方法。所述生成方法包括获取本链标识、前哈希、父哈希、子哈希和未被打包的交易列表;所述本链标识用于标记本区块所属的链;所述前哈希用于指向本链的前一个区块;所述父哈希用于指向父链的区块;所述子哈希用于指向子链的区块;所述未被打包的交易列表的每条交易携带的链标识均为所述本链标识,以使每条链里的交易列表都只包含本链的交易;将所述本链标识、所述前哈希、所述父哈希、所述子哈希和所述未被打包的交易列表按照区块格式填充,以生成新的区块。所述数据处理方法包括所述生成方法。本申请可提升整个区块链***的处理能力,从而提升***的TPS。

Description

区块链***数据处理方法和区块的生成方法
技术领域
本申请涉及区块链技术领域,特别涉及一种区块链***数据处理方法和区块的生成方法。
背景技术
区块链技术也称为分布式账本技术,是一种分布式互联网数据库技术。基于区块链技术构建的网络可以称之为区块链网络。区块链网络(或者区块链技术)具备去中心化、公开透明、不可篡改和可信任等特点。
区块链技术有三个基本概念:
交易(Transaction):一次对账本的操作,导致账本状态的一次改变,比如添加一条转账记录;
区块(Block):记录一段时间内发生的所有交易和状态结果等,是对当前账本状态的一次共识;
链(Chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。
区块的结构包括前哈希(Pre Hash)、区块的其它信息(Meta Data)和交易列表(Transactions)。区块链的数据结构是链式数据结构。
链式数据结构方便分布式***中节点之间的数据同步,以区块为力度同步;最新的一个区块包含前一块的哈希(hash)值,修改中间任何一个字符,将导致哈希改变,无法验证通过,因此具有不可篡改的特点。但由于是串行数据,数据的校验必须是串行的,使得整个***的处理能力有限;只能通过修改区块时间间隔或者区块大小进行扩容,扩容能力有限;这制约着区块链的使用场景。
TPS(Transactions Per Second)又称“***的吞吐量”,即“***每秒钟能够处理的交易数量”。
当前的区块链***,一个***由一条链组成。这样的区块链***的TPS的值太低。基于2018年之前的历史数据看,主流的3个区块链***的TPS:比特币的TPS约为3至7笔,以太坊的TPS约为15至30笔,EOS的TPS约为1000至3000笔。可是,随便一个单线程***,其处理能力都远高于该数值。
发明内容
本申请提出一种区块链***数据处理方法和区块的生成方法,在满足区块链技术的情况下,可支持数据的并发处理,从而提升整个区块链***的处理能力。
在第一方面,本申请一种区块的生成方法,包括:
获取本链标识、前哈希、父哈希、子哈希和未被打包的交易列表;
所述本链标识用于标记本区块所属的链;
所述前哈希用于指向本链的前一个区块;
所述父哈希用于指向父链的区块;
所述子哈希用于指向子链的区块;
所述未被打包的交易列表的每条交易携带的链标识均为所述本链标识,以使每条链里的交易列表都只包含本链的交易;
将所述本链标识、所述前哈希、所述父哈希、所述子哈希和所述未被打包的交易列表按照区块格式填充,以生成新的区块。
在一些优选的实施方式中,获取所述前哈希包括:选取一条链,获取所述一条链的最后一个区块的哈希作为所述前哈希;
获取所述父哈希包括:如果本区块所属的链存在父链,则获取本区块指向父链的区块的哈希作为所述父哈希;
获取所述子哈希包括:如果本区块所属的链存在子链,则获取本区块指向子链的区块的哈希作为所述子哈希。
在一些优选的实施方式中,所述获取本区块指向父链的区块的哈希作为所述父哈希具体为:
将父链的最后一个区块的哈希作为所述父哈希;
或者,将父链中时间戳与本区块的时间戳的差值在门限时间差值内的区块的哈希作为所述父哈希。
在一些优选的实施方式中,所述获取本区块指向子链的区块的哈希作为所述子哈希具体为:
将子链中时间戳与本区块的时间戳的差值在门限时间差值内的区块的哈希作为所述子哈希。
在一些优选的实施方式中,还包括:获取区块的其它信息,也将所述其它信息按照区块格式填充,以生成所述新的区块。
在第二方面,本申请提供一种区块链***数据处理方法,包括:
验证新的区块的哈希是否合法;
验证所述新的区块的前哈希是否正确;
验证所述新的区块的父哈希和子哈希是否满足第一验证条件;
对所述新的区块的交易列表中的交易进行验证;
根据所述父哈希对父链进行查询,如果有从父链转入数据的交易,且所述从父链转入数据的交易所属的区块在所述父哈希所属的区块之前,则修改指定账户的数据;
根据所述子哈希对子链进行查询,如果有从子链转入数据的交易,且所述从子链转入数据的交易所属的区块在所述子哈希所属的区块之前,则修改指定账户的数据。
在一些优选的实施方式中,所述验证所述新的区块的父哈希和子哈希是否满足第一验证条件包括:
判断所述父哈希所属的区块的时间戳与所述新的区块的时间戳的差值是否在门限时间差值内;判断所述子哈希所属的区块的时间戳与所述新的区块的时间戳的差值是否在门限时间差值内。
在一些优选的实施方式中,所述对所述新的区块的交易列表中的交易进行验证包括:基于交易的操作码处理交易。
在一些优选的实施方式中,所述基于交易的操作码处理交易包括转账交易、跨链转移数据交易和创建新链交易。
在一些优选的实施方式中,所述对所述新的区块的交易列表中的交易列表进行验证还包括:
验证交易的数字签名是否合法;
验证交易携带的链标识是否与所述新的区块的本链标识是否一致;
验证是否支持交易的操作码;
验证数字货币的来源是否正确以及数量是否正确。
在一些优选的实施方式中,还包括:若某一个区块被丢弃,则也丢弃以所述某一个区块作为子哈希或者父哈希的区块。
在一些优选的实施方式中,包括上述生成方法。
在第三方面,本申请还提供一种区块链***数据处理方法,包括:为一条链创建一条或者多条子链;上述生成方法。
在第四方面,本申请提供一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
所述一个或多个程序可被所述一个或多个处理器执行,以实现上述方法。
在第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有程序指令,所述程序指令被计算机的处理器执行时使所述处理器执行上述方法。
与现有技术相比,本申请的有益效果有:
对区块的结构进行改进,使得区块链***包括多条并行的链。父哈希和子哈希可保证区块链***的可追溯性。如此,根据区块的父哈希和子哈希可分别对父链和子链中相关区块的交易进行查询并可依据查询结果修改数据。允许计算节点通过不同的区块进行并发交易,可将数据的串行处理改为并行处理,可提升整个区块链***的处理能力,从而提升***的TPS。
附图说明
图1为本申请第一实施例的区块链***的结构示意图;
图2为本申请第一实施例的链与链的逻辑关系图;
图3示出本申请第一实施例的区块结构;
图4为本申请第一实施例的区块的生成方法的流程图;
图5示出本申请第一实施例的区块链***的区块链数据结构;
图6为本申请第一实施例的区块链***数据处理方法的流程图;
图7示出本申请第一实施例的区块链***的另一种区块链数据结构;
图8示出本申请第一实施例的区块链***的第三种区块链数据结构;
图9为本申请第二实施例的步骤S11的流程图;
图10为本申请第三实施例的计算机设备的结构示意图。
具体实施方式
为了使本申请实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合图1至图10及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多该特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
第一实施例
本实施例的区块链***包括多个单元,参考图1,具体包括数据同步单元1、交易处理单元2、区块生成单元3、区块处理单元4、交易生成单元5和存储单元6。
数据同步单元1:用于将交易或区块共享给其它计算节点;或者用于从其它计算节点获取新的交易和区块,将新的区块或交易(包括自身创建的或者从其它节点获取到的)发给所有相连的计算节点。
交易处理单元2:用于在区块合法时,处理区块里的交易。
区块生成单元3:用于生成新区块。区块处理单元4:用于验证区块是否合法。
交易生成单元5:用于根据用户的操作,创建指定的交易(如转账操作),并通过数据同步单元将交易发送给其它计算节点。
存储单元6:用于存储区块数据、未打包的交易数据、***运行产生的数据。
本实施例提供一种区块链***数据处理方法,该方法包括区块的生成方法。区块的生成方法也可以称为区块链的扩容方法。在本实施例中,区块的生成方法由区块生成单元3执行。
本实施例的区块链***初始时只有一条链,但这一条链可以根据需要新增子链,从而在***中存在父链和子链,且每条链都可以根据需要新增子链,使得区块链***包括多条链。具体的,某条链a创建了一条新链b,则称链a为链b的父链,称链b为链a的子链。
如果一条链只允许一条子链,那么在整个***中,链与链的逻辑关系图就是一个链表的形状了。参考图2,如果一条链可以创建两条子链,那么链与链的逻辑关系图就是一个二叉树的形状。如果一条链可以创建三条子链,那么链与链的逻辑关系图就是三叉树的形状。
在本实施例中,父链和子链的区块的结构是相同的。参考图3,本实施例的区块结构包括本链标识、前哈希(Pre Hash)、父哈希(Parent Hash)、子哈希(Child Hash)、区块的其它信息(Meta Data)和交易列表(Transactions)。
为生成具有上述区块结构的区块,参考图4,本实施例的区块的生成方法包括步骤S1至步骤S7。
步骤S1、获取本链标识。
链标识(Chain ID)是区块链***中链的标识,是独一无二的。
本链标识用于标识本区块所属的链。本区块是指将要新增的区块。本区块所属的链是指将要新增的区块所归属的链,可以随机选取整个***中的一条链。整个***可以很有多条链,不同的链有不同的链标识。在本实施例中,本链是***第二条链。如此,本链标识为***第二条链的标识,其中,第二条链是***第一条链的子链。
在本实施例中,新链的链标识为父链ID*2或ID*2+1。对于子链的数量和ID生成规则,只要使得链标识不冲突即可。参考图5,第一条链C1的本链标识等于1,第二条链C2的本链标识等于2。
步骤S2、获取前哈希。
前哈希用于指向本链的前一个区块。在本实施例中本链为***第二条链。获取前哈希就是将第二条链的最后一个区块的哈希(Hash)作为前哈希。
前哈希的值必须指向前一个区块,所以它的值是唯一的。
步骤S3、获取父哈希。
父哈希用于指向父链的区块。***的第一条链没有父链,父哈希的值为空。此外,链的第一个区块的父哈希也可以为空。在本实施例中,本区块所属的链为第二条链,是存在父链的。第二条链的父链为第一条链。本区块指向第一条链的区块,可以是指向第一条链的最后一个区块,也可以是指向第一条链中时间戳与本区块的时间戳的差值在门限时间差值内的区块。门限时间差值为一个值,也可以为一个范围。在本实施例中,门限时间差值为小于或等于1个小时。
因此,获取父哈希就是将本区块指向第一条链的区块的哈希作为父哈希。
步骤S4、获取子哈希。
子哈希用于指向子链的区块。本区块可以是指向子链中时间戳与本区块的时间戳的差值在门限时间差值内的区块。门限时间差值为一个值,也可以为一个范围。在本实施例中,门限时间差值为小于或等于1个小时。
因此,如果本区块所属的链存在子链,获取子哈希就是将本区块指向子链的区块的哈希作为子哈希。
在本链也即第二条链还没创建子链时,子哈希的值为空。
对于第一条链C1,参考图5,第一条链C1创建了子链也即第二条链C2。第一条链C1包括区块Bi、区块Bi+1和区块Bi+2。第二条链C2包括区块B1、区块B2和区块B3。第二条链C2是基于第一条链C1的区块Bi创建的,区块Bi中的子哈希就是第二条链C2的第一个区块。在第一条链C1中,区块Bi之后的区块的子哈希的值为非空。
区块的校验:子哈希的区块存在子链中。参考图5,第一条链C1的区块Bi+2指向第二条链C2的区块B2。
区块的校验:父哈希的区块存在父链中。参考图5,第二条链C2的区块B3指向第一条链C1的区块Bi+1。
参考图5,子哈希和父哈希的指向使用虚线,表示它的值不是唯一的。具体的,第一条链中区块Block i+2的子哈希可以是第二条链中的区块Block1,也可以是区块Block2。
子哈希和父哈希的限定条件为:当前区块的时间戳t1和目标区块的时间戳t2的差值在门限时间差值内;在本实施例中,时间戳t1与时间戳t2时间差范围为0至1小时。不同的区块会在不同的时间完成处理交易。这样做的好处是不同链之间可以高效、有序地并发处理数据。
步骤S5、获取未被打包的交易列表。
若交易列表中包含有交易,则每条交易都携带所属链的链标识。未被打包的交易列表的每条交易携带的链标识均为本链标识也即第二条链的链标识,以使每条链里的交易列表都只包含本链的交易。
交易里的链标识等于本区块的链标识,使交易明确归属于不同的链,方便并发校验交易的有效性。
步骤S6、获取区块的其它信息。也即,获取将要生成的区块的其它信息。其它信息包括但不限于版本信息和时间戳。
区块的其它信息对于区块结构来说是可选的。
步骤S7、将本链标识、前哈希、父哈希、子哈希、区块的其它信息和未被打包的交易列表按照区块格式填充,生成新的区块。新的区块可以是***的第一个区块,也可以是第一个区块之后的区块。
生成新的区块后,将新的区块共享给所有计算节点。
为对接收到的新的区块进行处理,参考图6,本实施例的区块链***数据处理方法还包括步骤S8至步骤S13。在本实施例中,步骤S8至步骤S13由区块处理单元4执行。
步骤S8、验证新的区块的哈希是否合法。
数据同步单元1收到新的区块后,由区块处理单元4验证该区块的哈希是否合法,若哈希不合法,则该区块也不合法。每一个区块自身的哈希需满足一定的条件,具体可根据***需要来设定条件。
步骤S9、验证新的区块的前哈希是否正确。
也即验证第二链中新的区块的前一个区块的哈希是否正确。如不正确,则该新的区块不合法。
步骤S10、验证新的区块的父哈希和子哈希是否满足第一验证条件。
步骤S10具体包括:父哈希所属的区块的时间戳与新的区块的时间戳的差值是否在门限时间差值内,若否,则验证失败;子哈希所属的区块的时间戳与新的区块的时间戳的差值是否在门限时间差值内,若否,则验证失败。那么,第一验证条件为:父哈希所属的区块的时间戳与新的区块的时间戳的差值是否在门限时间差值内,以及子哈希所属的区块的时间戳与新的区块的时间戳的差值是否在门限时间差值内。
对于新的区块的父哈希还可以这样验证:父哈希所属的区块是否为父哈希所属的区块所属父链的最后一个区块,若否,则验证失败。那么,对于新的区块的父哈希,第一验证条件为:父哈希所属的区块是否为父哈希所属的区块所属父链的最后一个区块。
若哈希不存在或差值不在门限时间差值内,则都验证失败。
步骤S11、对新的区块的交易列表中的交易进行验证。
对交易进行验证是为了后续处理区块的交易。
步骤S12、根据父哈希对父链进行查询,如果有从父链转入数据的交易,且从父链转入数据的交易所属的区块在父哈希所属的区块之前,则修改指定账户的数据。
具体的,根据新的区块的父哈希对第一条链进行查询,如果有从第一条链转入数据的交易,具体为有从第一条链到本链的转账,且该交易所属的区块位于父哈希所属的区块之前,则修改指定账户的数据,具体为给指定账户增加指定的数字货币。
步骤S13、根据子哈希对子链进行查询,如果有从子链转入数据的交易,且从子链转入数据的交易所属的区块在子哈希所属的区块之前,则修改指定账户的数据。
参考图7,在本实施例中,本链也即第二条链C2的子链为***第三条链C3。具体的,根据新的区块的子哈希对第三条链C3进行查询,如果有从第三条链C3转入数据的交易,具体为有从第三条链C3到本链的转账,且该交易所属的区块位于子哈希所属的区块之前,则修改指定账户的数据,具体为给指定账户增加指定的数字货币。
现有的区块链虽然是分布式的,仅仅是数据的分发是分布式的,数据的处理是每个计算节点都需要处理的。由于是单链式结构,为保证所有节点处理结果的一致性,只能串行处理数据。区块链的TPS依赖于区块大小、区块生成时间及串行处理能力。
为提升区块链***的处理能力,可通过某种方式对区块链进行扩容,比如改变区块大小限制和加快区块生成速度等方法都能够对区块链进行扩容。传统的扩容方法仅仅是调整区块的大小限制和调整区块生成时间,性能提升有限。
相比之下,本实施例对区块的结构进行改进,使得区块链***包括多条并行的链。父哈希和子哈希可保证区块链***的可追溯性。如此,根据区块的父哈希和子哈希可分别对父链和子链中相关区块的交易进行查询并可依据查询结果修改数据。允许计算节点通过不同的区块进行并发交易,可将数据的串行处理改为并行处理,可提升整个区块链***的处理能力,从而提升***的TPS。
在本实施例的区块链***中,如果链标识的位数为64位,那么整个***可以拥有2^64条链。如果一条链的TPS为7,那么整个***的TPS极限为7*2^64。***的TPS极限随链标识位数增加而呈指数级增长。如果***使用以太坊、EOS(Enterprise Operation System,商用分布式设计区块链操作***)等优化技术,TPS极限还能继续提升。
本实施例是对区块链的共识算法进行叠加增强。
对无效区块的校验进行说明。
如图8,第二条链C2的区块B2’在刚生成的时候也是一个有效的区块,只是随着时间推移,基于共识最终被放弃,导致第一条链C1的区块Bi+2是不被承认的区块。区块Bi+2的子哈希是第二条链C2中的区块B2’,所以区块Bi+2也被丢弃。如果第二条链C2中的某个区块的父哈希为区块Bi+2,那么该某个区块也将被丢弃。
第二实施例
参考图9,步骤S11对新的区块的交易列表中的交易进行验证具体包括步骤S111至步骤S115。在本实施例中,步骤S11由交易处理单元2执行。
步骤S111、验证交易的数字签名是否合法。
步骤S112、验证交易携带的链标识是否与新的区块的本链标识是否一致。也即验证交易的链标识和区块的链标识是否一致。
步骤S113、验证是否支持交易的操作码。
每个交易都有相应的数字签名和操作码等信息。操作码用于处理交易。默认的操作码是转账交易码。如果支持,则基于操作码处理交易。
步骤S114、验证数字货币的来源是否正确以及数量是否正确。
步骤S115、基于交易的操作码处理交易。
本实施例的操作码包括但不限于转账交易码、跨链转移数据码和创建子链码。相应的,可处理的交易包括转账交易、跨链转移数据交易和创建新链交易。
转账交易:修改转入账户和转出账户的数字货币数量。
跨链转移数据交易,以跨链转账为例进行说明:
验证目标链的链标识是否合法,如果目标链还不存在,属于不合法操作;
扣除转出账户的数字货币;
在目标链(父链或子链)中,增加一条转入数据的记录,等待目标链处理该记录。
对本实施例的跨链转移数据交易进行具体说明。
用户创建一条交易,要把第一条链C1上的代币转移到第二条链C2上。参考图5,交易被区块Bi+1确认收录,扣除用户的相应代币。第二条链C2的区块B3指向第一条链C1的区块Bi+1,发现有转到第二条链C2的交易,***自动在第二条链C2上为用户增加相应的代币。第二条链C2的区块B2只依赖区块Bi,所以区块B2中,用户还没有代币,只有到区块B3时,才有代币。这样就做到了跨链转移数据。
创建新链交易具体包括:
验证条件是否满足;在本实施例中,需要花费一定数量的数字货币才允许创建新链;
验证新链的链标识是否合法;在本实施例中,新链的链标识除以2要等于本链的链标识;
验证新链的链标识是否已经存在,如果存在就忽略交易;
如果上述验证均通过,则创建指定的新链。
第三实施例
参考图10,本实施例提供一种计算机设备,该计算机设备包括:一个或多个处理器7,以及存储器8。存储器8用于存储一个或多个程序。
一个或多个程序可被一个或多个处理器7执行,从而实现上述实施例的方法。
本领域普通技术人员可以理解实施例方法中的全部或部分流程可以由计算机程序来命令相关的硬件完成,程序可存储于计算机可读取存储介质中,程序在执行时,可包括如各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上内容是结合具体/优选的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本申请的保护范围。

Claims (10)

1.一种区块的生成方法,其特征在于包括:
获取本链标识、前哈希、父哈希、子哈希和未被打包的交易列表;
所述本链标识用于标记本区块所属的本链,所述本链标识是独一无二的,所述本区块是指要新增的区块,所述本区块所属的本链是指将要新增的区块所归属的本链,所述本链是随机选取整个***中的一条链;
所述前哈希用于指向本链的前一个区块,所述前哈希的值是唯一的;
所述父哈希用于指向父链的区块,所述父哈希的值不是唯一的;
所述子哈希用于指向子链的区块,所述子哈希的值不是唯一的;
所述未被打包的交易列表的每条交易携带的链标识均为所述本链标识,以使每条链里的交易列表都只包含本链的交易;
将所述本链标识、所述前哈希、所述父哈希、所述子哈希和所述未被打包的交易列表按照区块格式填充,以生成新的区块,使得区块链***包括多条并行的链,所述父哈希和所述子哈希保证区块链***的可追溯性,根据区块的父哈希和子哈希可分别对父链和子链中相关区块的交易进行查询并可依据查询结果修改数据,并允许计算节点通过不同的区块进行并发交易,将数据的串行处理改为并行处理。
2.根据权利要求1所述的生成方法,其特征在于,
获取所述前哈希包括:选取一条链,获取所述一条链的最后一个区块的哈希作为所述前哈希;
获取所述父哈希包括:如果本区块所属的链存在父链,则获取本区块指向父链的区块的哈希作为所述父哈希;
获取所述子哈希包括:如果本区块所属的链存在子链,则获取本区块指向子链的区块的哈希作为所述子哈希。
3.根据权利要求2所述的生成方法,其特征在于,
所述获取本区块指向父链的区块的哈希作为所述父哈希具体为:
将父链的最后一个区块的哈希作为所述父哈希;
或者,将父链中时间戳与本区块的时间戳的差值在门限时间差值内的区块的哈希作为所述父哈希;
所述获取本区块指向子链的区块的哈希作为所述子哈希具体为:
将子链中时间戳与本区块的时间戳的差值在门限时间差值内的区块的哈希作为所述子哈希。
4.一种区块链***数据处理方法,其特征在于包括:
验证根据权利要求1所述的区块的生成方法生成的新的区块的哈希是否合法;
验证所述新的区块的前哈希是否正确;
验证所述新的区块的父哈希和子哈希是否满足第一验证条件;
对所述新的区块的交易列表中的交易进行验证;
根据所述父哈希对父链进行查询,如果有从父链转入数据的交易,且所述从父链转入数据的交易所属的区块在所述父哈希所属的区块之前,则修改指定账户的数据;
根据所述子哈希对子链进行查询,如果有从子链转入数据的交易,且所述从子链转入数据的交易所属的区块在所述子哈希所属的区块之前,则修改指定账户的数据。
5.根据权利要求4所述的区块链***数据处理方法,其特征在于所述验证所述新的区块的父哈希和子哈希是否满足第一验证条件包括:
判断所述父哈希所属的区块的时间戳与所述新的区块的时间戳的差值是否在门限时间差值内;判断所述子哈希所属的区块的时间戳与所述新的区块的时间戳的差值是否在门限时间差值内。
6.根据权利要求4或5所述的区块链***数据处理方法,其特征在于所述对所述新的区块的交易列表中的交易列表进行验证包括:基于交易的操作码处理交易;所述基于交易的操作码处理交易包括转账交易、跨链转移数据交易和创建新链交易。
7.根据权利要求4所述的区块链***数据处理方法,其特征在于:包括根据权利要求1至3任一项所述生成方法。
8.一种区块链***数据处理方法,其特征在于包括:
根据权利要求1至3任一项所述的生成方法为一条链创建一条或者多条子链。
9.一种计算机设备,其特征在于所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
所述一个或多个程序可被所述一个或多个处理器执行,以实现根据权利要求1至7任一项所述方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有程序指令,所述程序指令被计算机的处理器执行时使所述处理器执行根据权利要求1至7任一项所述方法。
CN201980000562.7A 2019-04-30 2019-04-30 区块链***数据处理方法和区块的生成方法 Active CN110235162B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/085154 WO2020220251A1 (zh) 2019-04-30 2019-04-30 区块链***数据处理方法和区块的生成方法

Publications (2)

Publication Number Publication Date
CN110235162A CN110235162A (zh) 2019-09-13
CN110235162B true CN110235162B (zh) 2023-10-31

Family

ID=67855273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980000562.7A Active CN110235162B (zh) 2019-04-30 2019-04-30 区块链***数据处理方法和区块的生成方法

Country Status (2)

Country Link
CN (1) CN110235162B (zh)
WO (1) WO2020220251A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111061735B (zh) * 2019-12-13 2023-07-25 度小满科技(北京)有限公司 一种基于单链区块链的扩容方法及装置
CN111506658B (zh) * 2020-04-17 2021-09-28 腾讯科技(深圳)有限公司 数据处理方法、装置、第一设备及存储介质
CN112651044B (zh) * 2020-12-29 2024-03-01 杭州趣链科技有限公司 基于区块链技术的业务交易方法、***及存储介质
CN114153658A (zh) * 2021-11-22 2022-03-08 成都飞机工业(集团)有限责任公司 工业设备的数据存储方法、装置、终端设备以及存储介质
CN115460222A (zh) * 2022-09-05 2022-12-09 蚂蚁区块链科技(上海)有限公司 区块链数据流计算装置
CN115580621B (zh) * 2022-09-08 2024-02-27 中国联合网络通信集团有限公司 区块链跨链业务处理方法、节点、介质及区块链

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105809420A (zh) * 2016-03-08 2016-07-27 杭州复杂美科技有限公司 多层区块链的清算方法
CN107464112A (zh) * 2017-07-20 2017-12-12 捷德(中国)信息科技有限公司 基于区块链的交易管理方法及***
CN109033422A (zh) * 2018-08-08 2018-12-18 云南天之游科技股份有限公司 一种生成区块链的方法、装置及区块链
CN109460530A (zh) * 2018-10-18 2019-03-12 尚维斯 一种区块链子链地址注册方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822927B1 (en) * 2007-05-14 2010-10-26 Emc Corporation Dynamically configurable reverse DNLC lookup
CN108462582B (zh) * 2018-02-09 2020-03-27 北京欧链科技有限公司 区块链中的反馈处理方法和装置
CN108512649B (zh) * 2018-02-09 2021-09-10 北京欧链科技有限公司 区块链的反向哈希链接的处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105809420A (zh) * 2016-03-08 2016-07-27 杭州复杂美科技有限公司 多层区块链的清算方法
CN107464112A (zh) * 2017-07-20 2017-12-12 捷德(中国)信息科技有限公司 基于区块链的交易管理方法及***
CN109033422A (zh) * 2018-08-08 2018-12-18 云南天之游科技股份有限公司 一种生成区块链的方法、装置及区块链
CN109460530A (zh) * 2018-10-18 2019-03-12 尚维斯 一种区块链子链地址注册方法

Also Published As

Publication number Publication date
WO2020220251A1 (zh) 2020-11-05
CN110235162A (zh) 2019-09-13

Similar Documents

Publication Publication Date Title
CN110235162B (zh) 区块链***数据处理方法和区块的生成方法
CN109345388B (zh) 区块链智能合约验证方法、装置及存储介质
CN109242500B (zh) 区块链交易有效性验证方法、装置及存储介质
CN113329031B (zh) 一种区块的状态树的生成方法及装置
US11973869B2 (en) Maintaining blocks of a blockchain in a partitioned blockchain network
CN109034809B (zh) 区块链的生成方法、装置、区块链节点及存储介质
JP7184959B2 (ja) ネットワーク内の分散データベースのための方法及び装置
CN107392608B (zh) 基于区块链***的数字资产交易方法及区块链***
CN109313654B (zh) 使用布隆过滤器对被许可的区块链进行去同步恢复的方法和***
CN109313752B (zh) 使用审计保证形成用于被许可的区块链的高效共识机制的方法和***
TWI706278B (zh) 基於區塊鏈的交易處理方法及裝置、電子設備
CN109033422B (zh) 一种生成区块链的方法、装置及区块链
CN111008201B (zh) 并行修改和读取状态树的方法和装置
CN108984789B (zh) 分布式记账的方法、装置、存储介质及电子设备
CN109766389B (zh) 一种基于位图索引的区块链轻客户端验证查询方法
CN113704252B (zh) 规则引擎决策树实现方法、装置、计算机设备及计算机可读存储介质
CN114281793A (zh) 数据校验方法、装置和***
CN111698094A (zh) 一种基于区块链***的共识方法及区块链***
CN112286963A (zh) 一种区块链终端数据可信查询***及其实现方法
CN109324901B (zh) 基于区块链的深度学习分布式计算方法、***和节点
CN109993526B (zh) 区块链校验方法、处理节点及存储介质
CN111951112A (zh) 基于区块链的智能合约执行方法、终端设备和存储介质
CN113743949B (zh) 在区块链中执行交易的方法、区块链、主节点和从节点
CN118176694A (zh) 用于分布式区块链功能的方法和***
CN115048462A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40026200

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant