CN111639939A - 区块还原方法、设备和存储介质 - Google Patents

区块还原方法、设备和存储介质 Download PDF

Info

Publication number
CN111639939A
CN111639939A CN202010511278.0A CN202010511278A CN111639939A CN 111639939 A CN111639939 A CN 111639939A CN 202010511278 A CN202010511278 A CN 202010511278A CN 111639939 A CN111639939 A CN 111639939A
Authority
CN
China
Prior art keywords
transaction
block
queue
hash
transactions
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.)
Pending
Application number
CN202010511278.0A
Other languages
English (en)
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.)
Hangzhou Fuzamei Technology Co Ltd
Original Assignee
Hangzhou Fuzamei Technology 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 Hangzhou Fuzamei Technology Co Ltd filed Critical Hangzhou Fuzamei Technology Co Ltd
Priority to CN202010511278.0A priority Critical patent/CN111639939A/zh
Publication of CN111639939A publication Critical patent/CN111639939A/zh
Pending legal-status Critical Current

Links

Images

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/3825Use of electronic signatures
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种区块还原方法、设备和存储介质,该方法包括:接收第一交易,在第一队列中存在与第一交易的交易哈希相同、签名不同的交易时,将第一交易存入第二队列;接收第一数据集合;根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块,计算所还原的第一区块的第一状态哈希;在第一状态哈希与第一区块头中的第二状态哈希不同时,根据第一交易哈希列表在第二队列中查找第一区块的各交易;在第二队列中所查找到的交易的数量为1时,删除第一队列中与在第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将第二交易移入第一队列以再次还原第一区块。本申请降低区块链网络交易回传率。

Description

区块还原方法、设备和存储介质
技术领域
本申请涉及区块链技术领域,具体涉及一种区块还原方法、设备和存储介质。
背景技术
在申请人先前所提出的交易广播机制(具体可参考申请人所申请的各项交易广播或区块广播等专利文本)中,交易哈希由交易的交易内容生成,区块的区块头信息中的梅克尔根由区块的各交易的交易哈希计算生成,区块链节点在收到一笔交易,假设该交易内容为content(X),区块链节点先判断本地是否已存有与content(X)相同的另一笔交易:若存有,则丢弃新接收的交易;若未存有,则将新接收的交易存入本地交易池。在申请人先前所提出的区块验证机制(具体可参考申请人所申请的各项区块生成、区块广播或区块验证等专利文本)中,生成区块的区块链节点将所生成的区块的数据集合(包括所生成的区块的区块头信息和交易哈希列表)发送给其它区块链节点;其它区块链节点在接收区块时,根据交易哈希列表在本地交易池查找所接收区块的各交易,根据所查找到的各交易的交易哈希计算梅克尔根,在判断所计算的梅克尔根与区块头信息中的梅克尔根相同时,再根据所接收的数据集合和所查找到的各交易组装还原第一区块,执行所还原的第一区块得到执行结果,但执行结果与区块头信息中的执行结果不一致。
在测试使用上述机制的区块链网络时,假设区块链中有ABCD四个区块链节点,偶然发现两笔交易哈希相同但签名不同的交易tx1(sig_a1(content(M)))和tx2(sig_a2(content(M)));假设A、B先收到tx1,C、D先收到tx2;A、B收到tx1后,再收到tx2时,由于tx1和tx2的交易内容相同,A、B不会将tx2存入本地交易池;同理,C、D不会将tx1存入本地交易池;假设A生成了包括tx1的区块block(N),并将blockheader(N)和block(N)的交易哈希列表广播给B、C、D;由于交易哈希由交易的交易内容生成,因此A、B、C、D的梅克尔根均相同;在梅克尔根相同的情况下,B、C、D根据所查找到的交易组装还原block(N);B根据hash(content(M))从本地查找到tx1,而C、D根据hash(content(M))从本地查找到tx2;因此,A、B执行block(N)所生成的第一执行结果相同,C、D执行block(N)所生成的第二执行结果相同,而第一执行结果与第二执行结果不同。一种常规的解决方法是,C、D向A请求block(N),但是这种方法会造成block(N)的确认时间变长,区块链网络中存在较多的回传信息。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种在不延长区块的确认时间的同时,降低区块链网络交易回传率的区块还原方法、设备和存储介质。
第一方面,本发明提供一种适用于区块链节点的区块还原方法,交易池包括两个队列,区块链节点从交易池中的第一队列拉取交易生成区块,上述方法包括:
接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与第一交易的交易哈希相同、签名不同的交易:
是,则将第一交易存入本地交易池的第二队列;
接收第一区块链节点在打包第一区块后广播的第一数据集合;其中,第一数据集合包括第一区块的第一区块头和第一交易哈希列表;
根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块,计算所还原的第一区块的第一状态哈希;
判断第一状态哈希与第一区块头中的第二状态哈希是否相同:
否,则根据第一交易哈希列表在第二队列中查找第一区块的各交易;以及
判断在第二队列中所查找到的交易的数量是否为1:
是,则删除第一队列中与在第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将第二交易移入第一队列以再次还原第一区块;以及,
计算再次还原的第一区块的第三状态哈希值;
判断第三状态哈希值是否与第一状态哈希值相同:
否,则向第一区块链节点请求第一区块;
否,则向第一区块链节点请求第一区块。
第二方面,本发明提供一种适用于区块链节点的区块还原方法,交易池包括两个队列,区块链节点从交易池中的第一队列拉取交易生成区块,上述方法包括:
接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与第一交易的哈希相同、签名不同的交易:
是,则将第一交易存入本地交易池的第二队列;
打包第一区块并生成第一区块的第一数据集合;其中,第一数据集合包括第一区块的第一区块头和第一交易哈希列表;
将第一数据集合广播给其它区块链节点,以供其它区块链节点:
根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块,计算所还原的第一区块的第一状态哈希;
判断第一状态哈希与第一区块头中的第二状态哈希是否相同:
否,则根据第一交易哈希列表在第二队列中查找第一区块的各交易;以及,
判断在第二队列中所查找到的交易的数量是否为1:
是,则删除第一队列中与在第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将第二交易移入第一队列以再次还原第一区块;以及,
计算再次还原的第一区块的第三状态哈希值;
判断第三状态哈希值是否与第一状态哈希值相同:
否,则向当前节点请求第一区块;
否,则向当前节点请求第一区块。
第三方面,本发明还提供一种设备,包括一个或多个处理器和存储器,其中存储器包含可由该一个或多个处理器执行的指令以使得该一个或多个处理器执行根据本发明各实施例提供的区块还原方法。
第四方面,本发明还提供一种存储有计算机程序的存储介质,该计算机程序使计算机执行根据本发明各实施例提供的区块还原方法。
本发明诸多实施例提供的区块还原方法、设备和存储介质通过接收第一交易,在本地交易池的第一队列中存在与第一交易的交易哈希相同、签名不同的交易时,将第一交易存入本地交易池的第二队列;接收第一区块链节点在打包第一区块后广播的第一数据集合;根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块,计算所还原的第一区块的第一状态哈希;在第一状态哈希与第一区块头中的第二状态哈希不同时,根据第一交易哈希列表在第二队列中查找第一区块的各交易;在第二队列中所查找到的交易的数量为1时,删除第一队列中与在第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将第二交易移入第一队列以再次还原第一区块的方法,降低区块链网络交易回传率。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本发明一实施例提供的一种区块还原方法的流程图。
图2为图1所示方法的一种优选实施方式中步骤S112的流程图。
图3为图1所示方法的一种优选实施方式中步骤S13的流程图。
图4为图1所示方法的另一种优选实施方式中步骤S13的流程图。
图5为本发明一实施例提供的一种区块还原方法的流程图。
图6为本发明一实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1为本发明一实施例提供的一种区块还原方法的流程图。如图1所示,在本实施例中,本发明提供一种适用于区块链节点的区块还原方法,交易池包括两个队列,区块链节点从交易池中的第一队列拉取交易生成区块,上述方法包括:
S111:接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与第一交易的交易哈希相同、签名不同的交易:
是,则执行步骤S112:将第一交易存入本地交易池的第二队列;
S12:接收第一区块链节点在打包第一区块后广播的第一数据集合;其中,第一数据集合包括第一区块的第一区块头和第一交易哈希列表;
S13:根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块,计算所还原的第一区块的第一状态哈希;
S141:判断第一状态哈希与第一区块头中的第二状态哈希是否相同:
否,则执行步骤S142:根据第一交易哈希列表在第二队列中查找第一区块的各交易;以及
S1431:判断在第二队列中所查找到的交易的数量是否为1:
是,则执行步骤S1432:删除第一队列中与在第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将第二交易移入第一队列以再次还原第一区块;以及,
S1433:计算再次还原的第一区块的第三状态哈希值;
S14341:判断第三状态哈希值是否与第一状态哈希值相同:
否,则执行步骤S14342:向第一区块链节点请求第一区块;
否,则执行步骤S1435:向第一区块链节点请求第一区块。
具体地,假设区块链中有ABCD四个区块链节点,假设A、B、C、D的本地交易池的第一队列中都有tx4(sig_c(content(L))),本地交易池中的第二队列都为空;对于tx1(sig_a1(content(M)))和tx2(sig_a2(conte nt(M))):A、B先收到tx1,C、D先收到tx2;对于tx3(sig_b1(content(N)))和tx5(sig_b2(content(N))):A、D先收到tx3,B、C先收到tx5;D生成block(P),block(P)包括tx4、tx2、tx3。
对于A:
A执行步骤S111,接收客户端发送的或其它区块链节点广播的tx1,并判断本地交易池的第一队列中是否存在与tx1的交易哈希相同、签名不同的交易:
否,A将tx1存入本地交易池的第一队列;
A执行步骤S111,接收客户端发送的或其它区块链节点广播的tx2,并判断本地交易池的第一队列中是否存在与tx2的交易哈希相同、签名不同的交易:
由于本地存在与tx2的交易哈希相同、签名不同的tx1,则执行步骤S112:将tx2存入本地交易池的第二队列;
A执行步骤S111,接收客户端发送的或其它区块链节点广播的tx3,并判断本地交易池的第一队列中是否存在与tx3的交易哈希相同、签名不同的交易:
否,A将tx3存入本地交易池的第一队列;
A执行步骤S111,接收客户端发送的或其它区块链节点广播的tx5,并判断本地交易池的第一队列中是否存在与tx5的交易哈希相同、签名不同的交易:
由于本地存在与tx5的交易哈希相同、签名不同的tx3,A将tx5存入本地交易池的第二队列;
此时A的本地交易池的第一队列中的交易为:tx4、tx1、tx3;A的本地交易池的第二队列中的交易为:tx2、tx5;
B、C、D与A的上述执行操作相同,此处不再赘述;B的本地交易池的第一队列中的交易为:tx4、tx1、tx5;B的本地交易池的第二队列中的交易为:tx2、tx3;
C的本地交易池的第一队列中的交易为:tx4、tx2、tx5;C的本地交易池的第二队列中的交易为:tx1、tx3;
D的本地交易池的第一队列中的交易为:tx4、tx2、tx3;C的本地交易池的第二队列中的交易为:tx1、tx5;
D生成block(P),block(P)包括tx4、tx2、tx3。D向A、B、C广播block(P)的数据集合,block(P)的数据集合包括{blockheader(P),hashlist(hash(tx4),hash(tx2),hash(tx3))};
对于A:
A执行步骤S12,接收block(P)的数据集合;
A执行步骤S13,根据hashlist在第一队列中查找block(P)的各交易,A所查找到的各交易为tx4、tx1、tx3,A用tx4、tx1、tx3还原block(P)',并根据tx4、tx1、tx3的执行结果计算statehash(P)';
A执行步骤S141:判断statehash(P)'与blockheader(P)中的statehash(P)是否相同:
由于statehash(P)是根据tx4、tx2、tx3的执行结果所计算,与statehash(P)'不同,则执行步骤S142:根据hashlist在第二队列中查找block(P)的各交易;以及
A执行步骤S1431,判断在第二队列中所查找到的交易的数量是否为1:
由于A在第二队列中所查找到的交易为tx2和tx5,所查找到的交易的数量不为1,则执行步骤S1435:向D请求block(P)。
对于B:
B执行步骤S12,接收block(P)的数据集合;
B执行步骤S13,根据hashlist在第一队列中查找block(P)的各交易,B所查找到的各交易为tx4、tx1、tx5,B用tx4、tx1、tx5还原block(P)',并根据tx4、tx1、tx5的执行结果计算statehash(P)';
B执行步骤S141:判断statehash(P)'与blockheader(P)中的statehash(P)是否相同:
由于statehash(P)是根据tx4、tx2、tx3的执行结果所计算,与statehash(P)'不同,则执行步骤S142:根据hashlist在第二队列中查找block(P)的各交易;以及
B执行步骤S1431,判断在第二队列中所查找到的交易的数量是否为1:
由于B在第二队列中所查找到的交易为tx2和tx3,所查找到的交易的数量不为1,则执行步骤S1435:向D请求block(P)。
对于C:
C执行步骤S12,接收block(P)的数据集合;
C执行步骤S13,根据hashlist在第一队列中查找block(P)的各交易,C所查找到的各交易为tx4、tx2、tx5,C用tx4、tx2、tx5还原block(P)',并根据tx4、tx2、tx5的执行结果计算statehash(P)';
C执行步骤S141:判断statehash(P)'与blockheader(P)中的statehash(P)是否相同:
由于statehash(P)是根据tx4、tx2、tx5的执行结果所计算,与statehash(P)'不同,则执行步骤S142:根据hashlist在第二队列中查找block(P)的各交易;以及
C执行步骤S1431,判断在第二队列中所查找到的交易的数量是否为1:
由于C在第二队列中所查找到的交易为tx3,则执行步骤S1432:删除第一队列中的tx5,并将tx3移入第一队列,C根据tx4、tx2、tx3再次还原block(P);以及,
C执行步骤S1433,根据tx4、tx2、tx3的执行结果计算再次还原的block(P)的状态哈希statehash(P)”;
C执行步骤S14341,判断statehash(P)”是否与statehash(P)相同:由于statehash(P)”与statehash(P)相同,则结束。
假设C由于网络问题一直未接收到tx3,且C的第二队列中还存在tx6(sig_d(content(N))),C执行步骤S1432:删除第一队列中的tx5,并将tx6移入第一队列,C根据tx4、tx2、tx6再次还原block(P);以及,
C执行步骤S1433,根据tx4、tx2、tx6的执行结果计算再次还原的block(P)的状态哈希statehash(P)”;
C执行步骤S14341,判断statehash(P)”是否与statehash(P)相同:由于statehash(P)”与statehash(P)不同,则C向D请求block(P)。
在现有技术中,交易池中配置有定时删除交易的策略,例如,一笔交易进入交易池后两分钟都未能被拉取打包,则将该交易从交易池中删除。在本申请中,交易池中的两个队列也配置有相同的定时删除交易策略以保证两个队列中的存储空间充足。
上述实施例以区块链中有ABCD四个区块链节点,假设A、B、C、D的本地交易池的第一队列中都有tx4(sig_c(content(L))),本地交易池中的第二队列都为空;对于tx1(sig_a1(content(M)))和tx2(sig_a2(content(M))):A、B先收到tx1,C、D先收到tx2;对于tx3(sig_b1(content(N)))和tx5(sig_b2(content(N))):A、D先收到tx3,B、C先收到tx5;D生成block(P),block(P)包括tx4、tx2、tx3为例对本发明提供的区块还原方法进行了示例性的阐述。
在上述实施例中,原本A、B、C都需要向D请求block(P),用了本申请的方法后,C不需要向D请求block(P),降低了区块链网络交易回传率。且一般拥有相同交易哈希,但签名不同的交易并不常见(即第二队列中并不存在较多的交易),在偶然遇到第一次无法还原出正确的区块的情况下,使用上述方法能够较好的再次还原出正确的区块,上述方法能拥有较好的降低区块链网络交易回传率的效果。
图2为图1所示方法的一种优选实施方式中步骤S112的流程图。如图2所示,在一优选实施例中,S112包括:
S1121:判断本地交易池的第二队列中是否存在与第一交易的交易哈希相同、签名不同的交易:
否,则执行步骤S1122:将第一交易存入本地交易池的第二队列;
是,则执行步骤S1123:丢弃第一交易。
在第二队列中存在与第一交易的交易哈希相同、签名不同的交易时,且在第二队列中所查找到的交易的数量为1时才会执行步骤1432至步骤S14342。在第二队列中已经存在与第一交易的交易哈希相同、签名不同的交易时,再将第一交易存入第二队列将占用第二队列的存储空间,且无法执行步骤1432至步骤S14342。
上述实施例更好的利用了第二队列的存储空间。
图3为图1所示方法的一种优选实施方式中步骤S13的流程图。如图3所示,在一优选实施例中,S13包括:
S131:根据第一交易哈希列表在第二队列中查找第一区块的各交易;
S1321:判断在第二队列中所查找到的交易的数量是否大于1:
是,则执行步骤S1322:删除所查找到的各交易,并根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块;
S1323:计算所还原的第一区块的第一状态哈希。
在第二队列中存在与第一交易的交易哈希相同、签名不同的交易时,且在第二队列中所查找到的交易的数量为1时才会执行步骤1432至步骤S14342,在第二队列中所查找到的交易的数量大于1时,再将第一交易存入第二队列将占用第二队列的存储空间,且无法执行步骤1432至步骤S14342。
上述实施例更好的利用了第二队列的存储空间。
图4为图1所示方法的另一种优选实施方式中步骤S13的流程图。如图4所示,在一优选实施例中,S13包括:
S135:根据第一交易哈希列表在第二队列中查找第一区块的各交易;
S1361:判断在第二队列中所查找到的交易的数量是否大于1:
是,则执行步骤S1362:从所查找到的各交易中保存一个交易并删除其它交易,并根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块;
S1363:计算所还原的第一区块的第一状态哈希。
在第二队列中存在与第一交易的交易哈希相同、签名不同的交易时,且在第二队列中所查找到的交易的数量为1时才会执行步骤1432至步骤S14342,在第二队列中所查找到的交易的数量大于1时,再将第一交易存入第二队列将占用第二队列的存储空间,且无法执行步骤1432至步骤S14342。
上述实施例更好的利用了第二队列的存储空间。
图5为本发明一实施例提供的一种区块还原方法的流程图。如图5所示,在本实施例中,本发明提供一种适用于区块链节点的区块还原方法,交易池包括两个队列,区块链节点从交易池中的第一队列拉取交易生成区块,上述方法包括:
S211:接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与第一交易的哈希相同、签名不同的交易:
是,则执行步骤S212:将第一交易存入本地交易池的第二队列;
S22:打包第一区块并生成第一区块的第一数据集合;其中,第一数据集合包括第一区块的第一区块头和第一交易哈希列表;
S23:将第一数据集合广播给其它区块链节点,以供其它区块链节点:
根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块,计算所还原的第一区块的第一状态哈希;
判断第一状态哈希与第一区块头中的第二状态哈希是否相同:
否,则根据第一交易哈希列表在第二队列中查找第一区块的各交易;以及,
判断在第二队列中所查找到的交易的数量是否为1:
是,则删除第一队列中与在第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将第二交易移入第一队列以再次还原第一区块;以及,
计算再次还原的第一区块的第三状态哈希值;
判断第三状态哈希值是否与第一状态哈希值相同:
否,则向当前节点请求第一区块;
否,则向当前节点请求第一区块。
上述实施例的区块还原原理可参考图1所示的方法,此处不再赘述。
优选地,将第一交易存入本地交易池的第二队列包括:
判断本地交易池的第二队列中是否存在与第一交易的交易哈希相同、签名不同的交易:
否,则将第一交易存入本地交易池的第二队列;
是,则丢弃第一交易。
上述实施例的区块还原原理可参考图2所示的方法,此处不再赘述。
优选地,根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块包括:
根据第一交易哈希列表在第二队列中查找第一区块的各交易;
判断在第二队列中所查找到的交易的数量是否大于1:
是,则删除所查找到的各交易,并根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块。
上述实施例的区块还原原理可参考图3所示的方法,此处不再赘述。
优选地,根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块包括:
根据第一交易哈希列表在第二队列中查找第一区块的各交易;
判断在第二队列中所查找到的交易的数量是否大于1:
是,则从所查找到的各交易中保存一个交易并删除其它交易,并根据第一交易哈希列表在第一队列中查找第一区块的各交易以还原第一区块。
上述实施例的区块还原原理可参考图4所示的方法,此处不再赘述。
图6为本发明一实施例提供的一种设备的结构示意图。
如图6所示,作为另一方面,本申请还提供了一种设备600,包括一个或多个中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM603中,还存储有设备600操作所需的各种程序和数据。CPU601、ROM602以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本公开的实施例,上述任一实施例描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述任一方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
作为又一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例的装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,该程序被一个或者一个以上的处理器用来执行描述于本申请提供的方法。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这根据所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以通过执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以通过专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,各所述单元可以是设置在计算机或移动智能设备中的软件程序,也可以是单独配置的硬件装置。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离本申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种区块还原方法,其特征在于,交易池包括两个队列,区块链节点从所述交易池中的第一队列拉取交易生成区块,所述方法适用于区块链节点,所述方法包括:
接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与所述第一交易的交易哈希相同、签名不同的交易:
是,则将所述第一交易存入本地交易池的第二队列;
接收第一区块链节点在打包第一区块后广播的第一数据集合;其中,所述第一数据集合包括所述第一区块的第一区块头和第一交易哈希列表;
根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块,计算所还原的第一区块的第一状态哈希;
判断所述第一状态哈希与所述第一区块头中的第二状态哈希是否相同:
否,则根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;以及
判断在所述第二队列中所查找到的交易的数量是否为1:
是,则删除所述第一队列中与在所述第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将所述第二交易移入所述第一队列以再次还原所述第一区块;以及,
计算再次还原的第一区块的第三状态哈希值;
判断所述第三状态哈希值是否与所述第一状态哈希值相同:
否,则向所述第一区块链节点请求所述第一区块;
否,则向所述第一区块链节点请求所述第一区块。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一交易存入本地交易池的第二队列包括:
判断本地交易池的第二队列中是否存在与所述第一交易的交易哈希相同、签名不同的交易:
否,则将所述第一交易存入本地交易池的第二队列;
是,则丢弃所述第一交易。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块包括:
根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;
判断在所述第二队列中所查找到的交易的数量是否大于1:
是,则删除所查找到的各交易,并根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块包括:
根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;
判断在所述第二队列中所查找到的交易的数量是否大于1:
是,则从所查找到的各交易中保存一个交易并删除其它交易,并根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块。
5.一种区块还原方法,其特征在于,交易池包括两个队列,区块链节点从所述交易池中的第一队列拉取交易生成区块,所述方法适用于区块链节点,所述方法包括:
接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与所述第一交易的哈希相同、签名不同的交易:
是,则将所述第一交易存入本地交易池的第二队列;
打包第一区块并生成所述第一区块的第一数据集合;其中,所述第一数据集合包括所述第一区块的第一区块头和第一交易哈希列表;
将所述第一数据集合广播给其它区块链节点,以供其它区块链节点:
根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块,计算所还原的第一区块的第一状态哈希;
判断所述第一状态哈希与所述第一区块头中的第二状态哈希是否相同:
否,则根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;以及,
判断在所述第二队列中所查找到的交易的数量是否为1:
是,则删除所述第一队列中与在所述第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将所述第二交易移入所述第一队列以再次还原所述第一区块;以及,
计算再次还原的第一区块的第三状态哈希值;
判断所述第三状态哈希值是否与所述第一状态哈希值相同:
否,则向当前节点请求所述第一区块;
否,则向当前节点请求所述第一区块。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一交易存入本地交易池的第二队列包括:
判断本地交易池的第二队列中是否存在与所述第一交易的交易哈希相同、签名不同的交易:
否,则将所述第一交易存入本地交易池的第二队列;
是,则丢弃所述第一交易。
7.根据权利要求5所述的方法,其特征在于,所述根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块包括:
根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;
判断在所述第二队列中所查找到的交易的数量是否大于1:
是,则删除所查找到的各交易,并根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块。
8.根据权利要求5所述的方法,其特征在于,所述根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块包括:
根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;
判断在所述第二队列中所查找到的交易的数量是否大于1:
是,则从所查找到的各交易中保存一个交易并删除其它交易,并根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行如权利要求1-8中任一项所述的方法。
10.一种存储有计算机程序的存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
CN202010511278.0A 2020-06-08 2020-06-08 区块还原方法、设备和存储介质 Pending CN111639939A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010511278.0A CN111639939A (zh) 2020-06-08 2020-06-08 区块还原方法、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010511278.0A CN111639939A (zh) 2020-06-08 2020-06-08 区块还原方法、设备和存储介质

Publications (1)

Publication Number Publication Date
CN111639939A true CN111639939A (zh) 2020-09-08

Family

ID=72333353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010511278.0A Pending CN111639939A (zh) 2020-06-08 2020-06-08 区块还原方法、设备和存储介质

Country Status (1)

Country Link
CN (1) CN111639939A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600905A (zh) * 2020-12-09 2021-04-02 杭州复杂美科技有限公司 交易广播和区块生成方法、设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017006200A1 (de) * 2017-06-30 2019-01-03 Wolfgang Zipper Verfahren, Hardware und System zur dynamischen Datenübertragung an ein Blockchain Rechner Netzwerk zur Abspeicherung Persönlicher Daten um diese Teils wieder Blockweise als Grundlage zur End zu Endverschlüsselung verwendet werden um den Prozess der Datensammlung über das Datenübertragungsmodul weitere Daten in Echtzeit von Sensoreinheiten dynamisch aktualisiert werden. Die Blockmodule auf dem Blockchaindatenbanksystem sind unbegrenzt erweiterbar.
CN109194466A (zh) * 2018-10-29 2019-01-11 南开大学 一种基于区块链的云端数据完整性检测方法及系统
CN109213900A (zh) * 2018-09-18 2019-01-15 百度在线网络技术(北京)有限公司 一种区块链的数据修改方法、装置、设备和介质
WO2019021107A1 (en) * 2017-07-24 2019-01-31 nChain Holdings Limited COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR MANAGING A LARGE MEMORY GROUP DISTRIBUTED IN A BLOCK CHAIN NETWORK
KR101950856B1 (ko) * 2018-11-20 2019-02-22 주식회사 윅스콘 블록체인을 이용한 정보 관리 시스템 및 방법
CN109670954A (zh) * 2018-12-18 2019-04-23 陕西医链区块链集团有限公司 基于区块链的交易处理方法
CN109905368A (zh) * 2019-01-24 2019-06-18 真相网络科技(北京)有限公司 区块链跨链数据交互和验证方法、区块链系统及存储介质
CN109919622A (zh) * 2019-02-22 2019-06-21 杭州复杂美科技有限公司 交易替换方法、设备和存储介质
CN110730185A (zh) * 2019-10-22 2020-01-24 张瑞 一种基于分布式计算的区块链大数据处理方法及系统
CN110753080A (zh) * 2019-08-30 2020-02-04 深圳壹账通智能科技有限公司 区块传输方法、装置、设备及可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017006200A1 (de) * 2017-06-30 2019-01-03 Wolfgang Zipper Verfahren, Hardware und System zur dynamischen Datenübertragung an ein Blockchain Rechner Netzwerk zur Abspeicherung Persönlicher Daten um diese Teils wieder Blockweise als Grundlage zur End zu Endverschlüsselung verwendet werden um den Prozess der Datensammlung über das Datenübertragungsmodul weitere Daten in Echtzeit von Sensoreinheiten dynamisch aktualisiert werden. Die Blockmodule auf dem Blockchaindatenbanksystem sind unbegrenzt erweiterbar.
WO2019021107A1 (en) * 2017-07-24 2019-01-31 nChain Holdings Limited COMPUTER-IMPLEMENTED SYSTEM AND METHOD FOR MANAGING A LARGE MEMORY GROUP DISTRIBUTED IN A BLOCK CHAIN NETWORK
CN109213900A (zh) * 2018-09-18 2019-01-15 百度在线网络技术(北京)有限公司 一种区块链的数据修改方法、装置、设备和介质
CN109194466A (zh) * 2018-10-29 2019-01-11 南开大学 一种基于区块链的云端数据完整性检测方法及系统
KR101950856B1 (ko) * 2018-11-20 2019-02-22 주식회사 윅스콘 블록체인을 이용한 정보 관리 시스템 및 방법
CN109670954A (zh) * 2018-12-18 2019-04-23 陕西医链区块链集团有限公司 基于区块链的交易处理方法
CN109905368A (zh) * 2019-01-24 2019-06-18 真相网络科技(北京)有限公司 区块链跨链数据交互和验证方法、区块链系统及存储介质
CN109919622A (zh) * 2019-02-22 2019-06-21 杭州复杂美科技有限公司 交易替换方法、设备和存储介质
CN110753080A (zh) * 2019-08-30 2020-02-04 深圳壹账通智能科技有限公司 区块传输方法、装置、设备及可读存储介质
CN110730185A (zh) * 2019-10-22 2020-01-24 张瑞 一种基于分布式计算的区块链大数据处理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600905A (zh) * 2020-12-09 2021-04-02 杭州复杂美科技有限公司 交易广播和区块生成方法、设备和存储介质
CN112600905B (zh) * 2020-12-09 2023-04-14 杭州复杂美科技有限公司 交易广播和区块生成方法、设备和存储介质

Similar Documents

Publication Publication Date Title
CN108984662B (zh) 一种区块链数据同步方法
CN109410045B (zh) 一种平行链共识方法、设备和存储介质
CN109951547B (zh) 事务请求并行处理方法、装置、设备和介质
CN111798316B (zh) 平行链共识方法、设备和存储介质
CN112583811B (zh) 钱包找回方法、设备和存储介质
CN111861471A (zh) 平行链共识方法、平行链区块回滚方法、设备和存储介质
US20130006930A1 (en) Transference control method, transference control apparatus and recording medium of transference control program
CN110837505A (zh) 状态数据存储方法、状态数据同步方法、设备和存储介质
CN111639902A (zh) 基于kafka的数据审核方法、控制装置及计算机设备、存储介质
CN111858773A (zh) 交易打包方法、设备和存储介质
CN111008249B (zh) 平行链区块同步方法、设备和存储介质
US20060106960A1 (en) Deleting expired items in a queue data structure
CN111523896B (zh) 防攻击方法、设备和存储介质
CN111639939A (zh) 区块还原方法、设备和存储介质
CN111523897B (zh) 防攻击方法、设备和存储介质
CN111405037A (zh) 区块同步方法、设备和存储介质
CN111415259B (zh) 交易排队方法、设备和存储介质
CN110322350B (zh) 裁剪共识网络中空区块的方法、装置、设备和存储介质
CN110888739B (zh) 延迟任务的分布式处理方法与装置
CN114493875A (zh) 交易执行方法、计算机设备和存储介质
CN112929432B (zh) 一种基于重复广播历史的广播方法、设备及储存介质
CN112733202A (zh) 平行链监督共识方法、计算机设备和存储介质
CN112181825A (zh) 测试案例库构建方法、装置、电子设备及介质
CN111858772A (zh) 平行链交易组执行方法、设备和存储介质
CN110191130B (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200908

WD01 Invention patent application deemed withdrawn after publication