CN111654415A - 基于区块链的信息处理方法、装置、设备及可读存储介质 - Google Patents
基于区块链的信息处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN111654415A CN111654415A CN202010468423.1A CN202010468423A CN111654415A CN 111654415 A CN111654415 A CN 111654415A CN 202010468423 A CN202010468423 A CN 202010468423A CN 111654415 A CN111654415 A CN 111654415A
- Authority
- CN
- China
- Prior art keywords
- node
- network
- consensus
- state
- list
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
Abstract
本申请实施例公开了一种基于区块链的信息处理方法、装置、设备以及可读存储介质,其中,方法包括:第一节点通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;网络共识组件包括共识节点状态列表;在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;根据更新后的共识节点状态列表对共识网络进行共识状态调整。采用本申请,可以减少区块链网络中系统资源的浪费。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种基于区块链的信息处理方法、装置、设备以及可读存储介质。
背景技术
区块链将节点区分为共识节点、数据节点以及轻节点,无论是共识节点、数据节点还是轻节点,其内部构造都包括点对点(Peer-to-Peer,P2P)网络模块,因为区块链网络本质是一个P2P网络,需通过网络通信组件(即P2P网络模块)与其他节点进行信息传输,例如节点A与节点B的通信,是通过节点A的网络通信组件C以及节点B的网络通信组件D进行的。其中,共识节点负责区块链全网的共识业务,所以共识节点还包括网络共识组件(即共识网络模块)。
在现有技术中,当区块链网络中的共识节点E掉线或下线时,虽然其他节点的网络通信组件不能与共识节点E的网络通信组件进行通信,但其他共识节点的网络共识组件仍将共识节点E视作正常执行共识业务中,以此类推,当共识节点下线数量超过下线数量阈值时,例如超过1/3的共识节点下线,剩下在线的共识节点很可能会继续在执行共识业务,进而导致区块链网络在做无效的区块共识,浪费系统资源。
发明内容
本申请实施例提供一种基于区块链的信息处理方法、装置、设备以及可读存储介质,可以减少区块链网络中系统资源的浪费。
本申请实施例一方面提供一种基于区块链的信息处理方法,方法由第一节点执行,第一节点包括网络通信组件和网络共识组件,方法包括:
通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;
若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;网络共识组件包括共识节点状态列表;
在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;
根据更新后的共识节点状态列表对共识网络进行共识状态调整。
本申请实施例一方面提供一种基于区块链的信息处理装置,包括:
获取状态模块,用于通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;
同步状态模块,用于若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;网络共识组件包括共识节点状态列表;
更新状态模块,用于在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;
调整状态模块,用于根据更新后的共识节点状态列表对共识网络进行共识状态调整。
其中,获取状态模块,包括:
获取历史单元,用于获取网络节点状态列表中针对第二节点的历史网络状态;
匹配状态单元,用于将历史网络状态与当前网络状态进行匹配;
检测属性单元,用于若历史网络状态与当前网络状态不相同,则检测第二节点的节点属性。
其中,检测属性单元,包括:
获取标识子单元,用于获取第二节点的节点标识,作为待验证节点标识;
匹配标识子单元,用于将待验证节点标识与网络节点状态列表中的节点标识进行匹配;
确定属性子单元,用于若网络节点状态列表中存在共识节点标识与待验证节点标识相同,则确定第二节点的节点属性为共识节点属性。
其中,获取状态模块,还包括:
更新历史单元,用于将网络节点状态列表中的历史网络状态更新为当前网络状态,得到更新后的网络节点状态列表;
调整关系单元,用于根据更新后的网络节点状态列表,调整与第二节点之间的网络关系。
其中,调整关系单元,具体用于若当前网络状态为网络在线状态,且历史网络状态为网络下线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络断开关系调整为网络连接关系;
调整关系单元,还具体用于若当前网络状态为网络下线状态,且历史网络状态为网络在线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络连接关系调整为网络断开关系。
其中,调整状态模块,包括:
统计下线单元,用于若共识网络的当前共识状态为共识运行状态,则统计更新后的共识节点状态列表中属于网络下线状态的节点的数量,作为下线节点数量;
第一调整单元,用于根据下线节点数量,对共识网络进行共识状态调整。
其中,第一调整单元,包括:
匹配下线子单元,用于将下线节点数量与下线节点数量阈值进行匹配;
保持运行子单元,用于若下线节点数量小于或等于下线节点数量阈值,则保持共识网络处于共识运行状态;
调整暂停子单元,用于若下线节点数量大于下线节点数量阈值,则将共识网络的当前共识状态从共识运行状态调整为共识暂停状态;
停止共识子单元,用于根据共识暂停状态停止执行共识业务。
其中,调整状态模块,包括:
统计在线单元,用于若共识网络的当前共识状态为共识暂停状态,则统计更新后的共识节点状态列表中属于网络在线状态的节点的数量,作为在线节点数量;
第二调整单元,用于根据在线节点数量,对共识网络进行共识状态调整。
其中,第二调整单元,包括:
匹配在线子单元,用于将在线节点数量与在线节点数量阈值进行匹配;
保持暂停子单元,用于若在线节点数量小于或等于在线节点数量阈值,则保持共识网络处于共识暂停状态;
调整运行子单元,用于若在线节点数量大于在线节点数量阈值,则将共识网络的当前共识状态从共识暂停状态调整为共识运行状态;
启动共识子单元,用于根据共识运行状态启动执行共识业务。
其中,还包括:
终止连接模块,用于若共识节点状态列表中存在作恶共识节点,则在网络节点状态列表中将作恶共识节点列入黑名单,终止与作恶共识节点的网络连接;
拒绝入链模块,用于当获取到作恶共识节点的入链请求时,通过网络通信组件拒绝入链请求。
其中,终止连接模块,包括:
确定标识单元,用于若共识节点状态列表中存在作恶共识节点,则在网络共识组件中确定作恶共识节点的节点标识,作为作恶节点标识;
同步标识单元,用于通过网络共识组件将作恶节点标识同步至网络通信组件;
列入作恶单元,用于在网络通信组件中,根据作恶节点标识在网络节点状态列表中将作恶共识节点列入黑名单。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,存储器用于存储计算机程序,处理器用于调用计算机程序,以执行如本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,以执行如本申请实施例中的方法。
本申请实施例中的第一节点包括网络通信组件以及网络共识组件,通过在网络通信组件以及网络共识组件之间同步信息,可以使得共识节点状态列表同步更新针对第二节点的网络状态。具体过程为:第一节点通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;根据更新后的共识节点状态列表对共识网络进行共识状态调整。可知,通过网络通信组件与网络共识组件之间的同步机制,可以及时调整共识网络中的共识状态,例如共识网络中有超过1/3的共识节点下线时,可以通过更新后的共识节点状态列表及时暂停执行共识任务,避免无效的共识过程,以减少系统资源的浪费。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种系统架构示意图;
图1b是本申请实施例提供的一种基于区块链的信息处理的结构示意图;
图2是本申请实施例提供的一种基于区块链的信息处理方法的流程示意图;
图3是本申请实施例提供的一种基于区块链的信息处理的场景示意图;
图4是本申请实施例提供的一种基于区块链的信息处理的场景示意图;
图5是本申请实施例提供的一种区块链网络的结构示意图;
图6a是本申请实施例提供的一种基于区块链的信息处理的场景示意图;
图6b是本申请实施例提供的一种基于区块链的信息处理的场景示意图;
图7是本申请实施例提供的一种基于区块链的信息处理的场景示意图;
图8是本申请实施例提供的一种基于区块链的信息处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解,首先对部分名词进行以下简单解释:
1、区块链:狭义上,区块链是一种以区块为基本单位的链式数据结构,区块中利用数字摘要对之前获取的交易历史进行校验,适合分布式记账场景下防篡改和可扩展性的需求;广义上,区块链还指代区块链结构实现的分布式记账技术,包括分布式共识、隐私与安全保护、点对点通信技术、网络协议、智能合约等。区块链的目标是实现一个分布的数据记录账本,此账本只允许添加,不允许删除。账本底层的基本结构是一个线性的链表。链表由一个个“区块”串联组成,后继区块中记录前继区块的哈希(Hash)值,每个区块(以及区块中的交易)是否合法,可通过计算哈希值的方式进行快速检验。若网络中的节点提议添加一个新的区块,必须经过共识机制对区块达成共识确认。
2、共识机制:通过特殊节点的投票,在很短的时间内完成对交易数据的验证和确认,目标是使区块链网络中的所有的共识节点保存一致的区块链式图,为一种达成分布式共识的算法,如工作量证明(Proof of Work,POW)、权益证明机制(Proof of Stake,PoS)及拜占庭共识算法(Practical Byzantine Fault Tolerance,PBFT)等。
请参见图1a,是本申请实施例提供的一种系统架构示意图,该系统架构是指用于进行区块链网络中的节点与节点之间信息共享的系统,如图1a所示,区块链网络10可以包括第一节点101、第二节点102、第三节点103、…、第四节点104。区块链网络10中的每个节点(也包括第一节点10、第二节点102、第三节点103以及第四节点104)在进行正常工作时可以接收到其他节点发送的信息,同时,也可以向其他节点发送信息。为了保证各个节点之间的信息互通,每个节点之间可以存在通信连接,即第一节点101与第二节点102、第三节点103、…、第四节点104之间存在相互通信连接,节点之间可以通过通信连接进行信息传输。
节点之间的通信连接可以基于节点标识所实现,对于区块链网络10中的每个节点,均具有与其对应的节点标识,而且每个节点均可以存储与自身有连接关系的其他节点的节点标识,以便后续根据其他节点的节点标识,将获取到的数据或生成的区块广播至其他节点。每个节点中可维护一个如下表1所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为网络之间互联的协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1
节点名称 | 节点标识 |
第一节点101 | 117.116.156.425 |
第二节点102 | 117.114.151.174 |
第三节点103 | 117.116.189.145 |
… | … |
第四节点104 | 119.123.789.258 |
例如,当第一节点101生成新区块A时,可以通过节点标识117.114.151.174,向第二节点102发送区块A,且第二节点102通过节点标识117.116.156.425,可以知道该区块A是第一节点101所发送的;同理,第一节点101可以通过节点标识117.116.189.145,向第三节点103发送区块A,且第三节点103通过节点标识117.116.156.425,可以知道该区块A是节点101所发送的,第一节点101与其他节点(也包括第四节点104)之间的信息传输亦如此,故不再进行赘述。
请一并参见图1b,是本申请实施例提供的一种基于区块链的信息处理的结构示意图。如图1b所示,区块链网络10包括第一节点101、第二节点102、第三节点103、第四节点104、…、第五节点105,每个节点均包括网络通信组件以及网络共识组件,网络通信组件包括网络节点状态列表,网络节点状态列表包含区块链网络10内的所有节点的网络状态(例如网络在线状态、网络下线状态等);网络共识组件包括共识节点状态列表,共识节点状态列表包括区块链网络10中的所有共识节点的网络状态,即网络共识组件所维护的共识节点状态列表属于网络通信组件所维护的网络节点状态列表的子集。
请再参见图1b,第一节点101包括网络通信组件101a以及网络共识组件101b、第二节点102包括网络通信组件102a以及网络共识组件102b、第三节点103包括网络通信组件103a以及网络共识组件103b、第四节点104包括网络通信组件104a以及网络共识组件104b、…、第五节点105包括网络通信组件105a以及网络共识组件105b。下面以第一节点101为例进行叙述,第一节点101与其他节点(也包括第二节点102、第三节点103、第三节点104以及第五节点105)之间的通信需通过网络通信组件101a,因为区块链网络本质是一个点对点(Peer-to-Peer,P2P)网络,需通过P2P网络模块与与其他节点进行通信,网络通信组件101a由P2P网络模块组成。如图1b所示,第一节点101通过网络通信组件101a与其他节点的网络通信组件进行数据传输,即第一节点101与第二节点102的通信是通过网络通信组件101a以及网络通信组件102a进行的,第一节点101与第三节点103的通信是通过网络通信组件101a以及网络通信组件103a进行的,第一节点101与第四节点104的通信是通过网络通信组件101a以及网络通信组件104a进行的,第一节点101与第四节点104的通信是通过网络通信组件101a以及网络通信组件104a进行的,其他节点之间的通信亦如此。当第一节点101通过网络共识组件101b生成新区块A时,第一节点101通过网络通信组件101a向节点标识为117.114.151.174的第二节点102(假设第二节点102为共识节点)广播区块A,且第二节点102是通过网络通信组件102a获取到区块A,然后由网络共识组件102b对区块A进行区块共识,当第二节点102对区块A共识完成时,则第二节点102通过网络通信组件102a向节点标识为117.116.156.425的第一节点101广播针对区块A的共识结果信息,第一节点101通过网络通信组件101a获取共识结果信息,最后,第一节点101中的网络共识组件101b根据共识网络中所有共识节点对区块A的共识结果信息,确定区块A是否通过共识。同理,其他节点之间的信息传输亦如此,故在此不再进行赘述。
上述过程是发生在第一节点101的网络状态与第二节点102的网络状态均为网络在线状态的前提下,当第二节点102的网络状态为网络下线状态时,则第一节点101通过网络通信组件101a可以确认第二节点下线,此时第一节点101会更新网络节点状态列表,具体为在网络节点状态列表中,将针对第二节点102的网络状态标记为下线,那么第一节点101就不会与第二节点102进行通信,同样,其他节点(包括第三节点103、第四节点104以及第五节点105)基于同样的方式也不会与下线的第二节点102进行通信。第一节点101通过网络通信组件101a获取第二节点102的节点标识117.114.151.174,根据节点标识117.114.151.174确认第二节点102是否是共识节点,若第二节点102不是共识节点,则第一节点101仅更新网络节点状态列表;若第二节点102是共识节点,则通过网络通信组件101a将中的第二节点102的当前网络状态(即网络下线状态)同步至网络共识组件101b,在网络共识组件101b中,将共识节点状态列表中针对第二节点102的历史网络状态(即网络在线状态)更新为网络下线状态,得到更新后的共识节点状态列表。以此类推,若第一节点101的网络通信组件101a维护的网络节点状态列表中标记为下线的共识节点达到所有共识节点的1/3时,则通过同步机制也可以使网络共识组件101b中的共识节点状态列表中标记为下线的共识节点也达到所有共识节点的1/3,这时网络共识组件101b基于共识节点状态列表可以停止执行共识任务,避免无效的共识过程,减少系统资源的浪费。
后续,若第二节点102的网络状态从网络下线状态转换成网络在线状态时,第二节点102可以通过网络通信组件102a向各个节点的网络通信组件发送信息,则各个节点在各自的网络节点状态列表中将针对第二节点102的网络状态标记为在线,具体过程请参见上述过程,此处不再进行赘述。若第一节点101的网络通信组件101a维护的网络节点状态列表中标记为在线的共识节点达到所有共识节点的2/3时,则通过同步机制也可以使网络共识组件101b中的共识节点状态列表中标记为在线的共识节点也达到所有共识节点的2/3,这时网络共识组件101b基于共识节点状态列表可以启动执行共识任务,即恢复共识,可以避免在系统有能力做共识任务时却处于空闲状态。
可以理解的是,本申请实施例所提供的方法可以由计算机设备执行,计算机设备包括但不限于终端或服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
其中,图1a以及图1b中的第一节点101、第二节点102、第三节点103、…、第四节点104、第五节点105可以包括手机、平板电脑、笔记本电脑、掌上电脑、智能音响、移动互联网设备(MID,mobile internet device)、POS(Point Of Sales,销售点)机、可穿戴设备(例如智能手表、智能手环等)等。
进一步地,请参见图2,是本申请实施例提供的一种基于区块链的信息处理方法的流程示意图,该方法由第一节点执行。如图2所示,该信息处理过程包括如下步骤:
步骤S101,通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性。
具体的,网络通信组件包括网络节点状态列表,获取网络节点状态列表中针对第二节点的历史网络状态;将历史网络状态与当前网络状态进行匹配,若历史网络状态与当前网络状态不相同,则将网络节点状态列表中的历史网络状态更新为当前网络状态,得到更新后的网络节点状态列表;根据更新后的网络节点状态列表,调整与第二节点之间的网络关系;与第二节点之间的网络关系包括网络断开关系以及网络连接关系,若当前网络状态为网络在线状态,且历史网络状态为网络下线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络断开关系调整为网络连接关系;若当前网络状态为网络下线状态,且历史网络状态为网络在线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络连接关系调整为网络断开关系。
获取第二节点的节点标识,作为待验证节点标识;将待验证节点标识与网络节点状态列表中的节点标识进行匹配;若网络节点状态列表中存在共识节点标识与待验证节点标识相同,则确定第二节点的节点属性为共识节点属性。若网络节点状态列表中存在非共识节点标识与待验证节点标识相同,则确定第二节点的节点属性为普通节点属性;非共识节点标识是指网络节点状态列表中除了共识节点标识之外的节点标识。
第一节点以及第二节点属于同一个区块链网络A,第一节点包括网络通信组件以及网络共识组件,网络通信组件包括网络节点状态列表,网络节点状态列表包括区块链网络A内所有节点的网络状态,第一节点基于网络通信组件与第二节点进行交互,第一节点通过网络通信组件获取第二节点的当前网络状态,可以包括以下几种方法:
1、若网络节点状态列表中针对第二节点的历史网络状态为网络在线状态时,则:
a、当第一节点获取到新的交易数据B时,通过第二节点的节点标识,将交易数据B广播至第二节点,若广播成功,则第一节点可以确定第二节点的当前网络状态依然为网络在线状态,若广播失败,则可以确定第二节点的当前网络状态为网络下线状态。
b、第一节点根据系统设置的第一心跳机制,定时向第二节点发送数据包,若第二节点反馈针对该数据包的确认接收消息,则第一节点可以确定第二节点的当前网络状态依然为网络在线状态,若第二节点反馈针对该数据包的失败接收消息,则可以确定第二节点的当前网络状态为网络下线状态。
c、若获取到第二节点发送的信息时,第一节点可以确定第二节点的当前网络状态为网络在线状态。
2、若网络节点状态列表中针对第二节点的历史网络状态为网络下线状态时,由于第一节点与第二节点的网络关系为网络断开关系,所以第一节点不会主动向第二节点发送信息,此时若网络通信组件获取到第二节点发送的信息时,第一节点可以确定第二节点的当前网络状态为网络在线状态;或者,第一节点根据系统设置的第二心跳机制,定时向第二节点发送数据包,若第二节点反馈针对该数据包的确认接收消息,则第一节点可以确定第二节点的当前网络状态为网络在线状态,若第二节点反馈针对该数据包的失败接收消息,则可以确定第二节点的当前网络状态仍然为网络下线状态;该第二心跳机制的心跳周期可以等于上述的第一心跳机制的心跳周期,也可以不等于第一心跳机制的心跳周期,此处不限定。
进一步地,请参见图3,是本申请实施例提供的一种基于区块链的信息处理的场景示意图。如图3所示,第一节点101包括网络通信组件101a以及网络共识组件101b,第二节点102包括网络通信组件102a以及网络共识组件102b,网络通信组件101a包括网络节点状态列表200a,该网络节点状态列表200a包含与区块链网络中所有节点的网络状态(例如网络在线状态、网络下线状态等)。由图3可知,第二节点102的当前网络状态为网络下线状态,在网络通信组件101a所包括的网络节点状态列表200a中获取针对第二节点102的历史网络状态,网络节点状态列表200a包括第一节点101、第二节点102、第三节点103、第四节点104、…、节点n分别对应的历史网络状态,如网络节点状态列表200a所示,第一节点101的历史网络状态为网络在线状态,第二节点102的历史网络状态为网络在线状态,第三节点103的历史网络状态为网络在线状态,第四节点104的历史网络状态为网络在线状态,节点n的历史网络状态为网络在线状态。
假设第二节点102的历史网络状态为网络下线状态,则历史网络状态与当前网络状态相同,第一节点101在网络节点状态列表200a中不更新针对第二节点102的网络状态,依然保持为网络下线状态;如网络节点状态列表200a所示,第二节点102的历史网络状态为网络在线状态200c,则历史网络状态与当前网络状态不相同,此时,第一节点101将网络节点状态列表200a中的网络在线状态200c更新为网络下线状态200d,得到更新后的网络节点状态列表200b。由于第二节点102的历史网络状态为网络在线状态200c,且当前网络状态为网络下线状态200d,所以第一节点101将与第二节点102之间的网络关系从网络连接关系调整为网络断开关系。后续,若第二节点102恢复正常工作,或者从网络下线状态转换成网络在线状态,第二节点102可以通过自身的网络通信组件102a向第一节点101的网络通信组件101a发送网络在线信息,则第一节点101在网络节点状态列表200b中将针对第二节点102的网络状态从网络下线状态更新为网络在线状态。
上述过程叙述了当第二节点102的网络状态从网络在线状态200c变化成网络下线状态200d时,第一节点101在网络节点状态列表200a中的更新情况,同时,第一节点101可以获取第二节点102的节点标识,请一并参见图4,是本申请实施例提供的一种基于区块链的信息处理的场景示意图。当第二节点102的历史网络状态与当前网络状态不相同时,如图4所示,第一节点101通过网络通信组件101a获取第二节点102的节点标识,作为待验证节点标识300,将待验证节点标识300与网络节点状态列表200e中的节点标识进行匹配,需要注意的是,网络节点状态列表200e与图3中的网络节点状态列表200b可以相互呼应,由网络节点状态列表200e与图3中的网络节点状态列表200b可知,第一节点101的节点标识为117.116.156.425,且第一节点101的节点属性为共识节点属性,第二节点102的节点标识为117.114.151.174,且第二节点102的节点属性为共识节点属性,第三节点103的节点标识为117.116.189.145,且第三节点103的节点属性为数据节点属性,第四节点104的节点标识为119.123.789.258,且第四节点104的节点属性为共识节点属性,节点n的节点标识为117.155.176.432,且节点n的节点属性为轻节点属性;第一节点101通过匹配待验证节点标识300以及网络节点状态列表200e中的节点标识,可以确定第二节点102的节点属性为共识节点属性。
步骤S102,若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;网络共识组件包括共识节点状态列表。
具体的,区块链网络将节点区分为共识节点(也可以称作核心节点),数据节点以及轻节点。其中,共识节点负责区块链全网的共识业务;数据节点负责同步共识节点账本信息,即同步最新的区块数据;轻节点属于业务节点,负责从数据节点同步业务相关的区块数据。无论是共识节点、数据节点还是轻节点,其内部构造都包括网络通信组件,因为区块链网络本质是一个P2P网络,需通过P2P组件与区块链网络中的其他节点进行通信。区块链网络中的资源和服务都分散在各个节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节或中心化的服务器(第三方)介入(即P2P网络)。
随着对区块链网络中节点的区分,节点属性可以包括共识节点属性、数据节点属性以及轻节点属性,请一并参见图5,是本申请实施例提供的一种区块链网络的结构示意图。如图5所示,该区块链网络可以包括核心网络40、中间网络30及业务网络20,其中,核心网络40包括多个共识节点401,中间网络30包括多个数据节点301,业务网络20包括多个轻节点201。其中,共识节点401负责对区块链网络中各个区块的共识,并可以将获取到的交易数据打包成区块,将通过共识的区块写入交易账本;数据节点301负责同步任一共识节点401中的账本信息,即从核心网络40中任一共识节点401获取最新生成的区块,将获取到的区块进行同步,加入自己的账本中;轻节点201属于业务节点,负责从数据节点301同步业务相关的区块数据,即根据轻节点201负责的业务,从与该轻节点201所连接的数据节点301中获取与自己负责的业务相关的区块,将获取的区块加入该轻节点201的账本中。其中,图3中的第一节点可以是核心网络40中的任一共识节点401,也可以是中间网络30中的任一数据节点301,图3中的第二节点可以是核心网络40中的任一共识节点401,也可以是中间网络30中的任一数据节点301,还可以是业务网络20中的任一轻节点201。若第二节点是业务网络20中的任一轻节点201,则第二节点的节点属性为轻节点属性,此时不执行本步骤,第一节点仅更新网络通信组件中的网络节点状态列表中针对第二节点的网络状态;若第二节点是中间网络30中的任一轻节点301,则第二节点的节点属性为数据节点属性,此时亦不执行本步骤,第一节点仅更新网络节点状态列表中针对第二节点的网络状态;若第二节点是核心网络40中的任一共识节点401,则第二节点的节点属性为共识节点属性,请一并参见图6a,是本申请实施例提供的一种基于区块链的信息处理的场景示意图。如图6a所示,第一节点101不仅更新网络节点状态列表中针对第二节点的网络状态,还会通过网络通信组件101a将当前网络状态(如图6a中所示的网络下线状态)同步至网络共识组件101b,以在网络共识组件101b中的共识节点状态列表中更新针对第二节点的网络状态。
步骤S103,在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表。
具体的,因为共识节点状态列表中的节点均为共识节点,故将列表中的节点均写成共识节点,请再参见图6a,图6a中的共识节点状态列表200f与图3中的网络节点状态列表200a、图4中的网络节点状态列表200e可以相互呼应,即第一节点101为共识节点101,所以第一节点101的节点属性为共识节点属性,且第一节点101的历史网络状态为网络在线状态;第二节点102为共识节点102,所以第二节点102的节点属性为共识节点属性,且第二节点102的历史网络状态为网络在线状态200h;第四节点104为共识节点104,所以第四节点104的节点属性为共识节点属性,且第四节点104的历史网络状态为网络在线状态,共识节点状态列表200f中其他的共识节点亦如此。
由于第二节点102的当前网络状态为网络下线状态,历史网络状态为网络在线状态200h,故第一节点101将共识节点状态列表200f中针对第二节点的网络在线状态200h更新为网络下线状态200i,得到更新后的共识节点状态列表200g。
可选的,若共识节点状态列表中存在作恶共识节点,则在网络共识组件中确定作恶共识节点的节点标识,作为作恶节点标识;通过网络共识组件将作恶节点标识同步至网络通信组件;在网络通信组件中,根据作恶节点标识在网络节点状态列表中将作恶共识节点列入黑名单,终止与作恶共识节点的网络连接;当获取到作恶共识节点的入链请求时,通过网络通信组件拒绝入链请求。
步骤S102叙述通过网络通信组件将第二节点的当前网络状态同步至网络共识组件,实际上,网络通信组件与网络共识组件可以相互同步信息,请一并参见图6b,是本申请实施例提供的一种基于区块链的信息处理的场景示意图。如图6b所示,第一节点101通过网络共识组件101b发现共识网络中存在作恶节点104,假设作恶节点104之前为图6a中共识节点状态列表200f中的共识节点104,则第一节点在共识节点状态列表200j中将共识节点104标记为作恶节点104。第一节点101在网络共识组件101b中确定作恶节点104的节点标识,作为作恶节点标识200m;通过网络共识组件101b将作恶节点标识200m同步至网络通信组件101a;网络通信组件101a获取到作恶共识节点200m后,根据作恶节点标识200m在网络节点状态列表200p中将作恶共识节点列入黑名单,如图6b所示,作恶共识节点200m与第四节点104的节点标识相同,故将第四节点104列入黑名单200r,得到新的网络节点状态列表200q,则第一节点根据网络节点状态列表200q终止与第四节点104的网络连接,并且,当获取到作恶共识节点(即第四节点104)的入链请求时,通过网络通信组件101a拒绝入链请求。
步骤S104,根据更新后的共识节点状态列表对共识网络进行共识状态调整。
具体的,更新后的共识节点状态列表中的网络状态包括网络下线状态,若共识网络的当前共识状态为共识运行状态,则统计更新后的共识节点状态列表中属于网络下线状态的节点的数量,作为下线节点数量;将下线节点数量与下线节点数量阈值进行匹配;若下线节点数量小于或等于下线节点数量阈值,则保持共识网络处于共识运行状态;若下线节点数量大于下线节点数量阈值,则将共识网络的当前共识状态从共识运行状态调整为共识暂停状态;根据共识暂停状态停止执行共识业务。
更新后的共识节点状态列表中的网络状态包括网络在线状态,若共识网络的当前共识状态为共识暂停状态,则统计更新后的共识节点状态列表中属于网络在线状态的节点的数量,作为在线节点数量;将在线节点数量与在线节点数量阈值进行匹配;若在线节点数量小于或等于在线节点数量阈值,则保持共识网络处于共识暂停状态;若在线节点数量大于在线节点数量阈值,则将共识网络的当前共识状态从共识暂停状态调整为共识运行状态;根据共识运行状态启动执行共识业务。
请再参见图6a,共识节点102从网络在线状态200h更新为网络下线状态200i,其他共识节点的网络状态如共识节点状态列表200g所示,共识节点101的网络状态为网络在线状态,共识节点104的网络状态为网络在线状态,共识节点m的网络状态为网络下线状态。若共识网络的当前共识状态为共识暂停状态,由于增加了一个下线共识节点(即共识节点102),所以共识网络的共识状态依然为共识暂停状态。若共识网络的当前共识状态为共识运行状态,如图6a所示,第一节点101通过网络共识组件101b过滤共识节点状态列表200g中属于网络在线状态的节点,得到过滤后的共识节点状态列表200k,共识节点状态列表200k包括网络状态为网络下线状态的共识节点,如共识节点102、…、共识节点m;统计共识节点状态列表200k中共识节点的数量,作为下线节点数量;将下线节点数量与下线节点数量阈值进行匹配;若下线节点数量小于或等于下线节点数量阈值,则第一节点101保持共识网络依然处于共识运行状态;若下线节点数量大于下线节点数量阈值,此时,第一节点101将共识网络的当前共识状态从共识运行状态调整为共识暂停状态,且根据共识暂停状态停止执行共识业务。
需要说明的是,步骤S101-步骤S104均以第二节点从网络在线状态更新为网络下线状态示例,若第二节点从网络下线状态更新为网络在线状态,具体过程可以参见步骤S101-步骤S103,并请一并参见图7,是本申请实施例提供的一种基于区块链的信息处理的场景示意图。如图7所示,第一节点101通过网络通信组件101a将当前网络状态(如图7中所示的网络在线状态)同步至网络共识组件101b,在网络共识组件101b中,将共识节点状态列表200s中针对第二节点的网络下线状态200t更新为网络在线状态200v。图7中的共识节点状态列表200s与图3中的网络节点状态列表200a、图4中的网络节点状态列表200e可以相互呼应,即第一节点101为共识节点101,所以第一节点101的节点属性为共识节点属性,且第一节点101的历史网络状态为网络下线状态;第二节点102为共识节点102,所以第二节点102的节点属性为共识节点属性,且第二节点102的历史网络状态为网络下线状态200t;第四节点104为共识节点104,所以第四节点104的节点属性为共识节点属性,且第四节点104的历史网络状态为网络在线状态,共识节点状态列表200s中其他的共识节点亦如此。
由于第二节点102的当前网络状态为网络在线状态,历史网络状态为网络下线状态,故第一节点101将共识节点状态列表200s中针对第二节点的网络下线状态200t更新为网络在线状态200v,得到更新后的共识节点状态列表200u,其他共识节点的网络状态如共识节点状态列表200u所示。若共识网络的当前共识状态为共识运行状态,由于增加了一个在线共识节点(即共识节点102),所以共识网络的共识状态依然为共识运行状态。若共识网络的当前共识状态为共识暂停状态,如图7所示,第一节点101通过网络共识组件101b过滤共识节点状态列表200u中属于网络下线状态的节点,得到过滤后的共识节点状态列表200w,共识节点状态列表200w包括网络状态为网络在线状态的共识节点,如共识节点102、…共识节点104、共识节点p;统计共识节点状态列表200w中共识节点的数量,作为在线节点数量;将在线节点数量与在线节点数量阈值进行匹配;若在线节点数量小于或等于在线节点数量阈值,则第一节点101保持共识网络依然处于共识暂停状态;若在线节点数量大于在线节点数量阈值,此时,第一节点101将共识网络的当前共识状态从共识暂停状态调整为共识运行状态,且根据共识运行状态开始执行共识业务。
本申请实施例中的第一节点包括网络通信组件以及网络共识组件,网络通信组件维护一个网络节点状态列表,网络节点状态列表包括与区块链网络中所有节点的网络状态,网络共识组件维护一个共识节点状态列表,共识节点状态列表包括共识网络中共识节点的网络状态。本申请实施例中的第一节点通过网络通信组件以及网络共识组件相互同步信息,可以使得网络节点状态列表以及共识节点状态列表可以同步更新共识节点的网络状态。具体过程为:第一节点通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;根据更新后的共识节点状态列表对共识网络进行共识状态调整。可知,通过同步机制,区块链网络可以及时调整共识状态,例如区块链网络中有超过1/3的共识节点下线时,可以及时暂停执行共识任务,避免无效的共识过程;后续区块链网络中有超过2/3的共识节点在线时,可以及时启动执行共识任务,避免在系统有能力做共识时却处于空闲状态,因此,采用本申请,可以减少系统资源的浪费。
进一步地,请参见图8,是本申请实施例提供的一种基于区块链的信息处理装置的结构示意图。信息处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该信息处理装置为一个应用软件;该信息处理装置可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该信息处理装置1可以用于图2所对应实施例中的计算机设备,具体的,该信息处理装置1可以包括:获取状态模块11、同步状态模块12、更新状态模块13以及调整状态模块14。
获取状态模块11,用于通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;
同步状态模块12,用于若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;网络共识组件包括共识节点状态列表;
更新状态模块13,用于在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;
调整状态模块14,用于根据更新后的共识节点状态列表对共识网络进行共识状态调整。
其中,获取状态模块11、同步状态模块12、更新状态模块13以及调整状态模块14的具体功能实现方式可以参见图2对应实施例中的步骤S101-步骤S104,这里不再进行赘述。
请再参见图8,获取状态模块11可以包括:获取历史单元111、匹配状态单元112以及检测属性单元113。
获取历史单元111,用于获取网络节点状态列表中针对第二节点的历史网络状态;
匹配状态单元112,用于将历史网络状态与当前网络状态进行匹配;
检测属性单元113,用于若历史网络状态与当前网络状态不相同,则检测第二节点的节点属性。
其中,获取历史单元111、匹配状态单元112以及检测属性单元113的具体功能实现方式可以参见图2对应实施例中的步骤S101,这里不再进行赘述。
请再参见图8,检测属性单元113可以包括:获取标识子单元1131、匹配标识子单元1132以及确定属性子单元1133。
获取标识子单元1131,用于获取第二节点的节点标识,作为待验证节点标识;
匹配标识子单元1132,用于将待验证节点标识与网络节点状态列表中的节点标识进行匹配;
确定属性子单元1133,用于若网络节点状态列表中存在共识节点标识与待验证节点标识相同,则确定第二节点的节点属性为共识节点属性。
其中,获取标识子单元1131、匹配标识子单元1132以及确定属性子单元1133的具体功能实现方式可以参见图2对应实施例中的步骤S101,这里不再进行赘述。
请再参见图8,获取状态模块11还可以包括:更新历史单元114以及调整关系单元115。
更新历史单元114,用于将网络节点状态列表中的历史网络状态更新为当前网络状态,得到更新后的网络节点状态列表;
调整关系单元115,用于根据更新后的网络节点状态列表,调整与第二节点之间的网络关系。
其中,更新历史单元114以及调整关系单元115的具体功能实现方式可以参见图2对应实施例中的步骤S101,这里不再进行赘述。
请再参见图8,调整关系单元115,具体用于若当前网络状态为网络在线状态,且历史网络状态为网络下线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络断开关系调整为网络连接关系;
调整关系单元115,还具体用于若当前网络状态为网络下线状态,且历史网络状态为网络在线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络连接关系调整为网络断开关系。
其中,调整关系单元115的具体功能实现方式可以参见图2对应实施例中的步骤S101,这里不再进行赘述。
请再参见图8,调整状态模块14可以包括:统计下线单元141以及第一调整单元142。
统计下线单元141,用于若共识网络的当前共识状态为共识运行状态,则统计更新后的共识节点状态列表中属于网络下线状态的节点的数量,作为下线节点数量;
第一调整单元142,用于根据下线节点数量,对共识网络进行共识状态调整。
其中,统计下线单元141以及第一调整单元142的具体功能实现方式可以参见图2对应实施例中的步骤S104,这里不再进行赘述。
请再参见图8,第一调整单元142可以包括:匹配下线子单元1421、保持运行子单元1422、调整暂停子单元1423以及停止共识子单元1424。
匹配下线子单元1421,用于将下线节点数量与下线节点数量阈值进行匹配;
保持运行子单元1422,用于若下线节点数量小于或等于下线节点数量阈值,则保持共识网络处于共识运行状态;
调整暂停子单元1423,用于若下线节点数量大于下线节点数量阈值,则将共识网络的当前共识状态从共识运行状态调整为共识暂停状态;
停止共识子单元1424,用于根据共识暂停状态停止执行共识业务。
其中,匹配下线子单元1421、保持运行子单元1422、调整暂停子单元1423以及停止共识子单元1424的具体功能实现方式可以参见图2对应实施例中的步骤S104,这里不再进行赘述。
请再参见图8,调整状态模块14可以包括:统计在线单元143以及第二调整单元144。
统计在线单元143,用于若共识网络的当前共识状态为共识暂停状态,则统计更新后的共识节点状态列表中属于网络在线状态的节点的数量,作为在线节点数量;
第二调整单元144,用于根据在线节点数量,对共识网络进行共识状态调整。
其中,统计在线单元143以及第二调整单元144的具体功能实现方式可以参见图2对应实施例中的步骤S104,这里不再进行赘述。
请再参见图8,第二调整单元144可以包括:匹配在线子单元1441、保持暂停子单元1442、调整运行子单元1443以及启动共识子单元1444。
匹配在线子单元1441,用于将在线节点数量与在线节点数量阈值进行匹配;
保持暂停子单元1442,用于若在线节点数量小于或等于在线节点数量阈值,则保持共识网络处于共识暂停状态;
调整运行子单元1443,用于若在线节点数量大于在线节点数量阈值,则将共识网络的当前共识状态从共识暂停状态调整为共识运行状态;
启动共识子单元1444,用于根据共识运行状态启动执行共识业务。
其中,匹配在线子单元1441、保持暂停子单元1442、调整运行子单元1443以及启动共识子单元1444的具体功能实现方式可以参见图2对应实施例中的步骤S104,这里不再进行赘述。
请再参见图8,信息处理装置1还可以包括:终止连接模块15以及拒绝入链模块16。
终止连接模块15,用于若共识节点状态列表中存在作恶共识节点,则在网络节点状态列表中将作恶共识节点列入黑名单,终止与作恶共识节点的网络连接;
拒绝入链模块16,用于当获取到作恶共识节点的入链请求时,通过网络通信组件拒绝入链请求。
其中,终止连接模块15以及拒绝入链模块16的具体功能实现方式可以参见图2对应实施例中的步骤S103,这里不再进行赘述。
请再参见图8,终止连接模块15可以包括:确定标识单元151、同步标识单元152以及列入作恶单元153。
确定标识单元151,用于若共识节点状态列表中存在作恶共识节点,则在网络共识组件中确定作恶共识节点的节点标识,作为作恶节点标识;
同步标识单元152,用于通过网络共识组件将作恶节点标识同步至网络通信组件;
列入作恶单元153,用于在网络通信组件中,根据作恶节点标识在网络节点状态列表中将作恶共识节点列入黑名单。
其中,确定标识单元151、同步标识单元152以及列入作恶单元153的具体功能实现方式可以参见图2对应实施例中的步骤S103,这里不再进行赘述。
本申请实施例中的第一节点包括网络通信组件以及网络共识组件,网络通信组件维护一个网络节点状态列表,网络节点状态列表包括与区块链网络中所有节点的网络状态,网络共识组件维护一个共识节点状态列表,共识节点状态列表包括共识网络中共识节点的网络状态。本申请实施例中的第一节点通过网络通信组件以及网络共识组件相互同步信息,可以使得网络节点状态列表以及共识节点状态列表可以同步更新共识节点的网络状态。具体过程为:第一节点通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;根据更新后的共识节点状态列表对共识网络进行共识状态调整。可知,通过同步机制,区块链网络可以及时调整共识状态,例如区块链网络中有超过1/3的共识节点下线时,可以及时暂停执行共识任务,避免无效的共识过程;后续区块链网络中有超过2/3的共识节点在线时,可以及时启动执行共识任务,避免在系统有能力做共识时却处于空闲状态,因此,采用本申请,可以减少系统资源的浪费。
进一步地,请参见图9,是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,计算机设备1000可以为图2对应实施例中的第一节点,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;
若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;网络共识组件包括共识节点状态列表;
在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;
根据更新后的共识节点状态列表对共识网络进行共识状态调整。
在一个实施例中,网络通信组件包括网络节点状态列表;
处理器1001在执行检测第二节点的节点属性时,具体执行以下步骤:
获取网络节点状态列表中针对第二节点的历史网络状态;
将历史网络状态与当前网络状态进行匹配;
若历史网络状态与当前网络状态不相同,则检测第二节点的节点属性。
在一个实施例中,处理器1001在执行检测第二节点的节点属性时,具体执行以下步骤:
获取第二节点的节点标识,作为待验证节点标识;
将待验证节点标识与网络节点状态列表中的节点标识进行匹配;
若网络节点状态列表中存在共识节点标识与待验证节点标识相同,则确定第二节点的节点属性为共识节点属性。
在一个实施例中,处理器1001在执行检测第二节点的节点属性时,具体执行以下步骤:
将网络节点状态列表中的历史网络状态更新为当前网络状态,得到更新后的网络节点状态列表;
根据更新后的网络节点状态列表,调整与第二节点之间的网络关系。
在一个实施例中,与第二节点之间的网络关系包括网络断开关系以及网络连接关系;
处理器1001在执行根据更新后的网络节点状态列表,调整与第二节点之间的网络关系时,具体执行以下步骤:
若当前网络状态为网络在线状态,且历史网络状态为网络下线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络断开关系调整为网络连接关系;
若当前网络状态为网络下线状态,且历史网络状态为网络在线状态,则根据更新后的网络节点状态列表,将与第二节点之间的网络关系从网络连接关系调整为网络断开关系。
在一个实施例中,更新后的共识节点状态列表中的网络状态包括网络下线状态;
处理器1001在执行根据更新后的共识节点状态列表对共识网络进行共识状态调整时,具体执行以下步骤:
若共识网络的当前共识状态为共识运行状态,则统计更新后的共识节点状态列表中属于网络下线状态的节点的数量,作为下线节点数量;
根据下线节点数量,对共识网络进行共识状态调整。
在一个实施例中,处理器1001在执行根据下线节点数量,对共识网络进行共识状态调整时,具体执行以下步骤:
将下线节点数量与下线节点数量阈值进行匹配;
若下线节点数量小于或等于下线节点数量阈值,则保持共识网络处于共识运行状态;
若下线节点数量大于下线节点数量阈值,则将共识网络的当前共识状态从共识运行状态调整为共识暂停状态;
根据共识暂停状态停止执行共识业务。
在一个实施例中,更新后的共识节点状态列表中的网络状态包括网络在线状态;
处理器1001在执行根据更新后的共识节点状态列表对共识网络进行共识状态调整时,具体执行以下步骤:
若共识网络的当前共识状态为共识暂停状态,则统计更新后的共识节点状态列表中属于网络在线状态的节点的数量,作为在线节点数量;
根据在线节点数量,对共识网络进行共识状态调整。
在一个实施例中,处理器1001在执行根据在线节点数量,对共识网络进行共识状态调整时,具体执行以下步骤:
将在线节点数量与在线节点数量阈值进行匹配;
若在线节点数量小于或等于在线节点数量阈值,则保持共识网络处于共识暂停状态;
若在线节点数量大于在线节点数量阈值,则将共识网络的当前共识状态从共识暂停状态调整为共识运行状态;
根据共识运行状态启动执行共识业务。
在一个实施例中,处理器1001还具体执行以下步骤:
若共识节点状态列表中存在作恶共识节点,则在网络节点状态列表中将作恶共识节点列入黑名单,终止与作恶共识节点的网络连接;
当获取到作恶共识节点的入链请求时,通过网络通信组件拒绝入链请求。
在一个实施例中,处理器1001在执行若共识节点状态列表中存在作恶共识节点,则在网络节点状态列表中将作恶共识节点列入黑名单时,具体执行以下步骤:
若共识节点状态列表中存在作恶共识节点,则在网络共识组件中确定作恶共识节点的节点标识,作为作恶节点标识;
通过网络共识组件将作恶节点标识同步至网络通信组件;
在网络通信组件中,根据作恶节点标识在网络节点状态列表中将作恶共识节点列入黑名单。
本申请实施例中的第一节点包括网络通信组件以及网络共识组件,网络通信组件维护一个网络节点状态列表,网络节点状态列表包括与区块链网络中所有节点的网络状态,网络共识组件维护一个共识节点状态列表,共识节点状态列表包括共识网络中共识节点的网络状态。本申请实施例中的第一节点通过网络通信组件以及网络共识组件相互同步信息,可以使得网络节点状态列表以及共识节点状态列表可以同步更新共识节点的网络状态。具体过程为:第一节点通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;根据更新后的共识节点状态列表对共识网络进行共识状态调整。可知,通过同步机制,区块链网络可以及时调整共识状态,例如区块链网络中有超过1/3的共识节点下线时,可以及时暂停执行共识任务,避免无效的共识过程;后续区块链网络中有超过2/3的共识节点在线时,可以及时启动执行共识任务,避免在系统有能力做共识时却处于空闲状态,因此,采用本申请,可以减少系统资源的浪费。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图2中各个步骤所提供的信息处理方法,具体可参见图2中各个步骤所提供的实现方式,在此不再赘述。
计算机可读存储介质可以是前述任一实施例提供的信息处理装置或者计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smartmedia card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的信息处理方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种基于区块链的信息处理方法,其特征在于,所述方法由第一节点执行,所述第一节点包括网络通信组件和网络共识组件,所述方法包括:
通过所述网络通信组件获取第二节点的当前网络状态,检测所述第二节点的节点属性;
若所述第二节点的节点属性为共识节点属性,则通过所述网络通信组件将所述当前网络状态同步至所述网络共识组件;所述网络共识组件包括共识节点状态列表;
在所述网络共识组件中,将所述共识节点状态列表中针对所述第二节点的历史网络状态更新为所述当前网络状态,得到更新后的共识节点状态列表;
根据所述更新后的共识节点状态列表对共识网络进行共识状态调整。
2.根据权利要求1所述的方法,其特征在于,所述网络通信组件包括网络节点状态列表;
所述检测所述第二节点的节点属性,包括:
获取所述网络节点状态列表中针对所述第二节点的所述历史网络状态;
将所述历史网络状态与所述当前网络状态进行匹配;
若所述历史网络状态与所述当前网络状态不相同,则检测所述第二节点的节点属性。
3.根据权利要求2所述的方法,其特征在于,所述检测所述第二节点的节点属性,包括:
获取所述第二节点的节点标识,作为待验证节点标识;
将所述待验证节点标识与所述网络节点状态列表中的节点标识进行匹配;
若所述网络节点状态列表中存在共识节点标识与所述待验证节点标识相同,则确定所述第二节点的节点属性为所述共识节点属性。
4.根据权利要求2所述的方法,其特征在于,还包括:
将所述网络节点状态列表中的所述历史网络状态更新为所述当前网络状态,得到更新后的网络节点状态列表;
根据所述更新后的网络节点状态列表,调整与所述第二节点之间的网络关系。
5.根据权利要求4所述的方法,其特征在于,所述与所述第二节点之间的网络关系包括网络断开关系以及网络连接关系;
所述根据所述更新后的网络节点状态列表,调整与所述第二节点之间的网络关系,包括:
若所述当前网络状态为网络在线状态,且所述历史网络状态为网络下线状态,则根据所述更新后的网络节点状态列表,将与所述第二节点之间的网络关系从所述网络断开关系调整为所述网络连接关系;
若所述当前网络状态为所述网络下线状态,且所述历史网络状态为所述网络在线状态,则根据所述更新后的网络节点状态列表,将与所述第二节点之间的网络关系从所述网络连接关系调整为所述网络断开关系。
6.根据权利要求1所述的方法,其特征在于,所述更新后的共识节点状态列表中的网络状态包括网络下线状态;
所述根据所述更新后的共识节点状态列表对共识网络进行共识状态调整,包括:
若所述共识网络的当前共识状态为共识运行状态,则统计所述更新后的共识节点状态列表中属于所述网络下线状态的节点的数量,作为下线节点数量;
根据所述下线节点数量,对所述共识网络进行共识状态调整。
7.根据权利要求6所述的方法,其特征在于,所述根据所述下线节点数量,对所述共识网络进行共识状态调整,包括:
将所述下线节点数量与下线节点数量阈值进行匹配;
若所述下线节点数量小于或等于所述下线节点数量阈值,则保持所述共识网络处于所述共识运行状态;
若所述下线节点数量大于所述下线节点数量阈值,则将所述共识网络的当前共识状态从所述共识运行状态调整为共识暂停状态;
根据所述共识暂停状态停止执行共识业务。
8.根据权利要求1所述的方法,其特征在于,所述更新后的共识节点状态列表中的网络状态包括网络在线状态;
所述根据所述更新后的共识节点状态列表对共识网络进行共识状态调整,包括:
若所述共识网络的当前共识状态为共识暂停状态,则统计所述更新后的共识节点状态列表中属于所述网络在线状态的节点的数量,作为在线节点数量;
根据所述在线节点数量,对所述共识网络进行共识状态调整。
9.根据权利要求8所述的方法,其特征在于,所述根据所述在线节点数量,对所述共识网络进行共识状态调整,包括:
将所述在线节点数量与在线节点数量阈值进行匹配;
若所述在线节点数量小于或等于所述在线节点数量阈值,则保持所述共识网络处于所述共识暂停状态;
若所述在线节点数量大于所述在线节点数量阈值,则将所述共识网络的当前共识状态从所述共识暂停状态调整为共识运行状态;
根据所述共识运行状态启动执行共识业务。
10.根据权利要求2所述的方法,其特征在于,还包括:
若所述共识节点状态列表中存在作恶共识节点,则在所述网络节点状态列表中将所述作恶共识节点列入黑名单,终止与所述作恶共识节点的网络连接;
当获取到所述作恶共识节点的入链请求时,通过所述网络通信组件拒绝所述入链请求。
11.根据权利要求10所述的方法,其特征在于,所述若所述共识节点状态列表中存在作恶共识节点,则在所述网络节点状态列表中将所述作恶共识节点列入黑名单,包括:
若所述共识节点状态列表中存在所述作恶共识节点,则在所述网络共识组件中确定所述作恶共识节点的节点标识,作为作恶节点标识;
通过所述网络共识组件将所述作恶节点标识同步至所述网络通信组件;
在所述网络通信组件中,根据所述作恶节点标识在所述网络节点状态列表中将所述作恶共识节点列入所述黑名单。
12.一种基于区块链的信息处理装置,其特征在于,包括:
获取状态模块,用于通过网络通信组件获取第二节点的当前网络状态,检测第二节点的节点属性;
同步状态模块,用于若第二节点的节点属性为共识节点属性,则通过网络通信组件将当前网络状态同步至网络共识组件;网络共识组件包括共识节点状态列表;
更新状态模块,用于在网络共识组件中,将共识节点状态列表中针对第二节点的历史网络状态更新为当前网络状态,得到更新后的共识节点状态列表;
调整状态模块,用于根据更新后的共识节点状态列表对共识网络进行共识状态调整。
13.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1至11中任一项所述方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执权利要求1至11中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010468423.1A CN111654415B (zh) | 2020-05-28 | 2020-05-28 | 基于区块链的信息处理方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010468423.1A CN111654415B (zh) | 2020-05-28 | 2020-05-28 | 基于区块链的信息处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111654415A true CN111654415A (zh) | 2020-09-11 |
CN111654415B CN111654415B (zh) | 2021-09-10 |
Family
ID=72348954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010468423.1A Active CN111654415B (zh) | 2020-05-28 | 2020-05-28 | 基于区块链的信息处理方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111654415B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200680A (zh) * | 2020-12-03 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 区块链节点管理方法、装置、计算机以及可读存储介质 |
CN112669471A (zh) * | 2020-12-24 | 2021-04-16 | 杭州趣链科技有限公司 | 闸机及其检票交易方法、装置、存储介质 |
CN112926982A (zh) * | 2021-01-20 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置、设备及存储介质 |
CN113079099A (zh) * | 2021-06-04 | 2021-07-06 | 军事科学院系统工程研究院网络信息研究所 | 一种采用共识协议栈同步网络状态的方法及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN107368507A (zh) * | 2017-03-28 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种基于区块链的共识方法及装置 |
CN109218311A (zh) * | 2018-09-18 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 区块链的结块方法、区块链的节点和区块链 |
CN109242685A (zh) * | 2018-08-29 | 2019-01-18 | 众安信息技术服务有限公司 | 基于区块链的共识和验证方法及装置 |
CN109327548A (zh) * | 2018-11-27 | 2019-02-12 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法及区块链更新系统 |
CN109446266A (zh) * | 2018-09-20 | 2019-03-08 | 成都捕风数据科技有限公司 | 一种适用于区块链网络改进事务效率与稳定性的方法 |
CN110266765A (zh) * | 2019-05-21 | 2019-09-20 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
US20190305938A1 (en) * | 2018-03-30 | 2019-10-03 | Spyrus, Inc. | Threshold secret share authentication proof and secure blockchain voting with hardware security modules |
US20190327097A1 (en) * | 2017-05-22 | 2019-10-24 | Alibaba Group Holding Limited | Blockchain service acceptance and consensus method and devices |
CN110572287A (zh) * | 2019-09-05 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 数据容灾方法、装置、计算机设备和存储介质 |
US20200028692A1 (en) * | 2017-03-28 | 2020-01-23 | Alibaba Group Holding Limited | Blockchain consensus method and device |
-
2020
- 2020-05-28 CN CN202010468423.1A patent/CN111654415B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368507A (zh) * | 2017-03-28 | 2017-11-21 | 阿里巴巴集团控股有限公司 | 一种基于区块链的共识方法及装置 |
US20200028692A1 (en) * | 2017-03-28 | 2020-01-23 | Alibaba Group Holding Limited | Blockchain consensus method and device |
CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
CN110445619A (zh) * | 2017-03-30 | 2019-11-12 | 腾讯科技(深圳)有限公司 | 区块链系统、消息处理方法及存储介质 |
US20190327097A1 (en) * | 2017-05-22 | 2019-10-24 | Alibaba Group Holding Limited | Blockchain service acceptance and consensus method and devices |
US20190305938A1 (en) * | 2018-03-30 | 2019-10-03 | Spyrus, Inc. | Threshold secret share authentication proof and secure blockchain voting with hardware security modules |
CN109242685A (zh) * | 2018-08-29 | 2019-01-18 | 众安信息技术服务有限公司 | 基于区块链的共识和验证方法及装置 |
CN109218311A (zh) * | 2018-09-18 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 区块链的结块方法、区块链的节点和区块链 |
CN109446266A (zh) * | 2018-09-20 | 2019-03-08 | 成都捕风数据科技有限公司 | 一种适用于区块链网络改进事务效率与稳定性的方法 |
CN109327548A (zh) * | 2018-11-27 | 2019-02-12 | 北京瑞卓喜投科技发展有限公司 | 一种区块链更新方法及区块链更新系统 |
CN110266765A (zh) * | 2019-05-21 | 2019-09-20 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
CN110572287A (zh) * | 2019-09-05 | 2019-12-13 | 腾讯科技(深圳)有限公司 | 数据容灾方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
韩嗣诚等: "优化可扩展的拜占庭容错共识算法", 《物联网学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112200680A (zh) * | 2020-12-03 | 2021-01-08 | 腾讯科技(深圳)有限公司 | 区块链节点管理方法、装置、计算机以及可读存储介质 |
CN112200680B (zh) * | 2020-12-03 | 2021-03-05 | 腾讯科技(深圳)有限公司 | 区块链节点管理方法、装置、计算机以及可读存储介质 |
CN112669471A (zh) * | 2020-12-24 | 2021-04-16 | 杭州趣链科技有限公司 | 闸机及其检票交易方法、装置、存储介质 |
CN112926982A (zh) * | 2021-01-20 | 2021-06-08 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置、设备及存储介质 |
CN112926982B (zh) * | 2021-01-20 | 2022-08-02 | 腾讯科技(深圳)有限公司 | 一种交易数据处理方法、装置、设备及存储介质 |
CN113079099A (zh) * | 2021-06-04 | 2021-07-06 | 军事科学院系统工程研究院网络信息研究所 | 一种采用共识协议栈同步网络状态的方法及系统 |
CN113079099B (zh) * | 2021-06-04 | 2021-09-10 | 军事科学院系统工程研究院网络信息研究所 | 一种采用共识协议栈同步网络状态的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111654415B (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111654415B (zh) | 基于区块链的信息处理方法、装置、设备及可读存储介质 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN107465767B (zh) | 一种数据同步的方法和系统 | |
CN100395766C (zh) | 对网络游戏用户进行时间限制的方法和系统 | |
CN101217431A (zh) | 同步移动终端、网络电视、网络相册的图片的方法及系统 | |
CN106549933A (zh) | 区块链的数据传输系统及方法 | |
WO2023098235A1 (zh) | 设备连接切换方法、装置、电子设备和计算机可读存储介质 | |
CN108616429A (zh) | 一种推送服务的重连方法及设备 | |
WO2023000948A1 (zh) | 一种电竞数据处理方法、装置、设备及存储介质 | |
CN112398956B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US20190349436A1 (en) | Methods, apparatus and systems for resuming transmission link | |
WO2023098234A1 (zh) | 设备连接切换方法、装置、电子设备和计算机可读存储介质 | |
TW202115643A (zh) | 去中心化的自動電話詐騙風險管理 | |
CN112767152A (zh) | 应用于联盟链的双园区灾备系统及方法 | |
WO2014183668A1 (zh) | 一种机器类型通信应用的资源管理方法、节点和系统 | |
JP2023508210A (ja) | ブロックチェーンに基づくデータ処理方法、装置、デバイス及びコンピュータプログラム | |
CN112003943A (zh) | 语音数据同步方法和装置 | |
CN107872492B (zh) | 一种在服务端支持多用户编辑数据对象的方法和装置 | |
CN107172112B (zh) | 一种计算机文件传输方法及装置 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN113886495A (zh) | 验证区块链数据的方法、装置、电子设备和存储介质 | |
CN113507431A (zh) | 一种报文管理方法、装置、设备及机器可读存储介质 | |
GB2416090A (en) | Integrated instant message system with gateway functions | |
WO2023098233A1 (zh) | 设备连接切换方法、装置、电子设备和计算机可读存储介质 | |
CN104468767B (zh) | 一种云存储数据冲突检测方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028480 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |