CN108734453A - 区块链数据处理方法、装置、计算机设备和存储介质 - Google Patents
区块链数据处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108734453A CN108734453A CN201810487046.9A CN201810487046A CN108734453A CN 108734453 A CN108734453 A CN 108734453A CN 201810487046 A CN201810487046 A CN 201810487046A CN 108734453 A CN108734453 A CN 108734453A
- Authority
- CN
- China
- Prior art keywords
- block
- chain
- height
- node
- current
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种区块链数据处理方法、装置、计算机设备和存储介质,所述方法包括:获取区块链中各个节点的节点信息,节点信息包括区块信息,根据各个节点的区块信息确定对应的节点不可逆块,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度,获取区块链的历史确认链高度,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果,根据有效性验证结果更新当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态,提高了区块链的工作状态的判断准确度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种区块链数据处理方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,区块链数据处理技术不断发展。区块链技术(Blockchain technology,BT),也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录。区块链目前主要包括公有链(PublicBlock chain)、私有链(Private Block chain)、联盟链(Consortium Block chain)、许可链(Permissioned Block chain)、混合链(Hybrid Block chain)。
传统的区块链工作状态判断方法主要是以区块链的节点为单元确定整个区块链的工作状态,区块链的工作状态的判断准确度较低。
发明内容
基于此,有必要针对上述技术问题,提供一种通过获取区块链中各个节点的区块信息,分析各个节点的区块信息得到各个节点对应的不可逆区块,得到整个区块链的初始链高度,将初始链高度作为当前链高度,对当前链高度进行验证,根据验证结果更新当前链高度,根据更新后的当前链高度、历史已确认链高度和初始链高度确定整个区块链的工作状态,提高了区块链的工作状态的判断准确度的区块链数据处理方法、装置、计算机设备和存储介质。
一种区块链数据处理方法,包括:
获取区块链中各个节点的节点信息,节点信息包括区块信息;
根据各个节点的区块信息确定对应的节点不可逆块;
根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度;
获取区块链的历史确认链高度;
当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果;
根据有效性验证结果更新当前链高度;
根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
一种区块链数据处理装置,包括:
节点信息获取模块,用于获取区块链中各个节点的节点信息,节点信息包括区块信息;
节点不可逆块获取模块,用于根据各个节点的区块信息确定对应的节点不可逆块;
链高度确定模块,用于根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度;
历史链高度获取模块,用于获取区块链的历史确认链高度;
链高度验证模块,用于当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果;
链高度更新模块,用于根据有效性验证结果更新当前链高度;
链工作状态确定模块,用于根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取区块链中各个节点的节点信息,节点信息包括区块信息;
根据各个节点的区块信息确定对应的节点不可逆块;
根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度;
获取区块链的历史确认链高度;
当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果;
根据有效性验证结果更新当前链高度;
根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取区块链中各个节点的节点信息,节点信息包括区块信息;
根据各个节点的区块信息确定对应的节点不可逆块;
根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度;
获取区块链的历史确认链高度;
当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果;
根据有效性验证结果更新当前链高度;
根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
上述区块链数据处理方法、装置、计算机设备和存储介质,获取区块链中各个节点的节点信息,节点信息包括区块信息,根据各个节点的区块信息确定对应的节点不可逆块,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度,获取区块链的历史确认链高度,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果,根据有效性验证结果更新当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。通过获取区块链中各个节点的区块信息,分析各个节点的区块信息得到不可逆区块,得到整个区块链的初始链高度,将初始链高度作为当前链高度,对当前链高度进行验证,根据验证结果更新当前链高度,根据更新后的当前链高度、历史已确认链高度和初始链高度确定整个区块链的工作状态,提高了区块链的工作状态的判断准确度。
附图说明
图1为一个实施例中区块链数据处理方法的应用环境图;
图2为一个实施例中区块链数据处理方法的流程示意图;
图3为一个实施例中展示区块信息的示意图;
图4为一个实施例中当前链高度验证步骤的流程示意图;
图5为一个实施例中确定区块链工作状态步骤的流程示意图;
图6为一个实施例中节点不可逆块确定步骤的流程示意图;
图7为一个实施例中当前链高度区块哈希值验证步骤的流程示意图;
图8为一个实施例中区块信息查询的流程示意图;
图9为一个具体实施例中区块链数据处理方法的流程示意图;
图10为一个实施例中区块链数据处理装置的结构框图;
图11为一个实施例中节点不可逆获取模块的结构框图;
图12为一个实施例中链高度验证模块的结构框图;
图13为另一个实施例中区块链数据处理装置的结构框图;
图14为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中区块链数据处理方法的应用环境图。参照图1,该区块链数据处理方法应用于区块链数据处理系统。该区块链数据处理系统包括区块链内部的终端110、服务器120、终端130、服务器140和区块链外部的终端150或服务器160中的至少一种。终端110、服务器120、终端130、服务器140、终端150和服务器160通过网络链接。获取区块链中各个节点的节点信息可以是区块链内部的终端110、服务器120、终端130、服务器140,也可以是区块链外部的终端150或服务器160。为了方便说明以服务器120为例,服务器120获取区块链中各个节点的节点信息,节点信息包括区块信息,根据各个节点的区块信息确定对应的节点不可逆块,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度,获取区块链的历史确认链高度,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果,根据有效性验证结果更新当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
上述获取节点信息、节点不可逆块、更新链高度和确定区块链的工作状态均可在终端110、终端130、服务器140、终端150或服务器160中进行。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种区块链数据处理方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120或终端150或服务器160)来举例说明。参照图2,该区块链数据处理方法具体包括如下步骤:
步骤S202,获取区块链中各个节点的节点信息,节点信息包括区块信息。
其中,区块链目前主要包括公有链(Public Block chain)、私有链(PrivateBlock chain)、联盟链(Consortium Block chain)、许可链(Permissioned Block chain)、混合链(Hybrid Block chain),区块链中的节点是指用于存储和验证区块链中产生的数据的终端或服务器,区块链中的各个节点都保存有同一份数据,新接入的节点,会慢慢更新,直到和所有的节点数据都一致。节点信息包括保存在节点中的信息,如区块信息、终端或服务器等地址等信息,区块信息包括区块头和区块体,区块头信息可以自定义,不同的应用场景包含不同的信息,如区块头包括上一区块的哈希值(Pre hash)、当前区块的哈希值(Hash)以及时间戳(Time Stamp)。区块体中存储着当前区块的详细数据,该数据与区块链的应用场景相关,不同的应用场景保存的数据和产生的数据类型不一致,如当应用场景为支付和交易金额时,区块体中存储的数据包括交易记录等,当应用场景为能源管理时,区块体中存储的数据包括能源的类型和对应的存储数量等。
具体地,获取区块链中各个节点的节点信息可以是区块链中的任意一个节点或是区块链以外的节点,在一个实施例中,将获取节点信息的节点作为查询节点。查询节点启动节点信息查询程序后,当查询节点为区块链中的节点时,向查询节点以外的其他节点发送查询请求,并接收各个节点返回的节点信息,当查询节点不是区块链中的节点时,向区块链中的所有节点发送查询请求,并接收各个节点返回的节点信息。
在一个实施例中,获取查询程序与区块链中各个节点的网络连接,若查询程序与区块链中各个节点设置有心跳包,当查询程序与区块链中各个节点的心跳包维持状态为维持时,表示查询程序与区块链中各个节点的网络连接正常连接,当查询程序与区块链中各个节点的心跳包维持状态为未维持时,可以通过网络测试命令对网络连接状态进行测试,若测试成功表示网络正常,节点程序运行异常,当测试失败,表示网络连接状态为异常。若查询程序与区块链中各个节点未设置有心跳包,通过发送查询请求,接收到节点返回的查询结果,表示与该节点的网络连接正常,未接收到节点返回的查询结果的,可以通过网络测试命令对网络连接状态进行测试,如可以通过ping命令测试节点网络是否连通。通过测试节点的网络连接状态确定节点的异常数目,当节点异常数目占比超出预设异常节点数目比例时,表示区块链的工作状态为异常。
在一个实施例中,当查询节点为服务器时,通过网络将节点信息发送至终端,在终端上展示区块信息,当查询节点终端时,直接在终端上展示区块信息,区块的头部信息包括但不限于区块高度、区块哈希、区块创建时间和区块交易个数等。具体展示信息和展示方式可根据需求进行配置,如表1所示,为展示的区块信息。
表1区块信息
节点名称 | 位置 | 状态 | 区块高度 | 当前区块哈希值 | 最新区块时间 |
FIT | 深圳(60.100) | 已同步 | 16,416,904 | 5d512dd7bf42... | 2018/03/20 11:12:20 |
资产网关 | 深圳(60.101) | 已同步 | 16,416,904 | 5d512dd7bf42... | 2018/03/20 11:12:20 |
银行 | 深圳(60.120) | 已同步 | 16,416,904 | 5d512dd7bf42... | 2018/03/20 11:12:20 |
业务方 | 深圳(60.160) | 已同步 | 16,416,904 | 5d512dd7bf42... | 2018/03/20 11:12:20 |
在一个实施例中,获取配置信息,根据配置信息获取对应的节点区块,将各个节点的区块信息展示在终端上。查询程序定时向区块链中的节点发送请求,根据请求获取新的区块信息,根据区块信息中的头部信息确定区块的连接顺序,按照连接顺序连接对应的区块。当区块出现分叉时,画出分叉,当区块未出现分叉时,按照区块出现顺序直接连接。交易会在整个区块链中广播,区块链中的每个节点都会收到这些交易,各个节点从所有交易中选择部分交易数据生成对应的区块。区块链中出现分叉是因为存在网络延时等现实因素,使得区块链中的多个节点在一段时间内可能产生多个高度相同,但是交易内容或者交易顺序不一样的区块,多个已生成区块的节点将已生成区块同时广播致其他节点,其他节点最终会收到多个高度相同,内容不同的区块,从而形成分叉。如图3所示,在终端展示区块分叉图,图3中标号101表示区块,当区块存在分叉时,画出分叉,如图中block A1和block A2是block A的两个分叉。区块链中因为区块在不同时间到达不同节点,导致节点存在不同的区块链视角。
步骤S204,根据各个节点的区块信息确定对应的节点不可逆块。
具体地,节点不可逆块是指节点已经确认的区块,区块链采用不同的共识机制时,节点不可逆块的确定方式不一样,常见的共识机制包括工作证明(Proof of Work,POW)股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake DPOS)或实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)等。已确认区块是指区块中的信息已经被验证过,且验证通过的区块为已确认区块。如区块链的应用场景为交易时,当其中一个节点产生一笔新的交易产生时,会被广播到区块链中的其他参与节点,各个节点将若干新的交易数据放入区块中,每个节点会对若干新的交易数据对应的验证数据收集到区块中,通过区块对上述验证数据进行验证,将最快得到的验证结果广播至其他节点,其他节点对验证结果中的交易是否有效进行验证,确认交易成功,且具有有效标识信息后,接收该区块,该区块为已确认区块。
步骤S206,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度。
具体地,各个节点对应的节点不可逆块中包含了节点高度信息,通过对节点不可逆块的高度信息进行统计,得到对应的统计结果,根据统计结果确定整个区块链的链高度,将该链高度作为初始链高度和当前链高度。
在一个实施例中,可以对节点不可逆块的高度信息的按照预设排序规则对高度信息进行排序,得到对应的排序结果,按照高度筛选规则选取其中一个节点不可逆块对应的高度信息作为初始链高度。如按照高度值从大到小对高度信息进行排序,高度信息数目为n,将排在第(1/2*n+1)位或(2/3*n+1)位高度信息作为初始链高度。
步骤S208,获取区块链的历史确认链高度。
具体地,历史确认链高度是整个区块链的不可逆块对应的链高度,整个区块链的不可逆块是指在整个区块链中被确认的不可更改的区块数据对应的区块。该历史确认链高度是根据历史区块对应的区块信息确定的。
步骤S210,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果。
具体地,对当前链高度和历史确认链高度进行比较,当当前链高度大于历史确认链高度时,获取各个节点的中与当前链高度相同高度的区块对应的区块信息,根据自定义的验证规则对各个节点的区块信息进行验证,得到对应的有效性验证结果,有效性验证结果包括有效和无效两种结果,有效表示验证通过,无效表示验证不通过。
步骤S212,根据有效性验证结果更新当前链高度。
具体地,根据有效性验证结果,确定当前链高度,当有效性验证结果为有效时,不修改当前链高度,当有效性验证结果为无效时,更新当前链高度,得到更新后的当前链高度,当前链高度的更新规则可以自定义,如可以将当前链高度的高度减一的链高度作为新的当前链高度。。
步骤S214,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
具体地,对更新后的当前链高度的区块信息进行验证,直到当前链高度对应的区块信息的验证结果为通过时,对当前链高度与历史确认链高度进行判断,得到对应的判断结果,当判断结果为当前链高度与历史确认链高度相同时,计算初始链高度和历史确认链高度的高度差,根据高度差确定区块链的工作状态,其中当区块链的工作状态包括正常工作和异常两种工作状态,当工作状态为异常时,可以设置提示信息,如提示用于暂停交易等,当判断结果为当前链高度大于历史确认链高度时,确定区块链的工作状态为正常。
上述区块链数据处理方法,通过获取区块链中各个节点的节点信息,节点信息包括区块信息,根据各个节点的区块信息确定对应的节点不可逆块,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度,获取区块链的历史确认链高度,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果,根据有效性验证结果更新当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。通过获取区块链中各个节点的区块信息,分析各个节点的区块信息得到各个节点对应的不可逆区块,通过分析节点不可逆块确定整个区块链的初始链高度,将初始链高度作为当前链高度,对当前链高度对应的区块信息进行验证,当验证不通过时,更新当前链高度,根据更新后的当前链高度、历史确认链高度和当前链高度确定整个区块链的工作状态,提高了区块链的工作状态的判断准确度。
在一个实施例中,如图4所示,根据各个节点的区块信息得到当前链高度的有效性验证结果之后,还包括:
步骤S302,当有效性验证结果为当前链高度有效时,将当前链高度作为当前确认链高度,区块链的工作状态为正常状态。
具体地,有效性验证结果为当前链高度有效,表示当前链高度对应的区块信息满足预设区块信息的验证条件,区块链的工作状态为正常状态,且将当前链高度作为当前确认链高度。
在一个实施例中,满足预设区块信息的验证条件为哈希值验证,对区块信息中区块头部信息中包含的哈希值进行验证,当当前链高度对应的区块的哈希值的区块数目满足预设数目时,验证通过。如区块链中包含的总节点数目为100,得到当前链高度对应的区块的哈希值一致的区块数目度80,即对应的节点数目为80,预设数目为75时,由于80>75,验证通过。
步骤S304,当有效性验证结果为当前链高度无效时,进入步骤S212。
具体地,有效性验证结果为当前链高度无效,表示当前链高度对应的区块信息不满足预设区块信息的验证条件,不满足验证条件时,更新当前链高度,对更新后的当前高度对应的区块信息进行验证,直到当前链高度对应的区块信息验证通过。通过对整个区块链各个节点中当前链高度对应的区块的哈希值进行验证,确定当前链高度是否有效,各个区块对应的哈希值是唯一的,通过哈希值来判断链高度的有效性更为准确,且相对于验证整个区块的信息,哈希值验证更为简便。
在一个实施例中,如图5所示,步骤S214包括:
步骤S2142,将更新后的当前链高度作为当前链高度,当当前链高度大于历史确认链高度时,进入步骤S210。
具体地,将更新后的当前链高度作为当前链高度,对当前链高度和历史确认链高度进行比较,当当前链高度大于历史确认链高度时,进入步骤S210,即对各个节点对应的当前链高度的区块信息进行验证,直到当前链高度的区块信息的验证结果为验证通过。
步骤S2144,当当前链高度等于历史确认链高度时,根据初始链高度和历史确认链高度得到链高度差异信息。
具体地,当当前链高度等于历史确认链高度时,当前链高度的区块信息已通过验证,则计算初始链高度和历史确认链高度得到链高度差异信息,其中高度差异信息可以直接采用两者的高度差,也可以是对两者的高度差进行自定义处理。
步骤S2146,根据链高度差异信息与预设的链高度差异范围确定区块链的工作状态。
具体地,预设的链高度差异范围是预先自定义配置的数据范围,该数据范围可以根据需求或经验进行配置。当链高度差异信息未超出预设的链高度差异范围时,表示区块链的工作状态为正常,当链高度差异信息超出预设的链高度差异范围时,表示区块链的工作状态为异常。
在一个实施例中,如图6所示,步骤S202包括:
步骤S2022,根据各个节点的区块信息确定各个节点对应的最新已确认区块,得到各个节点对应的节点不可逆块。
具体地,根据各个节点的区块信息可以确定各个节点对应的最新已确认区块,并将最新已确认区块作为不可逆块,其中最新已确认区块为当前时刻区块链中已经达成共识的区块信息,各个节点对的区块信息已经验证通过,即被该节点承认的区块数据。如bft-raft、pbft都是将节点中最新已确认区块和之前的全部区块作为该节点的节点不可逆块。
步骤S2024,根据各个节点的区块信息确定各个节点对应的高度最高已确认区块,根据高度最高已确认区块得到各个节点对应的节点不可逆块。
具体地,根据各个节点的区块信息中的高度信息,确定各个节点对应的高度最高已确认区块,根据自定义的预设确认规则和高度最高已确认区块确定各个节点对应的节点不可逆块,一般情况下高度最高的已确认区块对应的区块链的记录更为可靠。
在一个实施例中,自定义的预设确认规则为将与高度最高已确认区块的高度差等于预设阈值的已确认区块作为节点不可逆块,当共识机制为POW机制,将高度最高已确认区块的高度差为6的已确认区块和高度差为6的已确认区块之前的区块作为节点不可逆块。
步骤S2026,根据各个节点的区块信息确定当前周期对应的出块节点数目。
具体地,当前周期指正在进行区块信息确认的周期,根据各个节点的已保存的区块信息,确认整个区块链中已经完成区块信息确认的节点数目,将该节点数目作为出块节点数目。
步骤S2028,根据出块节点数目计算对应的出块节点比例,当出块节点比例满足预设条件时,将当前周期之前的周期对应的区块作为节点对应的节点不可逆块。
具体地,根据出块节点数目和总节点数目计算出块节点比例,当出块节点比例大于预先设置的比例时,将当前周期之前对应的区块作为节点对应的节点不可逆块。如当共识机制DPOS机制时,若节点数目为n,DPOS以n为周期,各个代表轮流出块,若最新周期中,2/3*n+1个代表出块,则将最新周期之前的区块作为节点不可逆块。
在一个实施例中,如图7所示,根据各个节点的区块信息得到当前链高度的有效性验证结果,包括:
步骤S2062,根据各个节点的区块信息得到与当前链高度的高度相同的目标区块。
步骤S2064,当目标区块中具有相同区块哈希值的区块占目标区块的比例大于预设比例时,当前链高度有效,否则当前链高度无效。
具体地,目标区块是指各个节点的区块信息中的高度与当前链高度相同的区块,如当前链高度为80,则从各个节点中选取区块高度为80的区块作为目标区块。获取目标区块的区块哈希值,根据预设规则对目标区块中的区块哈希值进行验证,统计具有相同区块哈希的区块数目,计算目标区块中具有相同区块哈希值的区块占目标区块的比例,当该比例大于预先设置的比例时,表示在当前链高度大多数节点对应的区块哈希值一致,表示大部分节点都确认该区块数据,因此当前链高度是有效的,当该比例小于或等于预先设置的比例时,表示大部分节点在当前链高度对应的区块信息不同,表示当前链高度对应的区块不适合作为整个区块链的不可逆块。由于区块哈希值是唯一标识数据的标签,故根据区块哈希值的一致性,来判断链高度的有效性可以提高数据处理效率。
在一个实施例中,如图8所示,区块链数据处理方法还包括:
步骤S402,获取查询区块信息,查询区块信息包括查询哈希值或查询区块高度。
步骤S404,从区块链各个节点对应的区块中获取与查询区块信息匹配的区块组成候选区块。
步骤S406,获取链不可逆块,根据所述链不可逆块确定所述候选区块的区块确认状态。
具体地,查询区块信息是用户或机构配置的查询条件信息,其中查询条件信息包括查询哈希值或查询区块高度等。终端或服务器根据用户配置信息从区块链各个节点对应的区块中获取与查询条件信息匹配的区块,组成候选区块,获取区块链对应的链不可逆块,链不可逆块是与已确认的链高度对应的区块。获取链不可逆块对应的区块高度和哈希值,对链不可逆块对应的区块高度对候选区块中的各个区块对应的区块高度进行验证,对链不可逆块对应的哈希值对候选区块中各个区块对应的哈希值进行验证,当候选区块中当前区块哈希值和高度都验证通过时,表示当前区块的区块确认状态为已确认。
在一个实施例中,当查询条件为查询区块高度时,从区块链各个节点中的区块中与查询区块高度相同高度的区块,组成候选区块,对候选区块的区块哈希进行验证,判断该候选区块中包含的区块类型数目,根据链不可逆块确定候选区块中各个区块的确认状态,将确认状态为已确认的区块和对应的区块类型进行展示。
在一个实施例中,查询区块信息为区块交易信息,查询哈希值为区块交易信息对应的交易哈希值。
具体地,区块交易信息为用户或机构配置的查询条件,终端或服务器在获取到该查询条件时,从区块链各个节点对应的区块中获取与查询条件信息匹配的区块,组成候选区块,获取区块链对应的链不可逆块,链不可逆块是与已确认的链高度对应的区块。获取链不可逆块对应的区块高度和哈希值,对链不可逆块对应的区块高度对候选区块中的各个区块对应的区块高度进行验证,对链不可逆块对应的哈希值对候选区块中各个区块对应的哈希值进行验证,当候选区块中当前区块哈希值和高度都验证通过时,表示当前区块的交易确认状态为已确认。
在一个实施例中,当查询条件为查询查询哈希时,从区块链各个节点中的区块中与查询哈希值相同哈希值的区块,组成候选区块,根据候选区块的区块头部信息按照预设规则进行排序,按照排序规则和链不可逆块逐一对确定候选区块中各个区块的确认状态,将确认状态为已确认的区块进行展示。
在一个实施例中,查询条件为哈希值时,根据区块头部信息的信息完整度进行排序,将区块头部信息最全的区块排在前面,先根据链不可逆块确定区块头部信息最全的区块对应的区块确认状态,当区块头部信息最全的区块对应的区块确认状态为已确认时,将区块头部信息最全的区块对应的区块展示在终端上,当区块头部信息最全的区块对应的区块确认状态为未确认时,获取下一个区块,并对下一区块的区块确认状态进行确认,直到其中一个区块被确认并展示,或返回并未查询到此区块。
在一个具体的实施例中,如图9所示,区块链数据处理方法包括:
步骤S502,获取区块链各个节点的工作状态,工作状态包括正常和异常。
具体地,区块链各个节点的工作状态可以根据查询程序是否接收到节点反馈的查询数据确定,可以接收表示节点的工作状态为正常,不能接收到节点反馈的查询数据表示节点工作状态的异常。
步骤S504,统计工作状态为异常的节点数目,得到异常节点数目。
步骤S506,判断异常节点数目占比是否大于预设异常数目比例,当异常节点数目占比大于预设异常数目比例时进入步骤S508A,反之进入步骤S508B。
步骤S508A,当异常节点数目占比大于预设异常数目比例时,区块链的工作状态为异常。预设异常数目比例为预先设置的比例,如可以设置预设异常比例为30%,则异常节点数目的占比大于30%时,说明整个区块链的异常节点数目超过了预设范围,表示区块链的工作状态为异常,可以提示用户或机构减少交易。
步骤S508B,获取最新已确认的区块头部信息和最新高度信息。最新已确认的区块头部信息是指各个节点中最新确认区块的区块头部信息,最新高度信息是指各个节点中已生成区块的区块高度。
步骤S510a,根据各个节点的区块信息确定各个节点对应的最新已确认区块,得到各个节点对应的节点不可逆块。
步骤S510b,根据各个节点的区块信息确定各个节点对应的高度最高已确认区块,根据高度最高已确认区块得到各个节点对应的节点不可逆块。
步骤S510c,根据各个节点的区块信息确定当前周期对应的出块节点数目,根据出块节点数目计算对应的出块节点比例,当出块节点比例满足预设条件时,将当前周期之前的周期对应的区块作为节点对应的节点不可逆块。
步骤S512,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度。
步骤S514,获取区块链的历史确认链高度。
步骤S516,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果。
步骤S518,当有效性验证结果为当前链高度有效时,将当前链高度作为当前确认链高度,区块链的工作状态为正常状态。
步骤S520,当有效性验证结果为当前链高度无效时,更新当前链高度。
步骤S522,将更新后的当前链高度作为当前链高度,当当前链高度大于历史确认链高度时,返回步骤S516。
步骤S524,当当前链高度等于历史确认链高度时,根据初始链高度和历史确认链高度得到链高度差异信息。
步骤S526,根据链高度差异信息与预设的链高度差异范围确定区块链的工作状态。
图2、4-9为一个实施例中区块链数据处理方法的流程示意图。应该理解的是,虽然图2、4-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4-9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种区块链数据处理装置,包括节点信息获取模块202、节点不可逆块获取模块204、链高度确定模块206、历史链高度获取模块208、链高度验证模块210、链高度更新模块212和链工作状态确定模块214。
节点信息获取模块202,用于获取区块链中各个节点的节点信息,节点信息包括区块信息。
节点不可逆块获取模块204,用于根据各个节点的区块信息确定对应的节点不可逆块。
链高度确定模块206,用于根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度。
历史链高度获取模块208,用于获取区块链的历史确认链高度。
链高度验证模块210,用于当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果。
链高度更新模块212,用于根据有效性验证结果更新当前链高度。
链工作状态确定模块214,用于根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
在一个实施例中,区块链数据处理装置还包括:
链工作状态确定模块214还用于当有效性验证结果为当前链高度有效时,将当前链高度作为当前确认链高度,区块链的工作状态为正常状态。当有效性验证结果为当前链高度无效时,进入链高度更新模块212。
在一个实施例中,如图所示,链工作状态确定模块214包括:
链高度更新单元2142,用于将更新后的当前链高度作为当前链高度,当当前链高度大于历史确认链高度时,进入链高度验证模块210。
链高度差异计算单元2144,用于当当前链高度等于历史确认链高度时,根据初始链高度和历史确认链高度得到链高度差异信息。
工作状态确定单元2146,用于根据链高度差异信息与预设的链高度差异范围确定区块链的工作状态。
在一个实施例中,如图11所示,节点不可逆块获取模块204包括:
第一获取单元2022,用于根据各个节点的区块信息确定各个节点对应的最新已确认区块,得到各个节点对应的节点不可逆块。
第二获取单元2024,根据各个节点的区块信息确定各个节点对应的高度最高已确认区块,根据高度最高已确认区块得到各个节点对应的节点不可逆块。或
第三获取单元2026,用于根据各个节点的区块信息确定当前周期对应的出块节点数目,根据出块节点数目计算对应的出块节点比例,当出块节点比例满足预设条件时,将当前周期之前的周期对应的区块作为节点对应的节点不可逆块。
在一个实施例中,如图12所示,链高度验证模块210,包括:
目标区块获取单元2102,用于根据各个节点的区块信息得到与当前链高度的高度相同的目标区块。
链高度验证单元2104,用于当目标区块中具有相同区块哈希值的区块占目标区块的比例大于预设比例时,当前链高度有效,否则当前链高度无效。
在一个实施例中,如图13所示,区块链数据处理装置,还包括:
查询数据获取模块302,用于获取查询区块信息,查询区块信息查询包括哈希值或查询区块高度。
候选区块确定模块304,用于从区块链各个节点对应的区块中获取与查询区块信息匹配的区块组成候选区块;
区块确认状态确定模块306,用于获取链不可逆块,根据链不可逆块确定候选区块的区块确认状态。
在一个实施例中,查询数据获取模块302中的查询区块信息为区块交易信息,查询哈希值为区块交易信息对应的交易哈希值。
图14示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图14所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现区块链数据处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行区块链数据处理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的区块链数据处理装置可以实现为一种计算机程序的形式,计算机程序可在如图14所示的计算机设备上运行。计算机设备的存储器中可存储组成该区块链数据处理装置的各个程序模块,比如,图9所示的节点信息获取模块202、节点不可逆块获取模块204、链高度确定模块206、历史链高度获取模块208、链高度验证模块210、链高度更新模块212和链工作状态确定模块214。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的区块链数据处理方法中的步骤。
例如,图14所示的计算机设备可以通过如图9所示的区块链数据处理装置中的节点信息获取模块202执行获取区块链中各个节点的节点信息,节点信息包括区块信息。计算机设备可通过节点不可逆块获取模块204执行根据各个节点的区块信息确定对应的节点不可逆块。计算机设备可通过链高度确定模块206执行根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度。计算机设备可通过历史链高度获取模块208执行获取区块链的历史确认链高度。计算机设备可通过链高度验证模块210执行当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果。计算机设备可通过链高度更新模块212执行根据有效性验证结果更新当前链高度。计算机设备可通过链工作状态确定模块214执行根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取区块链中各个节点的节点信息,节点信息包括区块信息,根据各个节点的区块信息确定对应的节点不可逆块,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度,获取区块链的历史确认链高度,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果,根据有效性验证结果更新当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
在一个实施例中,根据各个节点的区块信息得到当前链高度的有效性验证结果之后,计算机程序被处理器执行时还实现以下步骤:当有效性验证结果为当前链高度有效时,将当前链高度作为当前确认链高度,区块链的工作状态为正常状态,当有效性验证结果为当前链高度无效时,进入根据有效性验证结果更新当前链高度的步骤。
在一个实施例中,根据有效性验证结果更新当前链高度,包括:当有效性验证结果为当前链高度无效时,减小当前链高度得到更新后的当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态包括:将更新后的当前链高度作为当前链高度,当当前链高度大于历史确认链高度时,进入根据各个节点的区块信息得到当前链高度的有效性验证结果,当当前链高度等于历史确认链高度时,根据初始链高度和历史确认链高度得到链高度差异信息,根据链高度差异信息与预设的链高度差异范围确定区块链的工作状态。
在一个实施例中,根据各个节点的区块信息确定对应的节点不可逆块,包括:根据各个节点的区块信息确定各个节点对应的最新已确认区块,得到各个节点对应的节点不可逆块,或根据各个节点的区块信息确定各个节点对应的高度最高已确认区块,根据高度最高已确认区块得到各个节点对应的节点不可逆块,或根据各个节点的区块信息确定当前周期对应的出块节点数目,根据出块节点数目计算对应的出块节点比例,当出块节点比例满足预设条件时,将当前周期之前的周期对应的区块作为节点对应的节点不可逆块。
在一个实施例中,根据各个节点的区块信息得到当前链高度的有效性验证结果,包括:根据各个节点的区块信息得到与当前链高度的高度相同的目标区块,当目标区块中具有相同区块哈希值的区块占目标区块的比例大于预设比例时,当前链高度有效,否则当前链高度无效。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取查询区块信息,查询区块信息查询包括哈希值或查询区块高度,从区块链各个节点对应的区块中获取与查询区块信息匹配的区块组成候选区块,获取链不可逆块,根据链不可逆块确定候选区块的区块确认状态。
在一个实施例中,查询区块信息为区块交易信息,查询哈希值为区块交易信息对应的交易哈希值。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取区块链中各个节点的节点信息,节点信息包括区块信息,根据各个节点的区块信息确定对应的节点不可逆块,根据各个节点对应的节点不可逆块确定区块链对应的初始链高度,将初始链高度作为当前链高度,获取区块链的历史确认链高度,当当前链高度大于历史确认链高度时,根据各个节点的区块信息得到当前链高度的有效性验证结果,根据有效性验证结果更新当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态。
在一个实施例中,根据各个节点的区块信息得到当前链高度的有效性验证结果之后,计算机程序被处理器执行时还实现以下步骤:当有效性验证结果为当前链高度有效时,将当前链高度作为当前确认链高度,区块链的工作状态为正常状态,当有效性验证结果为当前链高度无效时,进入根据有效性验证结果更新当前链高度的步骤。
在一个实施例中,根据有效性验证结果更新当前链高度,包括:当有效性验证结果为当前链高度无效时,减小当前链高度得到更新后的当前链高度,根据更新后的当前链高度、历史确认链高度、初始链高度确定区块链的工作状态包括:将更新后的当前链高度作为当前链高度,当当前链高度大于历史确认链高度时,进入根据各个节点的区块信息得到当前链高度的有效性验证结果,当当前链高度等于历史确认链高度时,根据初始链高度和历史确认链高度得到链高度差异信息,根据链高度差异信息与预设的链高度差异范围确定区块链的工作状态。
在一个实施例中,根据各个节点的区块信息确定对应的节点不可逆块,包括:根据各个节点的区块信息确定各个节点对应的最新已确认区块,得到各个节点对应的节点不可逆块,或根据各个节点的区块信息确定各个节点对应的高度最高已确认区块,根据高度最高已确认区块得到各个节点对应的节点不可逆块,或根据各个节点的区块信息确定当前周期对应的出块节点数目,根据出块节点数目计算对应的出块节点比例,当出块节点比例满足预设条件时,将当前周期之前的周期对应的区块作为节点对应的节点不可逆块。
在一个实施例中,根据各个节点的区块信息得到当前链高度的有效性验证结果,包括:根据各个节点的区块信息得到与当前链高度的高度相同的目标区块,当目标区块中具有相同区块哈希值的区块占目标区块的比例大于预设比例时,当前链高度有效,否则当前链高度无效。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取查询区块信息,查询区块信息查询包括哈希值或查询区块高度,从区块链各个节点对应的区块中获取与查询区块信息匹配的区块组成候选区块,获取链不可逆块,根据链不可逆块确定候选区块的区块确认状态。
在一个实施例中,查询区块信息为区块交易信息,查询哈希值为区块交易信息对应的交易哈希值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种区块链数据处理方法,包括:
获取区块链中各个节点的节点信息,所述节点信息包括区块信息;
根据各个所述节点的区块信息确定对应的节点不可逆块;
根据各个所述节点对应的节点不可逆块确定所述区块链对应的初始链高度,将所述初始链高度作为当前链高度;
获取所述区块链的历史确认链高度;
当所述当前链高度大于所述历史确认链高度时,根据各个所述节点的区块信息得到所述当前链高度的有效性验证结果;
根据所述有效性验证结果更新所述当前链高度;
根据更新后的当前链高度、所述历史确认链高度、所述初始链高度确定所述区块链的工作状态。
2.根据权利要求1所述的方法,其特征在于,所述根据各个所述节点的区块信息得到所述当前链高度的有效性验证结果之后,还包括:
当所述有效性验证结果为所述当前链高度有效时,将所述当前链高度作为当前确认链高度,所述区块链的工作状态为正常状态;
当所述有效性验证结果为所述当前链高度无效时,进入所述根据所述有效性验证结果更新所述当前链高度的步骤。
3.根据权利要求2所述的方法,其特征在于,所述根据所述有效性验证结果更新所述当前链高度,包括:
当所述有效性验证结果为所述当前链高度无效时,减小所述当前链高度得到更新后的当前链高度;
所述根据更新后的当前链高度、所述历史确认链高度、所述初始链高度确定所述区块链的工作状态包括:
将更新后的当前链高度作为当前链高度,当所述当前链高度大于所述历史确认链高度时,进入所述根据各个所述节点的区块信息得到所述当前链高度的有效性验证结果的步骤;
当所述当前链高度等于所述历史确认链高度时,根据所述初始链高度和所述历史确认链高度得到链高度差异信息;
根据所述链高度差异信息与预设的链高度差异范围确定所述区块链的工作状态。
4.根据权利要求1所述的方法,其特征在于,所述根据各个所述节点的区块信息确定对应的节点不可逆块,包括:
根据各个所述节点的区块信息确定各个所述节点对应的最新已确认区块,得到各个所述节点对应的节点不可逆块;或
根据各个所述节点的区块信息确定各个所述节点对应的高度最高已确认区块,根据所述高度最高已确认区块得到各个所述节点对应的节点不可逆块;或
根据各个所述节点的区块信息确定当前周期对应的出块节点数目;
根据所述出块节点数目计算对应的出块节点比例,当所述出块节点比例满足预设条件时,将所述当前周期之前的周期对应的区块作为所述节点对应的节点不可逆块。
5.根据权利要求1所述的方法,其特征在于,所述根据各个所述节点的区块信息得到所述当前链高度的有效性验证结果,包括:
根据各个所述节点的区块信息得到与所述当前链高度的高度相同的目标区块;
当所述目标区块中具有相同区块哈希值的区块占所述目标区块的比例大于预设比例时,所述当前链高度有效,否则所述当前链高度无效。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取查询区块信息,所述查询区块信息查询包括哈希值或查询区块高度;
从所述区块链各个节点对应的区块中获取与所述查询区块信息匹配的区块组成候选区块;
获取链不可逆块,根据所述链不可逆块确定所述候选区块的区块确认状态。
7.根据权利要求1所述的方法,其特征在于,所述查询区块信息为区块交易信息,所述查询哈希值为所述区块交易信息对应的交易哈希值。
8.一种区块链数据处理装置,其特征在于,所述装置包括:
节点信息获取模块,用于获取区块链中各个节点的节点信息,所述节点信息包括区块信息;
节点不可逆块获取模块,用于根据各个所述节点的区块信息确定对应的节点不可逆块;
链高度确定模块,用于根据各个所述节点对应的节点不可逆块确定所述区块链对应的初始链高度,将所述初始链高度作为当前链高度;
历史链高度获取模块,用于获取所述区块链的历史确认链高度;
链高度验证模块,用于当所述当前链高度大于所述历史确认链高度时,根据各个所述节点的区块信息得到所述当前链高度的有效性验证结果;
链高度更新模块,用于根据所述有效性验证结果更新所述当前链高度;
链工作状态确定模块,用于根据更新后的当前链高度、所述历史确认链高度、所述初始链高度确定所述区块链的工作状态。
9.根据权利要求8所述的装置,其特征在于,所述装置包括:
链工作状态确定模块还用于当所述有效性验证结果为所述当前链高度有效时,将所述当前链高度作为当前确认链高度,所述区块链的工作状态为正常状态,当所述有效性验证结果为所述当前链高度无效时,进入所述链高度更新模块。
10.根据权利要求9所述的装置,其特征在于,所述链工作状态确定模块包括:
链高度更新单元,用于将所述更新后的当前链高度作为所述当前链高度,当所述当前链高度大于所述历史确认链高度时,进入所述链高度验证模块;
链高度差异计算单元,用于当所述当前链高度等于所述历史确认链高度时,根据所述初始链高度和所述历史确认链高度得到链高度差异信息;
工作状态确定单元,用于根据所述链高度差异信息与预设的链高度差异范围确定所述区块链的工作状态。
11.根据权利要求8所述的装置,其特征在于,所述节点不可逆块获取模块包括:
第一获取单元,用于根据各个所述节点的区块信息确定各个所述节点对应的最新已确认区块,得到各个所述节点对应的节点不可逆块;或
第二获取单元,用于根据各个所述节点的区块信息确定各个所述节点对应的高度最高已确认区块,根据所述高度最高已确认区块得到各个所述节点对应的节点不可逆块;或
第三获取单元,用于根据各个所述节点的区块信息确定当前周期对应的出块节点数目,根据所述出块节点数目计算对应的出块节点比例,当所述出块节点比例满足预设条件时,将所述当前周期之前的对应的区块作为所述节点对应的节点不可逆块。
12.根据权利要求8所述的装置,其特征在于,所述链高度验证模块包括:
目标区块获取单元,用于根据各个所述节点的区块信息得到与所述当前链高度的高度相同的目标区块;
链高度验证单元,用于当所述目标区块中具有相同区块哈希值的区块占所述目标区块的比例大于预设比例时,所述当前链高度有效,否则所述当前链高度无效。
13.根据权利要求8所述的装置,其特征在于,所述装置还包括:
查询数据获取模块,用于获取查询区块信息,所述查询区块信息查询包括哈希值或查询区块高度;
候选区块确定模块,用于从所述区块链各个节点对应的区块中获取与所述查询区块信息匹配的区块组成候选区块;
区块确认状态确定模块,用于获取链不可逆块,根据所述链不可逆块确定所述候选区块的区块确认状态。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910673727.9A CN110378694B (zh) | 2018-05-21 | 2018-05-21 | 区块链数据处理方法、装置、计算机设备和存储介质 |
CN201810487046.9A CN108734453B (zh) | 2018-05-21 | 2018-05-21 | 区块链数据处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810487046.9A CN108734453B (zh) | 2018-05-21 | 2018-05-21 | 区块链数据处理方法、装置、计算机设备和存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910673727.9A Division CN110378694B (zh) | 2018-05-21 | 2018-05-21 | 区块链数据处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108734453A true CN108734453A (zh) | 2018-11-02 |
CN108734453B CN108734453B (zh) | 2023-04-14 |
Family
ID=63937672
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810487046.9A Active CN108734453B (zh) | 2018-05-21 | 2018-05-21 | 区块链数据处理方法、装置、计算机设备和存储介质 |
CN201910673727.9A Active CN110378694B (zh) | 2018-05-21 | 2018-05-21 | 区块链数据处理方法、装置、计算机设备和存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910673727.9A Active CN110378694B (zh) | 2018-05-21 | 2018-05-21 | 区块链数据处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN108734453B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109687953A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 交易分类方法、设备和存储介质 |
CN109951534A (zh) * | 2019-02-28 | 2019-06-28 | 北京柏链基石科技有限公司 | 一种共识方法、装置和系统 |
CN109992624A (zh) * | 2019-03-15 | 2019-07-09 | 深圳前海微众银行股份有限公司 | 一种区块链Block chain的同步存储方法、装置及计算机设备 |
CN110275892A (zh) * | 2019-05-22 | 2019-09-24 | 深圳壹账通智能科技有限公司 | 面向区块链的数据管理方法、装置、设备及存储介质 |
CN110569246A (zh) * | 2019-07-23 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 区块链节点信息同步方法、装置、计算机设备及存储介质 |
CN110599169A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
CN110602248A (zh) * | 2019-09-27 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 异常行为信息的识别方法、系统、装置、设备及介质 |
CN110727712A (zh) * | 2019-10-15 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN110752969A (zh) * | 2019-10-21 | 2020-02-04 | 腾讯科技(深圳)有限公司 | 一种性能检测方法、装置、设备及介质 |
CN111245895A (zh) * | 2019-12-29 | 2020-06-05 | 杭州拓深科技有限公司 | 一种基于区块链的智能物联网空开数据管理方法 |
CN111324489A (zh) * | 2020-02-18 | 2020-06-23 | 杭州复杂美科技有限公司 | 主链游戏结果展示方法、设备和存储介质 |
CN111327565A (zh) * | 2018-12-13 | 2020-06-23 | 北京果仁宝软件技术有限责任公司 | 区块链出块方法和系统 |
CN111339130A (zh) * | 2020-02-25 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、相关设备及可读存储介质 |
WO2020035095A3 (en) * | 2019-11-27 | 2020-10-08 | Alipay (Hangzhou) Information Technology Co., Ltd. | Asynchronous processing of blockchain blocks |
WO2020213763A1 (ko) * | 2019-04-18 | 2020-10-22 | 라인플러스 주식회사 | 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템 |
CN112003701A (zh) * | 2020-04-16 | 2020-11-27 | 成都质数斯达克科技有限公司 | 一种区块自检及同步方法及装置 |
CN112800129A (zh) * | 2020-12-31 | 2021-05-14 | 杭州趣链科技有限公司 | 区块状态更新方法、装置、系统和电子设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110851535B (zh) * | 2019-11-18 | 2021-07-13 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、存储介质及终端 |
CN113630445B (zh) * | 2021-07-19 | 2022-10-14 | 山东区块链研究院 | 一种基于区块链网络的数据存储方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106650494A (zh) * | 2016-12-16 | 2017-05-10 | 杭州嘉楠耘智信息科技有限公司 | 一种数据处理方法及装置 |
US20170344987A1 (en) * | 2016-05-24 | 2017-11-30 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permssioned blockchains using bloom filters and audit guarantees |
CN107807951A (zh) * | 2017-09-18 | 2018-03-16 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145768B (zh) * | 2016-03-01 | 2021-02-12 | 华为技术有限公司 | 版权管理方法和系统 |
US10733602B2 (en) * | 2016-09-29 | 2020-08-04 | Microsoft Technology Licensing, Llc. | Heartbeats and consensus in verifiable outsourced ledgers |
CN106686087A (zh) * | 2016-12-30 | 2017-05-17 | 先锋支付有限公司 | 一种区块链截断方法及分布式节点 |
CN106878071B (zh) * | 2017-01-25 | 2020-09-15 | 上海钜真金融信息服务有限公司 | 一种基于Raft算法的区块链共识机制 |
CN107317842B (zh) * | 2017-05-31 | 2019-11-22 | 北京大学深圳研究生院 | 基于ndn的区块链同步方法和装置 |
CN107944034A (zh) * | 2017-12-13 | 2018-04-20 | 国云科技股份有限公司 | 一种基于区块链的数据非差异化方法 |
-
2018
- 2018-05-21 CN CN201810487046.9A patent/CN108734453B/zh active Active
- 2018-05-21 CN CN201910673727.9A patent/CN110378694B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170344987A1 (en) * | 2016-05-24 | 2017-11-30 | Mastercard International Incorporated | Method and system for an efficient consensus mechanism for permssioned blockchains using bloom filters and audit guarantees |
CN106650494A (zh) * | 2016-12-16 | 2017-05-10 | 杭州嘉楠耘智信息科技有限公司 | 一种数据处理方法及装置 |
CN107807951A (zh) * | 2017-09-18 | 2018-03-16 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
Non-Patent Citations (1)
Title |
---|
邵奇峰等: "区块链技术:架构及进展", 《计算机学报》 * |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111327565A (zh) * | 2018-12-13 | 2020-06-23 | 北京果仁宝软件技术有限责任公司 | 区块链出块方法和系统 |
CN109687953A (zh) * | 2018-12-24 | 2019-04-26 | 杭州复杂美科技有限公司 | 交易分类方法、设备和存储介质 |
CN109687953B (zh) * | 2018-12-24 | 2021-12-31 | 杭州复杂美科技有限公司 | 交易分类方法、设备和存储介质 |
CN109951534A (zh) * | 2019-02-28 | 2019-06-28 | 北京柏链基石科技有限公司 | 一种共识方法、装置和系统 |
CN109951534B (zh) * | 2019-02-28 | 2021-09-07 | 北京柏链基石科技有限公司 | 一种共识方法、装置和系统 |
CN109992624A (zh) * | 2019-03-15 | 2019-07-09 | 深圳前海微众银行股份有限公司 | 一种区块链Block chain的同步存储方法、装置及计算机设备 |
CN109992624B (zh) * | 2019-03-15 | 2024-03-22 | 深圳前海微众银行股份有限公司 | 一种区块链Block chain的同步存储方法、装置及计算机设备 |
WO2020213763A1 (ko) * | 2019-04-18 | 2020-10-22 | 라인플러스 주식회사 | 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템 |
KR102542631B1 (ko) * | 2019-04-18 | 2023-06-13 | 라인플러스 주식회사 | 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템 |
KR20210102470A (ko) * | 2019-04-18 | 2021-08-19 | 라인플러스 주식회사 | 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템 |
JP2022539283A (ja) * | 2019-04-18 | 2022-09-08 | ライン プラス コーポレーション | ブロックチェーンとは異なる形式のストレージに格納されるブロックチェーンデータを検証する方法およびシステム |
CN110275892B (zh) * | 2019-05-22 | 2022-08-19 | 深圳壹账通智能科技有限公司 | 面向区块链的数据管理方法、装置、设备及存储介质 |
CN110275892A (zh) * | 2019-05-22 | 2019-09-24 | 深圳壹账通智能科技有限公司 | 面向区块链的数据管理方法、装置、设备及存储介质 |
CN110569246B (zh) * | 2019-07-23 | 2022-03-11 | 腾讯科技(深圳)有限公司 | 区块链节点信息同步方法、装置、计算机设备及存储介质 |
CN110569246A (zh) * | 2019-07-23 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 区块链节点信息同步方法、装置、计算机设备及存储介质 |
CN110599169A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
CN110599169B (zh) * | 2019-09-16 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、终端及介质 |
CN110602248B (zh) * | 2019-09-27 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 异常行为信息的识别方法、系统、装置、设备及介质 |
CN110602248A (zh) * | 2019-09-27 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 异常行为信息的识别方法、系统、装置、设备及介质 |
US11386076B2 (en) | 2019-10-15 | 2022-07-12 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus based on blockchain network, electronic device, and storage medium |
CN110727712A (zh) * | 2019-10-15 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
WO2021073452A1 (zh) * | 2019-10-15 | 2021-04-22 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN110752969A (zh) * | 2019-10-21 | 2020-02-04 | 腾讯科技(深圳)有限公司 | 一种性能检测方法、装置、设备及介质 |
CN110752969B (zh) * | 2019-10-21 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种性能检测方法、装置、设备及介质 |
US11088875B2 (en) | 2019-11-27 | 2021-08-10 | Alipay (Hangzhou) Information Technology Co., Ltd. | Asynchronous processing of blockchain blocks |
US11394584B2 (en) | 2019-11-27 | 2022-07-19 | Alipay (Hangzhou) Information Technology Co., Ltd. | Asynchronous processing of blockchain blocks |
WO2020035095A3 (en) * | 2019-11-27 | 2020-10-08 | Alipay (Hangzhou) Information Technology Co., Ltd. | Asynchronous processing of blockchain blocks |
CN111245895A (zh) * | 2019-12-29 | 2020-06-05 | 杭州拓深科技有限公司 | 一种基于区块链的智能物联网空开数据管理方法 |
CN111324489A (zh) * | 2020-02-18 | 2020-06-23 | 杭州复杂美科技有限公司 | 主链游戏结果展示方法、设备和存储介质 |
CN111339130A (zh) * | 2020-02-25 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、相关设备及可读存储介质 |
CN112003701B (zh) * | 2020-04-16 | 2021-03-19 | 成都质数斯达克科技有限公司 | 一种区块自检及同步方法及装置 |
CN112003701A (zh) * | 2020-04-16 | 2020-11-27 | 成都质数斯达克科技有限公司 | 一种区块自检及同步方法及装置 |
CN112800129A (zh) * | 2020-12-31 | 2021-05-14 | 杭州趣链科技有限公司 | 区块状态更新方法、装置、系统和电子设备 |
CN112800129B (zh) * | 2020-12-31 | 2024-04-23 | 杭州趣链科技有限公司 | 区块状态更新方法、装置、系统和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110378694A (zh) | 2019-10-25 |
CN108734453B (zh) | 2023-04-14 |
CN110378694B (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108734453A (zh) | 区块链数据处理方法、装置、计算机设备和存储介质 | |
CN110782240B (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN108573371B (zh) | 数据审批方法、装置、计算机设备和存储介质 | |
CN108829781A (zh) | 客户信息查询方法、装置、计算机设备和存储介质 | |
CN108648323B (zh) | 目标信息的选取方法、装置、计算机设备和存储介质 | |
CN110647582A (zh) | 区块链网络共识校验的方法、装置、存储介质和计算机设备 | |
CN110598446A (zh) | 基于区块链的测试方法、装置、存储介质和计算机设备 | |
CN110599137A (zh) | 电子票据数据处理方法、装置和计算机设备 | |
CN109075964A (zh) | 支持用于区块验证的多个单向函数的区块链 | |
CN112801658B (zh) | 跨境资源转移真实性审核方法、装置及电子设备 | |
CN109474578A (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN110060155B (zh) | 区块链的智能合约执行方法及装置和电子设备 | |
CN108881252A (zh) | 身份认证数据处理方法、装置、计算机设备和存储介质 | |
CN110597913B (zh) | 交易信息跟踪方法、装置、系统、存储介质和计算机设备 | |
CN113704704B (zh) | 基于区块链的协同作品权属确认方法、系统、计算机设备 | |
CN110347545A (zh) | 一种业务平台缓存策略的测试方法及装置 | |
CN110011796B (zh) | 证书更新方法、装置、计算机设备和存储介质 | |
CN112613288B (zh) | 结算单生成方法、装置、计算机设备和存储介质 | |
WO2019127889A1 (zh) | 数据核对方法、装置、计算机设备及可读存储介质 | |
CN110597883A (zh) | 基于区块链的车辆租赁数据处理方法、装置和存储介质 | |
CN116017462B (zh) | 一种sim卡授权管理方法、装置以及系统 | |
CN111061567B (zh) | 资源数据处理方法、装置、计算机可读存储介质和计算机设备 | |
CN112637008A (zh) | 链路模拟测试方法、装置、系统、计算机设备和存储介质 | |
CN109101232A (zh) | 一种产品开发的方法、装置、计算机设备及存储介质 | |
CN108304289B (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 |