CN111309809A - 一种区块头保存方法及其设备 - Google Patents

一种区块头保存方法及其设备 Download PDF

Info

Publication number
CN111309809A
CN111309809A CN202010102825.XA CN202010102825A CN111309809A CN 111309809 A CN111309809 A CN 111309809A CN 202010102825 A CN202010102825 A CN 202010102825A CN 111309809 A CN111309809 A CN 111309809A
Authority
CN
China
Prior art keywords
transaction
dapp
block header
block
header information
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
CN202010102825.XA
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.)
Tencent Technology Shenzhen Co Ltd
Tenpay Payment Technology Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010102825.XA priority Critical patent/CN111309809A/zh
Publication of CN111309809A publication Critical patent/CN111309809A/zh
Pending legal-status Critical Current

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
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Software Systems (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种区块头保存方法及其设备,其中方法包括:通过去中心化应用DAPP向区块链网络发送区块头获取请求,区块头获取请求中携带请求获取的区块头高度区间;接收来自区块链网络的区块头高度区间内的区块头信息;从获取的区块头信息中确定与DAPP相关联的区块头信息;将与DAPP相关联的区块头保存至DAPP中。通过本申请实施例,有利于通过DAPP及时获取到区块头信息。

Description

一种区块头保存方法及其设备
技术领域
本发明涉及信息处理技术领域,尤其涉及一种区块头保存方法及其设备。
背景技术
去中心化应用(Decentralized Application,DAPP)是一种互联网应用程序,与传统的App最大的区别是:DAPP运行在去中心化的网络上,也就是区块链网络中。区块链网络中不存在中心化的节点可以完整的控制DAPP,可以保证DAPP的完全开源和自治。
目前DAPP在使用区块头前,需要从区块链网络获取区块头信息,使用完后则将区块头删除,显然每次获取区块头都会存在一定的时延,导致DAPP不能及时获取到需要的区块头信息。所以如何通过DAPP及时地获取到区块头信息成为了一个亟待解决的问题。
发明内容
本发明实施例提供了一种区块头保存方法及其设备,该方法有利于及时获取到区块头信息。
第一方面,本发明实施例提供一种区块头保存方法,该方法包括:
通过去中心化应用DAPP向区块链网络发送区块头获取请求,区块头获取请求中携带请求获取的区块头高度区间;
接收来自区块链网络的区块头高度区间内的区块头信息;
从获取的区块头信息中确定与DAPP相关联的区块头信息;
将与DAPP相关联的区块头保存至DAPP中。
在一种实施方式中,基于获取的区块头信息中交易哈希值,从获取的区块头信息中确定与DAPP发起的交易和/或接收的交易相关的目标区块头信息;将目标区块头信息确定为与DAPP相关联的区块头信息。
在一种实施方式中,将与DAPP相关联的区块头保存至DAPP中之后,接收DAPP发起的交易请求,交易请求用于请求向区块链网络发起第一交易;确定与第一交易相关联的第二交易;基于DAPP保存的区块头信息校验第二交易是否成功;当校验第二交易成功时,向区块链网络发起第一交易。
在一种实施方式中,确定上一次在DAPP中包括区块头之后,DAPP的第一交易数量,第一交易数量为DAPP发起的交易数量或DAPP接收的交易数量或DAPP发起的交易数量与DAPP接收的交易数量之和;确定第一交易数量是否大于预设值;若第一交易数量大于预设值,则执行通过去中心化应用DAPP向区块链网络发送区块头获取请求。
在一种实施方式中,通过DAPP向所述区块链网络发起第三交易;确定当前时间与第三交易的发起时间之间的时间间隔是否达到预设间隔;若是,则执行通过去中心化应用DAPP向区块链网络发送区块头获取请求。
在一种实施方式中,将与DAPP相关联的区块头保存至DAPP中之后,基于DAPP保存的区块头信息校验所述第三交易是否成功;若校验第三交易成功,则确定第三交易的重要等级;若第三交易的重要等级低于预设等级,则在DAPP保存的区块头信息中删除第一区块头信息,第一区块头信息为DAPP保存的区块头信息中与第三交易相关联的区块头信息。
在一种实施方式中,确定所述DAPP发起的交易和/或接收的交易中是否存在第四交易,第四交易与所述第三交易不相同,第四交易与第一区块头信息相关;若不存在所述第四交易,则将第一区块头信息从DAPP中删除。
第二方面,本申请实施例提供了一种区块头保存设备,该设备包括:
发送模块,用于通过去中心化应用DAPP向区块链网络发送区块头获取请求,区块头获取请求中携带请求获取的区块头高度区间;
接收模块,用于接收来自区块链网络的区块头高度区间内的区块头信息;
处理模块,用于从获取的区块头信息中确定与DAPP相关联的区块头信息;
存储模块,用于将与DAPP相关联的区块头保存至所述DAPP中。
第三方面,本申请实施例提供了一种区块头缓存保存设备,该设备包括处理器和存储器,处理器和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行第一方面所涉及到的操作。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使得处理器执行第一方面所述的方法。
本申请实施例中,区块头保存设备通过向区块链网络发起区块头获取请求,该区块头获取请求包括区块头高度区间,则区块头保存设备可以接收来自区块链网络的该区块头高度区间内的区块头信息。区块头保存设备可以在获取的区块头高度区间内的区块头信息中,根据区块头信息中的交易哈希值,确定与DAPP相关联的区块头信息,并将与DAPP相关联的区块头信息保存至DAPP中。若再需要对该DAPP相关联的交易信息进行验证,只需要通过该DAPP本地保存的区块头信息就可以及时获取到相应的区块头信息,并进行验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种网络架构示意图;
图2为本申请实施例提供的一种区块头保存流程示意图;
图3为本申请实施例提供的一种默克尔树示意图;
图4为本申请实施例提供的一种发起区块头获取请求的第一情况示意图;
图5为本申请实施例提供的一种发起区块头获取请求的第二情况示意图;
图6为本申请实施例提供的一种区块头保存设备模块示意图;
图7为本申请实施例提供的一种区块头保存设备的实体结构简化示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行描述。
本申请实施例提供了一种区块头缓存方法及其设备,可以将与去中心化应用(Decentralized Application,DAPP)相关联的区块头同步到DAPP中,有利于及时获取到与DAPP相关联的区块头信息。
为了能够更好地理解本申请实施例,下面对本申请实施例可应用的网络架构进行说明。
请参见图1,图1为本申请实施例提供的一种网络的架构图。如图1所示,该网络包括区块链网络和区块头保存设备,其中区块链网络中还包括由全节点1~全节点3,区块头保存设备中包括DAPP。在实际应用中,区块链网络还可以包括3个及3个以上的全节点,本申请实施例不做限定。各个全节点相互连接,共同组成该区块链网络。每一个全节点中都存储有区块链中的全部区块,并且都可以接收来自DAPP节点的信息,并处理该DAPP节点的信息。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链包括一系列按照产生的先后时间顺序相互接续的区块。每一个区块又包括区块头和区块体。
其中,区块头里面存储着区块的头信息,包括版本号、上一个区块的哈希值、挖矿难度值、区块时间戳、nonce字符串和默克尔根。区块头中的参数信息规定每一个小账本在一条链的具体位置,让一个个没有关系的小账本组成了一个先后顺序严格确定、不可篡改、不断生长的区块链。
默克尔树是一种二叉树,由一个根节点、一组中间节点和一些叶子节点组成,中间节点可以通过叶子节点进行哈希值运算得到,而中间节点也通过哈希值运算,层层递进,最终得到一个哈希值,而该哈希值就是默克尔根。默克尔根存储在区块头中,而中间节点和叶子节点存储在区块体中,其中叶子节点存储有区块链网络中的各种交易信息,每当交易信息达到一定的数量,即可被打包为区块体,与区块头共同组成一个新的区块,连接在区块链上。默克尔树的根哈希存储方式,既让区块链可以快速发现信息被篡改,又可以快速定位到具体的交易信息。
区块链网络中相互连接的全节点是指存储完整区块链的节点,可以包括数据节点和共识节点。其中,共识节点用于接收区块链网络中新增的交易信息,在交易信息数量达到预设阈值后将新增的交易信息生成一个新区块,并按照最长链原则,将新区块连接到已有的区块链之后。若再有新区块生成,则按照区块生成的时间顺序连接在区块链上。其中,每个区块中包含若干条交易信息。数据节点可以接收其他节点的请求消息,该请求消息用于读取指定区块的交易信息。可以理解的是,共识节点用于在区块链中写入新区块,数据节点用于从区块链中读取区块信息。
在区块链网络中,当两位用户之间有交易来往时,区块链网络就会生成一条交易信息,记录下这两位用户交易去向和交易资金。交易信息可以包括交易金额、转出方信息和收入方信息。转出方可以是个人用户,收入方可以是个人用户,也可以是公共用户,例如税务局等。当然交易信息还可以是其他类型的交易,例如开票请求、证券交易等,本实施例不做限定。
DAPP是一种互联网应用程序,运行在分布式网络上,具有完全开源、自治的特点,并且没有一个实体控制着DAPP超51%的Token(代币或通证)。DAPP能够根据用户的反馈及技术要求进行升级,其升级由大部分用户达成共识之后进行。在本申请实施例中,DAPP具有缓存能力,即拥有一定的缓存空间。DAPP可以从区块链网络中同步预设范围内的区块头信息,并从该预设范围内的区块头中搜索过滤出与自身相关的区块头信息,将这些与自身相关的区块头信息保存在本地DAPP内。若后续需要验证某一笔交易是否存在在区块链中,则可通过DAPP访问本地节点进行验证,代替了传统的每验证一笔交易就向区块链网络发起请求的验证方法,提高了验证效率。
请参见图2,图2为本申请实施例提供的一种区块头保存流程示意图,其中区块头保存方法包括但不限于如下步骤,该方法包括:
210、区块头保存设备通过去中心化应用DAPP向区块链网络发送区块头获取请求,该区块头获取请求中携带请求获取的区块头高度区间;相应地,区块链网络接收该区块头获取请求。
区块头保存设备向区块链网络中的全节点发送区块头获取请求,其中,全节点可以是区块链网络中任意一个正常运行的全节点。在该区块头获取请求中,还包括请求获取的区块头的高度区间。区块的高度值存储在区块头中,区块高度可以用来识别区块在区块链中的位置,并据此找到和这个区块相关的所有基础属性和交易记录。区块链网络中的全节点接收到区块头获取请求后,就可以根据请求内的信息,在区块链中,找到高度区间范围内的区块,并提取出这些区块中的区块头信息。
220、区块头保存设备接收来自区块链网络的区块头高度区间内的区块头信息。
区块链网络中的全节点在提取出DAPP所要求的高度区间内的区块头后,发送给区块头保存设备。
230、区块头保存设备从获取的区块头信息中确定与DAPP相关联的区块头信息。
在一种可能的实现方式中,与DAPP相关联的区块头信息是指区块头对应的区块体中包括DAPP发起的交易信息和/或接收的交易信息,与DAPP相关联的区块头信息是指与DAPP发起的交易和/或接收的交易相关的区块头信息。
在一种可能的实现方式中,区块头保存设备具体基于获取的区块头信息中交易哈希值,从获取的区块头信息中确定与DAPP发起的交易和/或接收的交易相关的目标区块头信息。
在区块头保存设备从获取的区块头信息中确定与DAPP相关联的区块头信息之前,区块头保存设备还需要根据DAPP已发起或接收的交易(目标交易),向区块链网络获取目标交易对应的默克尔树哈希认证路径,和该路径下与目标交易相关联的哈希值。区块链网络中的全节点在接收到该获取请求时,会先定位目标交易在区块链中所在的区块(目标区块),基于目标区块中的各交易构建默克尔树,然后确定目标交易对应的默克尔验证路径,并将目标交易对应的梅克尔路径所关联的哈希值返回给区块头保存设备。区块头保存设备会根据全节点返回的哈希值,验证目标交易对应的默克尔路径是否正确,即根据目标交易的交易哈希与全节点返回的哈希值,计算默克尔树的默克尔根,并判断计算得到的默克尔根与DAPP中存储的目标区块的区块头中的交易哈希值是否一致。如果一致,就认定验证通过,证明目标交易确实已经被写入区块链中,同时将包括该交易哈希值的区块头确定为与DAPP相关联的区块头信息,且区块头保存设备确定该笔目标交易成功。
其中区块头信息中的交易哈希值可以是默克尔根。通过如上的描述,若存在一个区块头的默克尔根,与从全节点获取的目标交易的哈希认证路径和相关哈希值而计算出的默克尔根相同,则确定该区块头就是与DAPP相关联的区块头。
请参见图3,图3为本申请实施例提供的一种默克尔树示意图。在介绍默克尔树之前,先介绍哈希运算。
所谓哈希运算,也可以称作散列、杂凑,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。哈希运算可以将任何输入数据输出为一个256位的二进制数据,并且哈希运算是不可逆的,即通过输入数据得出256位的二进制数据很简单,而通过256位的二进制数据得出输入数据却十分困难。哈希运算的算法包括HA-1算法、SHA-224算法、SHA-256算法、SHA-384算法、SHA-512算法等。例如,对于一个字符串“123456abcdef”,经过SHA256算法后,会生成一个256比特的2进制摘要,摘要的表现形式为“101001100101010001……”,共计256位,当然该摘要也可用64位的16进制表示。
如图3,交易1~交易8是默克尔树上的叶节点,哈希9至哈希14是默克尔树上的中间节点。哈希1是对交易1的哈希运算而得到的结果,哈希2是对交易2的哈希运算而得到的结果,以此类推。而哈希9是哈希1和哈希2共同组成的新哈希值再经过一次哈希运算得到的结果,哈希10是哈希3和哈希4共同组成的新哈希值再经过一次哈希运算得到的结果,以此类推。在默克尔树中,哈希15是默克尔树的根节点,即默克尔根。可以理解的是,在叶节点1至叶节点8,即交易1~交易8中,只要有一个叶节点的数据发生了变化,则最终的哈希15都会发生不同的变化。当然,在实际应用中,默克尔树的叶节点的数量是非常庞大的,可以是数千个,本申请实施例不作限定。
例如,交易5是DAPP发起或接收的交易,全节点首先会定位该目标交易所处的区块,构建该区块的默克尔树,确定交易5构建默克尔树的默克尔路径,并记录下该默克尔路径所关联的哈希值,在该例子中,交易5的默克尔路径相关联的哈希值为哈希6、哈希12和哈希13。通过交易5可以得到哈希5,通过哈希5和哈希6可以得到哈希11,通过哈希11和哈希12可以得到哈希14,最终通过哈希13和哈希14可以得到默克尔根,即哈希15。全节点将哈希6、哈希12和哈希13和交易5的默克尔路径发送给区块头保存设备,区块头保存设备就可以根据哈希6、哈希12和哈希13和交易5的默克尔路径计算出哈希15。若区块头保存设备找到与哈希15相同的已从区块链网络同步过来的区块头的默克尔根,则该区块头保存设备确定该区块头为与DAPP相关联的区块头,将其保存下来,且确定交易5已存在于区块链中,是一笔成功的交易。当然,在实际应用中,DAPP发起或接收的交易不止一个,区块头保存设备可以在DAPP发起或接收了一定数量的交易后,再向区块链网络发送区块头获取请求。
在一种可能的实现方式中,区块链网络中的全节点可以利用布隆过滤器定位目标区块,也可以通过其他可以定位目标区块的方法,本申请实施例不作限定。
240、区块头保存设备将与DAPP相关联的区块头信息保存至DAPP中。
区块头保存设备在确定出与DAPP相关联的区块头后,将该区块头进行保存。相应的,删除未被确定为与DAPP相关联的区块头。
在一种可能的实现方式中,当用户验证一笔与DAPP相关联的交易时,则可以使用区块头保存设备通过DAPP中保存的区块头信息进行验证。区块头保存设备会向区块链网络获取该交易对应的默克尔树哈希认证路径和该路径下与目标交易相关联的哈希值,并计算出默克尔根值,与保存在本地的DAPP中的区块头信息的交易哈希值,即本地区块头信息的默克尔根值进行比较,若计算出的默克尔根值与本地区块头信息的默克尔根值相同,则区块头保存设备确定该交易成功,并输出成功的结果返回给用户。相应地,若不存在一个区块头信息的默克尔根值与计算出的默克尔根值相同,则区块头保存设备确定该交易失败,输出失败的结果返回给用户。
在一种可能的实现方式中,区块头保存设备可以接收DAPP发起的交易请求,该交易请求用于向区块链网络发起第一交易。在发起该第一交易之前,需要验证第二交易是否成功,其验证方法如230所描述,此处不再赘述。若判断第二交易已成功,则DAPP可以发起第一交易。
其中,若第二交易和第一交易相互关联,需要在第二交易已经交易成功的情况下,DAPP才可以发起第一交易,可以保证一套交易的完成。在本申请实施例中,第一交易可以是DAPP发起的,第二交易可以是DAPP接收的。当然,第一笔交易和第二笔交易也可以互相不关联。另外,并不一定要在第一交易要发起时才去验证第二交易是否成功,可以在第二交易发起后就去验证第二交易是否成功。
例如,第一用户向第二用户购买比特币,第一用户需要向第二用户发起第一笔交易,该第一笔交易可以包括其他类型的代币,如以太币等。第二用户在验证第一用户所发起的第一笔交易成功后,才会向第一用户发起第二笔交易,该第二笔交易包括第二用户向第一用户发送的比特币。通过该方法可以防止其中一方伪造一个交易信息,导致交易的不公平,使得两笔相关联的交易的安全性得到保障,确保交易双方的利益不受损害。
通过本实施例,区块头保存设备及时有效地将与DAPP相关联的区块头信息保存在DAPP中,当用户试图验证一笔与DAPP相关联的交易时,区块头保存设备可以从DAPP所保存的区块头信息及时获取到与该笔交易相关的区块头信息,从而验证该交易,同时也提高了验证一笔交易的效率。
请参见图4,图4为本申请实施例提供的一种发起区块头获取请求的第一情况示意图,其执行主体为区块头保存设备。
410、确定上一次在DAPP中包括区块头之后DAPP的第一交易数量。
其中,第一交易数量为DAPP发起的交易数量或DAPP接收的交易数量或DAPP发起的交易数量与DAPP接收的交易数量之和。
420、确定第一交易数量是否大于预设值。
其中,该预设值可以是DAPP的系统设置,也可以是区块链网络对DAPP的设置,还可以是其他节点设置的,本申请实施例不作限定。
430、若第一交易数量大于预设值,则通过DAPP向区块链网络发送区块头获取请求。
440、接收来自区块链网络的区块头高度区间内的区块头信息。
450、从获取的区块头信息中确定与DAPP相关联的区块头信息。
460、将与DAPP相关联的区块头信息保存至DAPP中。
通过本实施例,在DAPP中的需要验证的交易达到预设值后,才发起区块头获取请求,可以节约网络资源,提高网络利用率。
请参见图5,图5为本申请实施例提供的一种发起区块头获取请求的第二情况示意图,其执行主体为区块头保存设备。
510、通过DAPP向所述区块链网络发起第三交易。
520、确定当前时间与第三交易的发起时间之间的时间间隔是否达到预设间隔。
530、若是,则通过DAPP向区块链网络发送区块头获取请求。
540、接收来自区块链网络的区块头高度区间内的区块头信息。
550、从获取的区块头信息中确定与DAPP相关联的区块头信息。
560、将与DAPP相关联的区块头信息保存至DAPP中。
在一种可能的实现方式中,该第三交易也可以是DAPP接收的交易,DAPP作为该第三交易的接收方,仍然可以在接收到第三交易的预设间隔时执行通过去中心化应用DAPP向区块链网络发送区块头获取请求。
例如,区块头保存设备通过DAPP发起第三交易,而从发起第三交易到当前时刻都没有向区块链网络发送区块头获取请求,则区块头保存设备可以在距发起第三交易的预设间隔时向区块链网络发送区块头获取请求,该预设间隔可以是十分钟。获取到相应的区块头信息后验证该第三交易,并且保存与DAPP相关的区块头。当然在该预设间隔内可能还有其他的交易被发起或被接收,则区块头保存设备可以同时发起对于多个交易的区块头获取请求。
在一种可能的实现方式中,在区块头保存设备验证第三交易成功后,可以确定第三交易的重要等级,若第三交易的重要等级低于预设等级,则在DAPP保存的区块头信息中删除第一区块头信息,该第一区块头信息为DAPP保存的区块头信息中与第三交易相关联的区块头信息。其中,重要等级可以是DAPP的用户预先设置的;或者根据交易类型确定的,例如若交易的类型是转账,则将该笔交易的重要等级设置为高,而若交易的类型是开票请求,则将该笔交易的重要等级设置为低,或者根据其他的交易类型设置不同的重要等级;还可以根据交易的内容和交易的金额确定重要等级,或者根据其他合理的方式确定重要等级,本申请实施例不作限定。通过该方法可以使得DAPP中不重要的交易对应的区块头被删除,以保证DAPP可以有足够的剩余存储空间去存储新的区块头。
在一种可能的实现方式中,若第三交易的重要等级低于预设等级,则可以确定DAPP发起的交易和/或接收的交易中是否存在第四交易,第四交易与第三交易不相同,第四交易与第一区块头信息相关。若不存在第四交易,即第三交易所在的区块中不存在另一个与DAPP相关联的交易,也就是说第三交易所在的区块中只有第三交易与DAPP相关联,且第三交易的重要等级达不到预设等级,故区块头保存设备认为存储第三交易的区块对应的区块头的重要等级同样不满足要求的重要等级,则区块头保存设备将第一区块头信息从DAPP中删除。当然,若第三交易对应的区块中存在第四交易,也可以校验第四交易的重要等级,若第四交易的重要等级也低于预设等级,则也可以将该区块对应的区块头删除。当然,若区块头保存设备的剩余存储空间大于预设阈值时,可以不删除该第一区块头信息。其中区块头保存设备的剩余存储空间的预设阈值可以是用户设定的,也可以是系统自动设置的。另外,即使区块头保存设备的剩余存储空间小于预设阈值,也可以不删除该第一区块头;或者,即便区块头保存设备的剩余存储空间大于预设阈值时,也可以删除该第一区块头信息,本申请实施例不作限定。通过本方法,可以校验一个重要等级小于预设等级的第三交易所对应的区块中是否存在另一笔与DAPP相关联的第四交易,以免因为校验出第三交易的重要等级低,而误将该区块对应的区块头删除。
通过本实施例,DAPP发起第三交易,在预设间隔的时间内就需要向区块链网络发送区块头获取请求,以及时验证该第三交易是否已被记录到区块链中,可以保证交易校验的及时性,使得区块头保存设备及时对DAPP发起或接收的交易进行验证。
请参见图6,图6为本申请实施例提供的一种区块头保存设备模块示意图。该设备的逻辑结构可包括:发送模块610、接收模块620、处理模块630和存储模块640。
发送模块610,用于通过去中心化应用DAPP向区块链网络发送区块头获取请求,区块头获取请求中携带请求获取的区块头高度区间。
接收模块620,用于接收来自区块链网络的区块头高度区间内的区块头信息。
处理模块630,用于从获取的区块头信息中确定与DAPP相关联的区块头信息。
存储模块640,用于将与DAPP相关联的区块头保存至所述DAPP中。
在一种可能的实现方式中,处理模块630还用于基于获取的区块头信息中交易哈希值,从获取的区块头信息中确定与DAPP发起的交易和/或接收的交易相关的目标区块头信息。将目标区块头信息确定为与DAPP相关联的区块头信息。
在一种可能的实现方式中,存储模块640将与DAPP相关联的区块头保存至DAPP中之后,接收模块620还用于接收DAPP发起的交易请求,该交易请求用于请求向区块链网络发起第一交易;处理模块630还用于确定与第一交易相关联的第二交易。发送模块610还用于当校验第二交易成功时,向区块链网络发起所述第一交易。
在一种可能的实现方式中,处理模块630还用于确定上一次在DAPP中包括区块头之后DAPP的第一交易数量,第一交易数量为DAPP发起的交易数量或DAPP接收的交易数量或DAPP发起的交易数量与DAPP接收的交易数量之和;确定第一交易数量是否大于预设值;若第一交易数量大于预设值,则执行通过去中心化应用DAPP向区块链网络发送区块头获取请求。
在一种可能的实现方式中,处理模块630还用于通过DAPP向区块链网络发起第三交易;确定当前时间与第三交易的发起时间之间的时间间隔是否达到预设间隔;若是,则执行通过去中心化应用DAPP向区块链网络发送区块头获取请求。
在一种可能的实现方式中,存储模块640将与所述DAPP相关联的区块头保存至所述DAPP中之后,处理模块630还用于基于DAPP保存的区块头信息校验第三交易是否成功;若校验第三交易成功,则确定第三交易的重要等级;若第三交易的重要等级低于预设等级,则在DAPP保存的区块头信息中删除第一区块头信息,该第一区块头信息为DAPP保存的区块头信息中与第三交易相关联的区块头信息。
在一种可能的实现方式中,处理模块630确定第三交易的重要等级低于预设等级之后,处理模块630还用于确定DAPP发起的交易和/或接收的交易中是否存在第四交易,该第四交易与第三交易不相同,第四交易与第一区块头信息相关;若不存在第四交易,则将该第一区块头信息从DAPP中删除。
请参见图7,图7为本申请实施例提供的一种区块头保存设备的实体结构简化示意图,该设备包括处理器710、存储器720以及通信接口730,该处理器710、存储器720以及通信接口730通过一条或多条通信总线连接。
处理器710被配置为支持区块头保存设备执行图2、图4和图5中方法中相应的功能。该处理器710可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP),硬件芯片或者其任意组合。
存储器720用于存储程序代码等。存储器720可以包括易失性存储器(volatilememory),例如随机存取存储器(random access memory,RAM);存储器720也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器720还可以包括上述种类的存储器的组合。
通信接口730用于收发数据、信息或消息等,也可以描述为收发器、收发电路等。例如,通信接口730用于向区块链网络发送区块头获取请求,或者,通信接口730用于接收高度区间内的区块头信息等。
在本发明实施例中,该处理器710可以调用存储器720中存储的程序代码以执行以下操作:
在一种可能的实现方式中,控制通信接口730通过去中心化应用DAPP向区块链网络发送区块头获取请求,区块头获取请求中携带请求获取的区块头高度区间;接收来自区块链网络的区块头高度区间内的区块头信息。处理器710调用存储器720中存储的程序代码从获取的区块头信息中确定与DAPP相关联的区块头信息。存储器720将与DAPP相关联的区块头保存至所述DAPP中。
在一种可能的实现方式中,处理器710调用存储器720中存储的程序代码基于获取的区块头信息中交易哈希值,从获取的区块头信息中确定与DAPP发起的交易和/或接收的交易相关的目标区块头信息。将目标区块头信息确定为与DAPP相关联的区块头信息。
在一种可能的实现方式中,存储器720将与DAPP相关联的区块头保存至DAPP中之后,控制通信接口730接收DAPP发起的交易请求,该交易请求用于请求向区块链网络发起第一交易;处理器710调用存储器720中存储的程序代码确定与第一交易相关联的第二交易。控制通信接口730当校验第二交易成功时,向区块链网络发起所述第一交易。
在一种可能的实现方式中,处理器710调用存储器720中存储的程序代码确定上一次在DAPP中包括区块头之后DAPP的第一交易数量,第一交易数量为DAPP发起的交易数量或DAPP接收的交易数量或DAPP发起的交易数量与DAPP接收的交易数量之和;确定第一交易数量是否大于预设值;若第一交易数量大于预设值,则执行通过去中心化应用DAPP向区块链网络发送区块头获取请求。
在一种可能的实现方式中,处理器710调用存储器720中存储的程序代码通过DAPP向区块链网络发起第三交易;确定当前时间与第三交易的发起时间之间的时间间隔是否达到预设间隔;若是,则执行通过去中心化应用DAPP向区块链网络发送区块头获取请求。
在一种可能的实现方式中,存储器720将与所述DAPP相关联的区块头保存至所述DAPP中之后,处理器710调用存储器720中存储的程序代码基于DAPP保存的区块头信息校验第三交易是否成功;若校验第三交易成功,则确定第三交易的重要等级;若第三交易的重要等级低于预设等级,则在DAPP保存的区块头信息中删除第一区块头信息,该第一区块头信息为DAPP保存的区块头信息中与第三交易相关联的区块头信息。
在一种可能的实现方式中,处理器710调用存储器720中存储的程序代码确定第三交易的重要等级低于预设等级之后,处理器710调用存储器720中存储的程序代码确定DAPP发起的交易和/或接收的交易中是否存在第四交易,该第四交易与第三交易不相同,第四交易与第一区块头信息相关;若不存在第四交易,则将该第一区块头信息从DAPP中删除。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例处理设备中的模块可以根据实际需要进行合并、划分和删减。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (10)

1.一种区块头保存方法,其特征在于,包括:
通过去中心化应用DAPP向区块链网络发送区块头获取请求,所述区块头获取请求中携带请求获取的区块头高度区间;
接收来自所述区块链网络的所述区块头高度区间内的区块头信息;
从获取的所述区块头信息中确定与所述DAPP相关联的区块头信息;
将与所述DAPP相关联的区块头信息保存至所述DAPP中。
2.根据权利要求1所述的方法,其特征在于,所述从获取的所述区块头信息中确定与所述DAPP相关联的区块头信息,包括:
基于获取的所述区块头信息中交易哈希值,从获取的所述区块头信息中确定与所述DAPP发起的交易和/或接收的交易相关的目标区块头信息;
将所述目标区块头信息确定为与所述DAPP相关联的区块头信息。
3.根据权利要求1所述的方法,其特征在于,所述将与所述DAPP相关联的区块头保存至所述DAPP中之后,所述方法还包括:
接收所述DAPP发起的交易请求,所述交易请求用于请求向所述区块链网络发起第一交易;
确定与所述第一交易相关联的第二交易;
基于所述DAPP保存的区块头信息校验所述第二交易是否成功;
当校验所述第二交易成功时,向所述区块链网络发起所述第一交易。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定上一次在所述DAPP中包括区块头之后所述DAPP的第一交易数量,所述第一交易数量为所述DAPP发起的交易数量或所述DAPP接收的交易数量或所述DAPP发起的交易数量与所述DAPP接收的交易数量之和;
确定所述第一交易数量是否大于预设值;
若所述第一交易数量大于所述预设值,则执行所述通过去中心化应用DAPP向区块链网络发送区块头获取请求。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述DAPP向所述区块链网络发起第三交易;
确定当前时间与所述第三交易的发起时间之间的时间间隔是否达到预设间隔;
若是,则执行所述通过去中心化应用DAPP向区块链网络发送区块头获取请求。
6.根据权利要求5所述的方法,其特征在于,所述将与所述DAPP相关联的区块头保存至所述DAPP中之后,所述方法还包括:
基于所述DAPP保存的区块头信息校验所述第三交易是否成功;
若校验所述第三交易成功,则确定所述第三交易的重要等级;
若所述第三交易的重要等级低于预设等级,则在所述DAPP保存的区块头信息中删除第一区块头信息,所述第一区块头信息为所述DAPP保存的区块头信息中与所述第三交易相关联的区块头信息。
7.根据权利要求6所述的方法,其特征在于,确定所述第三交易的重要等级低于预设等级之后,所述方法还包括:
确定所述DAPP发起的交易和/或接收的交易中是否存在第四交易,所述第四交易与所述第三交易不相同,所述第四交易与所述第一区块头信息相关;
若不存在所述第四交易,则将所述第一区块头信息从所述DAPP中删除。
8.一种区块头保存设备,其特征在于,包括:
发送模块,用于通过去中心化应用DAPP向区块链网络发送区块头获取请求,所述区块头获取请求中携带请求获取的区块头高度区间;
接收模块,用于接收来自所述区块链网络的所述区块头高度区间内的区块头信息;
处理模块,用于从获取的所述区块头信息中确定与所述DAPP相关联的区块头信息;
存储模块,用于将与所述DAPP相关联的区块头保存至所述DAPP中。
9.一种区块头保存设备,其特征在于,包括:
处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,当所述程序指令被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述的方法。
CN202010102825.XA 2020-02-19 2020-02-19 一种区块头保存方法及其设备 Pending CN111309809A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010102825.XA CN111309809A (zh) 2020-02-19 2020-02-19 一种区块头保存方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010102825.XA CN111309809A (zh) 2020-02-19 2020-02-19 一种区块头保存方法及其设备

Publications (1)

Publication Number Publication Date
CN111309809A true CN111309809A (zh) 2020-06-19

Family

ID=71145063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010102825.XA Pending CN111309809A (zh) 2020-02-19 2020-02-19 一种区块头保存方法及其设备

Country Status (1)

Country Link
CN (1) CN111309809A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259130A (zh) * 2021-06-21 2021-08-13 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备以及介质
CN115330419A (zh) * 2022-09-07 2022-11-11 张文爱 基于区块链的防伪验证方法、平台及计算机可读介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113259130A (zh) * 2021-06-21 2021-08-13 腾讯科技(深圳)有限公司 一种交易数据处理方法、装置、设备以及介质
CN115330419A (zh) * 2022-09-07 2022-11-11 张文爱 基于区块链的防伪验证方法、平台及计算机可读介质

Similar Documents

Publication Publication Date Title
US11501533B2 (en) Media authentication using distributed ledger
CN110175840B (zh) 联盟链中实现轻钱包机制的方法、客户端、联盟链及系统
CN107396360B (zh) 区块验证方法及装置
CN107171810B (zh) 区块链的验证方法及装置
KR20210003234A (ko) 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것
CN107493340B (zh) 区块链网络中的数据分发校验方法、装置及系统
US11888985B2 (en) Blockchain system, registration terminal, approval terminal, smart contract registration method, and smart contract registration program
US20210073796A1 (en) Method of selective authentication of a blockchain user with a smart contract
US11366932B2 (en) Consensus method and data verification method, apparatus, and system of consortium blockchain
US20230177505A1 (en) Transaction Verification Method and Apparatus
CN112087502B (zh) 处理请求的方法、装置、设备及存储介质
WO2021108258A1 (en) Optimizations for verification of interactions system and method using probability density functions
CN112235420A (zh) 基于区块链的数据同步方法、系统及相关设备
CN113326165B (zh) 基于区块链的数据处理方法、设备及计算机可读存储介质
JPWO2019038839A1 (ja) ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム
CN111309809A (zh) 一种区块头保存方法及其设备
WO2021195618A1 (en) System and method for integration and validation
US20240163119A1 (en) Device management method, system, and apparatus
CN113988857A (zh) Nft交易方法、交易系统、计算机可读存储介质及终端设备
CN112785408A (zh) 基于哈希的对账方法及装置
CN113132459B (zh) 分布式存储方法、系统、存储介质、信息数据处理终端
CN110620776A (zh) 一种数据转移信息传输方法及其装置
CN110858211B (zh) 数据存储方法、装置及系统、存储介质
US11115189B2 (en) Verifying a blockchain-type ledger
TW202135504A (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